1С 8.3 Пример создания печатной формы документа - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Пример создания печатной формы документа

Данные > Примеры кода 1С > 1С 8.3 Табличный документ / Макет
Перейти в основной раздел:
Пример создания печатной формы документа в 1С 8.3:
Процедура ПримерСозданияПечатнойФормыДокумента() Экспорт

   
// Создание табличного документа
   
ТаблДок = Новый ТабличныйДокумент;

   
// Получение макета для печати счета
   
Макет = Документы.СчетНаОплату.ПолучитьМакет("ФормаСчета2020");

   
// Получение области "Заголовок" как новый табличный документ
   
Область_Заголовок = Макет.ПолучитьОбласть("Заголовок");

   
// Параметры области "Заголовок"
   
Область_Заголовок.Параметры.НомерДокумента = Номер;
   
Область_Заголовок.Параметры.От = Дата;
   
Область_Заголовок.Параметры.Кому = Контрагент;

   
// Вывод области "Заголовок"
   
ТаблДок.Вывести(Область_Заголовок);

   
// Вывод области "Шапка"
   
ТаблДок.Вывести(Макет.ПолучитьОбласть("Шапка"));

   
// Получение области "Строка"
   
Область_Строка = Макет.ПолучитьОбласть("Строка");

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

   
// Вывод области  "Подвал"
   
Область_Подвал = Макет.ПолучитьОбласть("Подвал");
   
Область_Подвал.Параметры.ИтогоКоличество = Состав.Итог("Количество");
   
Область_Подвал.Параметры.ИтогоСумма = Состав.Итог("Сумма");
   
Область_Подвал.Параметры.ИтогоНДС = Состав.Итог("НДС");
   
Область_Подвал.Параметры.ВсегоСНДС = Состав.Итог("ВсегоСНДС");
   
ТаблДок.Вывести(Область_Подвал);

   
// Установка параметров отображения табличного документа
   
ТаблДок.ОтображатьЗаголовки = Истина;
   
ТаблДок.ОтображатьСетку = Ложь;
   
ТаблДок.ТолькоПросмотр = Ложь;

   
// Вывод табличного документа пользователю на экране
   
ТаблДок.Показать();

КонецПроцедуры
Из рабочей базы данных (на основании примера)
Процедура КнопкаСформироватьНажатие(Кнопка)

   Запрос = Новый Запрос;
   Запрос.Текст =
  "ВЫБРАТЬ
       |    ЦеныПриходаИмпортера.Регистратор,
       |    ЦеныПриходаИмпортера.ВыбМатериал КАК ВыбМатериал,
       |    ЦеныПриходаИмпортера.ВыбФирма КАК ВыбФирма,
       |    ЦеныПриходаИмпортера.ЦенаПриходаВал,
       |    ЦеныПриходаИмпортера.ЦенаПриходаБел
       |ИЗ
       |    РегистрСведений.ЦеныПриходаИмпортера КАК ЦеныПриходаИмпортера
       |ГДЕ
       |    (ЦеныПриходаИмпортера.ВыбМатериал = &ВыбМатериал
       |            ИЛИ НЕ &ОтборПоВыбМатериал)
       |    И (ЦеныПриходаИмпортера.ВыбФирма = &ВыбФирма
       |            ИЛИ НЕ &ОтборПоФирме)
       |
       |УПОРЯДОЧИТЬ ПО
       |    ВыбМатериал,
       |    ВыбФирма
       |АВТОУПОРЯДОЧИВАНИЕ";

   Запрос.УстановитьПараметр("ВыбМатериал", ВыбМатериал);
   Запрос.УстановитьПараметр("ВыбФирма", ВыбФирма);
   Запрос.УстановитьПараметр("ОтборПоВыбМатериал", ЗначениеЗаполнено(ВыбМатериал));
   Запрос.УстановитьПараметр("ОтборПоФирме", ЗначениеЗаполнено(ВыбФирма));

   ТЗ = Новый ТаблицаЗначений;
   РезультатЗапроса = Запрос.Выполнить();
   ТЗ = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.Прямой);

   // Создание табличного документа
   ТаблДок = Новый ТабличныйДокумент;

   // Получение макета для печати
   Макет = ПолучитьМакет("Цены");

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

   Строка = Макет.ПолучитьОбласть("Строка");

   // Перечисляем все строки в таблице значений
   Для Каждого Стр Из ТЗ Цикл
           Строка.Параметры.Заполнить(Стр);
           Строка.Параметры.РасшифровкаДок=Стр.Регистратор.ссылка;

           ТаблДок.Вывести(Строка);
   КонецЦикла;

   ТаблДок.ФиксацияСверху = 4; // Закрепляем шапку таблицы

   // Установка параметров отображения табличного документа
   ТаблДок.ОтображатьЗаголовки = Истина;
   ТаблДок.ОтображатьСетку = Ложь;
   ТаблДок.ТолькоПросмотр = Истина;

   // Вывод табличного документа пользователю на экране
   ТаблДок.Показать();

КонецПроцедуры
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 02.06.2020
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Назад к содержимому