Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 20:39

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

Автор Andrio48, 09 апр 2014, 10:01

0 Пользователей и 1 гость просматривают эту тему.

Andrio48

Здравствуйте. Пишу собственную конфигурацию на 8.2, новичок в 1с - набираюсь опыта.
Задача стоит следующая.
Имеется документ "Заказ" с табличными частями "Материалы для монтажа дымохода", "Материалы для монтажа облицовки" и подобные.
Необходимо на основании каждой ТЧ документа "Заказ" создавать документ "РасходнаяНакладная" с реквизитом блок, который содержит наименование ТЧ документа-основания "Заказ" (например, "Материалы для монтажа дымохода") и, соответственно, табличная часть "РасходнойНакладной" должна содержать список материалов табличной части  "Материалы для монтажа дымохода"
Надеюсь, более менее понятно объяснил. В интернете много информации, но никак не могу собрать всё в кучу что бы работало.
Как я себе представляю нужно для каждой ТЧ документа заказ создать свою команду, но что там писать никак не могу сообразить.

Для наглядности результат должен быть таким.

Andrio48

Решение найдено. Может кому пригодится. Создаём команду в модуле формы документа-основания, которой вызываем процедуру из модуля формы документа "РасходнаяНакладная". Код ниже

Процедура в модуле формы документа-основания

&НаКлиенте
Процедура ВводНаОснованииТопкаМатериалы(Команда)
Форма = получитьФорму("Документ.РасходнаяНакладная.Форма.ФормаДокумента");
Форма.ЗаполнитьНаКлиенте(Объект.Договор, Блок);
    Форма.Открыть();
КонецПроцедуры



Процедура в модуле формы РасходнойНакладной
&НаКлиенте
Процедура ЗаполнитьНаКлиенте(Договор, Блок) экспорт
       Заполнить_Сервер(Договор, Блок)
КонецПроцедуры

&НаСервере
Процедура Заполнить_Сервер(Договор, Блок)
    Док = Документы.РасходнаяНакладная.СоздатьДокумент();
    Для каждого Строка из Блок цикл
        Стр = Док.Смета.Добавить();
Стр.Материал = Строка.Наименование;
Стр.Количество = Строка.Количество;
Стр.ЦенаФакт = Строка.ЦенаОпт;
Стр.СуммаФакт = Строка.СуммаОпт;
    КонецЦикла;
    Док.Дата = ТекущаяДата();
    Док.Договор = Договор;
    ЗначениеВРеквизитФормы(док,"ОБъект");
КонецПроцедуры


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск