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

Работа с макетами,надо вывести простой макет на подобии ТТН

Автор Ruslan09609, 05 сен 2018, 09:31

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

Ruslan09609

Добрый день мне нужно написать обработку которая будет выводит на печать пропуск который сделан на примере ТТН.
Сделал макет написал в модуле формы код,все поля в макете получилось заполнить кроме табличной части при выводи на печать в табличной части поподает одна строка только как сделать чтобы попадала вся номенклатура.
Скрин макета во вложении
Код с модуля формы вот
Процедура КнопкаВыполнитьНажатие(Кнопка)
   Номер            = ДанныеИзДокумент.Номер;
   Дата             = ДанныеИзДокумент.Дата;
   Грузополучатель  = ДанныеИзДокумент.Контрагент;
   
   
Для Каждого ТоварТ Из ДанныеИзДокумент.Товары Цикл
    ОбластьАртикул               =  ТоварТ.Номенклатура.Артикул;
   Количество                   =  ТоварТ.Количество;
   Цена                         =  ТоварТ.Цена;
   ТоварНаименование            =  ТоварТ.Номенклатура;
   БазоваяЕдиницаНаименование   =  ТоварТ.ЕдиницаИзмерения;
   Сумма                        =  ТоварТ.Сумма;
КонецЦикла;   
   
   
   ТабДок                                        = Новый ТабличныйДокумент;   
   Макет                                         = ПолучитьМакет("Макет");
   Макет.Параметры.Номер                         = Номер;
   Макет.Параметры.ДатаДоговора                  = Дата;
   Макет.Параметры.ГрузополучательПредставление  = Грузополучатель;
   //табличная часть
   Макет.Параметры.Артикул                       = ОбластьАртикул;
    Макет.Параметры.Количество                    = Количество;
   Макет.Параметры.Цена                          = Цена;
   Макет.Параметры.ТоварНаименование             = ТоварНаименование;
   Макет.Параметры.БазоваяЕдиницаНаименование    = БазоваяЕдиницаНаименование;
   Макет.Параметры.Сумма                         = Сумма;
   ТабДок.Вывести(Макет);   
   ТабДок.Показать("Пропуск");
    
КонецПроцедуры


alexandr_ll

Цитата: Ruslan09609 от 05 сен 2018, 09:31
Добрый день мне нужно написать обработку которая будет выводит на печать пропуск который сделан на примере ТТН.
Сделал макет написал в модуле формы код,все поля в макете получилось заполнить кроме табличной части при выводи на печать в табличной части поподает одна строка только как сделать чтобы попадала вся номенклатура.
Скрин макета во вложении
Код с модуля формы вот
Процедура КнопкаВыполнитьНажатие(Кнопка)
   Номер            = ДанныеИзДокумент.Номер;
   Дата             = ДанныеИзДокумент.Дата;
   Грузополучатель  = ДанныеИзДокумент.Контрагент;
   
   
Для Каждого ТоварТ Из ДанныеИзДокумент.Товары Цикл
    ОбластьАртикул               =  ТоварТ.Номенклатура.Артикул;
   Количество                   =  ТоварТ.Количество;
   Цена                         =  ТоварТ.Цена;
   ТоварНаименование            =  ТоварТ.Номенклатура;
   БазоваяЕдиницаНаименование   =  ТоварТ.ЕдиницаИзмерения;
   Сумма                        =  ТоварТ.Сумма;
КонецЦикла;   
   
   
   ТабДок                                        = Новый ТабличныйДокумент;   
   Макет                                         = ПолучитьМакет("Макет");
   Макет.Параметры.Номер                         = Номер;
   Макет.Параметры.ДатаДоговора                  = Дата;
   Макет.Параметры.ГрузополучательПредставление  = Грузополучатель;
   //табличная часть
   Макет.Параметры.Артикул                       = ОбластьАртикул;
    Макет.Параметры.Количество                    = Количество;
   Макет.Параметры.Цена                          = Цена;
   Макет.Параметры.ТоварНаименование             = ТоварНаименование;
   Макет.Параметры.БазоваяЕдиницаНаименование    = БазоваяЕдиницаНаименование;
   Макет.Параметры.Сумма                         = Сумма;
   ТабДок.Вывести(Макет);   
   ТабДок.Показать("Пропуск");
    
КонецПроцедуры
У вас цикл по табличной части документа не связан с выводом строк
Попробуйте так
Процедура КнопкаВыполнитьНажатие(Кнопка)
Номер            = ДанныеИзДокумент.Номер;
Дата             = ДанныеИзДокумент.Дата;
Грузополучатель  = ДанныеИзДокумент.Контрагент;
ТабДок                                        = Новый ТабличныйДокумент;
Макет                                         = ПолучитьМакет("Макет");
Макет.Параметры.Номер                         = Номер;
Макет.Параметры.ДатаДоговора                  = Дата;
Макет.Параметры.ГрузополучательПредставление  = Грузополучатель;

Для Каждого ТоварТ Из ДанныеИзДокумент.Товары Цикл
    ОбластьАртикул               =  ТоварТ.Номенклатура.Артикул;
Количество                   =  ТоварТ.Количество;
Цена                         =  ТоварТ.Цена;
ТоварНаименование            =  ТоварТ.Номенклатура;
БазоваяЕдиницаНаименование   =  ТоварТ.ЕдиницаИзмерения;
Сумма                        =  ТоварТ.Сумма;



//табличная часть
Макет.Параметры.Артикул                       = ОбластьАртикул;
    Макет.Параметры.Количество                    = Количество;
Макет.Параметры.Цена                          = Цена;
Макет.Параметры.ТоварНаименование             = ТоварНаименование;
Макет.Параметры.БазоваяЕдиницаНаименование    = БазоваяЕдиницаНаименование;
Макет.Параметры.Сумма                         = Сумма;
ТабДок.Вывести(Макет);
КонецЦикла;
ТабДок.Показать("Пропуск");
 
КонецПроцедуры

Ruslan09609

Теперь продукция не выходит в табличной части друг за другом 1.
                                                             2.
                                                             3.
А на каждую продукцию создается новый пропуск.
Мне нужно чтобы пропуск был один а в табличной части он перечислялся.

alexandr_ll

Цитата: Ruslan09609 от 06 сен 2018, 16:34
Теперь продукция не выходит в табличной части друг за другом 1.
                                                             2.
                                                             3.
А на каждую продукцию создается новый пропуск.
Мне нужно чтобы пропуск был один а в табличной части он перечислялся.
Конечно.
У макета же есть горизонтальные секции, их и нужно выводить последовательно, а вы выводите весь макет.

как-то так:+
ТД=Новый ТабличныйДокумент;

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
        ....
ТД.Вывести(ОбластьЗаголовок);
Для Каждого ТоварТ Из ДанныеИзДокумент.Товары Цикл
.......
ТД.Вывести(ОбластьДетальныхЗаписей );
КонецЦикла;

Естественно, имена областей ставьте свои

Теги:

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

Рейтинг@Mail.ru

Поиск