7.7 Помогите новичку

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем дерево, 7 мар 2014.

  1. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте! Я в 1С совсем новичок, первый раз открыл 2 дня назад, когда давно-давно в институте изучал Delphi. Вопрос знаю будет весьма глупым для Вас, но всё-таки. Мне нужно данные из реквизитов документа табличной части записать в справочник. Что для этого нужно сделать? Из реквизитов шапки у меня получается записывать, а из табличной части не понимаю как. Хотя бы подскажите, где можно ознакомиться с этим. Понимаю, что сейчас будут говорить, чтобы поиском пользовался, но поверьте, раз я пишу это, то найти не получилось, либо я просто не понимаю, что там речь именно об этом. Спасибо огромное, за понимание.
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Объясните стоящую задачу более развернуто. Зачем вам документ в справочник? М.б. будет достаточно сохранить просто ссылку на документ?
    Ну а табличную часть лучше всего сохранить в ТаблицуЗначений.
    дерево нравится это.
  3. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    1. Сотрудников и книги хранить в справочниках.

    2. Данные о продажах хранить в справочнике "Проданные книги"

    3. Продажу книг организовать через проведение документа "Продажа_книг". В

    документе выбирается сотрудник и в табличной части книги и их

    количество.

    4. При проведении документа производить запись в справочник

    "Проданные книги".
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    а не проще ли хранить продажи в регистрах или бухгалтерских итогах? Так ведь правильнее. Справочники в нормальной конфигурации не предназначены для хранения остатков/итогов.
    дерево нравится это.
  5. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Ну оно может и проще, но надо именно так)) В условиях есть, что можно использовать регистр, но не обязательно. Я вот пытаюсь понять, как это сделать без него. А конфигурация новая чистая. И вот не понимаю, как из табличной части документа в справочник записать книги и количество?
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    какова структура справочника? Наименование и в нем же остаток? Или остаток в отдельном справочнике?
    дерево нравится это.
  7. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Я наверно совсем дурак.. Но, что значит остаток? Это количество книг из табличной части? Если да, то из условий задачи получается, что наименование и в нем же остаток... Если нет, то простите за мою тупость..
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Да не дурак вы. Все верно поняли.
    Примерно так
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
    Книга.Остаток=Книга.Остаток+Количество;
    КонецЦикла;


    где:
    Книга и количество - реквизиты табличной части документа
    Остаток - реквизит справочника

    Обращаю ваше внимание, что если не предусмотреть отмену проведения документа, при следующем проведении количество удвоится.
    дерево нравится это.
  9. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    хранить остатки в справочнике - это бред
    даже если никаких знаний нет, не надо учиться изначально неправильно
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Ну хочет человек хватануть головняка... Пускай... На дельфях же нет регистров, вот человек и думает по шаблону.
    дерево нравится это.
  11. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Эм.. Ну, во-первых, это задание такое, а не прихоть )) Во-вторых, я не понимаю, почему остатки??? Если я вам ещё не надоел, то давай те пошагово разберем:
    1) Создал три справочника: сотрудники(без реквизитов), книги(без реквизитов), проданные книги(реквизиты:книга, количество)
    2) Создал документ: продажа книг. Реквизит шапки сотрудник, реквизиты табличной части: книга, количество.
    3) Теперь в модуле документа мне нужно:
    -обратиться к справочнику проданные книги
    СпрПродКниги = СоздатьОбъект("Справочник.ПроданныеКниги");
    -перебрать табличную часть документа
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
    ..........
    КонецЦикла;
    Уважаемый, Бухгалтерский угодник, Вы написали что в цикле будет "Книга.Остаток=Книга.Остаток+Количество; ". Я не могу этого понять никак. У меня в голове, что-то заклинило. И сидит там вот что, что нужно записать там:
    СпрПродКниги.Книга = Книга;
    СпрПродКниги .Количество=Количество;
    В чем моя проблема?
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
    Если СпрПродКниги.НайзиПоРеквизиту("Книга",Книга)=1 Тогда //вдруг уже продавали. поищем
    СпрПродКниги.Количество=СпрПродКниги.Количество+Количество; //увеличим количество продаж
    иначе //не продавали еще
    СпрПродКниги.Новый(); //создадим новый элемент
    СпрПродКниги.Книга=Книга;
    СпрПродКниги.Количество=Количество;
    КонецЕсли;
    СпрПродКниги.Записать(); //сохранить изменения
    КонецЦикла;

    у реквизита КНИГА справочника СпрПродКниги должен быть установлен флаг отбора по реквизиту (закладка дополнительно)
    дерево нравится это.
  13. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    То есть, брать во внимание оператор условия, то единственное, что у меня было не правильно - это отсутствие строчки СпрПродКниги.Новый(); .. С ней всё заработало...
    А вот Вы говорили, что если не предусмотреть отмену проведения, то количество удвоится. Что имелось ввиду? Вроде ничего не удваивается?
    И ещё вопрос возник.. При передачи Сотрудника из документа в справочник: СпрПродКниги.Наименование=Сотрудник . Он возвращает его номер, а не саму запись, почему так? Если создать в справочнике отдельно реквизит Сотрудник, то всё работает.
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    код прописывается в модуле проведения. Если провести документ повторно - количество удвоится! И т.д..... Попробуйте!

    Потому что наименование, это строка! А вы присваиваете строке объект...
    дерево нравится это.
  15. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Опять не понимаю)) .. Наименование это ведь реквизит справочника Проданные книги, такой же как допустим реквизит книга, только является обязательным? Или не так?
  16. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Нужно использовать НайтиПоНаименованию?
  17. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    К наименованию не советую привязываться. Вдруг книга одинаково называется? Вероятность есть. Поэтому лучше через реквизит.
    дерево нравится это.
  18. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Нет.. опять что-то не то. Вот смотрите. В документе есть реквизит сотрудник с типом Справочник.Сотрудники. Теперь проводке я хочу, чтобы выбранный сотрудник записался в справочнике проданные книги. Если в справочнике проданные книги создать реквизит Сотрудник, а в модуле документа прописать СпрПроКниги.Сотрудники=Сотрудники , то всё хорошо работает и в справочник записывается выбранный сотрудник. Но тогда у меня остаётся пустая колонка Наименование. А если в модуле документа прописать СпрПроКниги.Наименование=Сотрудники, то не работает. Я не понимаю почему. Потому что это строка??
    Тогда мне нужно что сделать? НайтиПоРеквизиту? Если да, то... Справочники.<НазваниеСправочника>.НайтиПоРеквизиту (<ИмяРекизита>, <Значение>, <Родитель>, <Владелец>)
    В моём случае получается НужныйСотрудник=Справочники.Сотрудники.НайтиПоРеквизиту("Сотрудник",Сотрудник) ?
  19. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Наименование в справочнике можно вообще не использовать. Ну если уж вам так нужно
    СпрПроКнига.Наименование=Сотрудники.Наименование.
    Все же правильнее было бы использовать реквизит....
    дерево нравится это.
  20. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Его можно убрать? Я думал это обязательный реквизит..
    А если Вам не сложно, объясните то, что написано после знака равенства.. Получается мы присваиваем реквизиту Наименование справочника СпрПролКнига что? Здесь сотрудник - это реквизит документа, а наименование тогда что? Или получается сотрудник это ссылка на справочник сотрудники, а наименование, это реквизит справочника?
    А вот т.к. я писал выше про метод НайтиПоРеквизиту, это хоть немного похоже на то, как нужно делать?
Похожие темы
  1. memphisto
    Ответов:
    1
    Просмотров:
    1.074
Загрузка...

Поделиться этой страницей