В начало

Печатная форма из СКД

 

Например, нужно создать печатную форму документа, используя схему компоновки данных с внешними наборами данных.

Далее показан документ «Поступление товаров».

Рис. Документ «Поступление товаров»

            В модуле формы расположена пара процедур для автоматического расчета суммы в табличной части документа «ПоступлениеТоваров».

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

Процедура СписокТоваровЦенаПриИзменении(Элемент)

            Стр=ЭтаФорма.ЭлементыФормы.СписокТоваров.ТекущиеДанные;

Стр.Сумма=Стр.Цена*Стр.Количество;

КонецПроцедуры

 

Процедура СписокТоваровКоличествоПриИзменении(Элемент)

Стр=ЭтаФорма.ЭлементыФормы.СписокТоваров.ТекущиеДанные;

Стр.Сумма=Стр.Цена*Стр.Количество;

КонецПроцедуры

 

            Создаем форму документу «Поступление товаров» и размещаем новую кнопочку «ПечатнаяФорма».

Рис. Новая кнопка «Печатная форма»

 

            Добавляем новый макет в раздел макеты, называем типа «МояПечатнаяФорма», тип макета – Схема компоновки данных.

 

Рис. Макет «МояПечатнаяФорма»

            Далее показаны поля набора данных типа объект «ШапкаДокумента» на закладке «Наборы данных».

Рис. Набор данных «Шапка документа»

           

Рис. Поля набора данных «СоставДокумента»

Переходим на закладку «Вычисляемые поля» в СКД и добавляем вычисляемое поле «Сумма».

Рис. СКД, вкладка «Вычисляемые поля»

            Переходим на закладку «Ресурсы», что в СКД и добавляем поле «Сумма» в ресурсы.

Рис. Закладка «Ресурсы» в СКД

 

            Возвращаемся на форму и прописываем событие при нажатии кнопки «ПечатнаяФорма».

            Ниже показаны данные, которые нужно выбрать для формирования внешнего набора данных «ШапкаДокумента».

            А для набора данных «СоставДокумента» будем использовать табличную часть «СписокТоваров».

Рис. Выбор данных для набора данных «ШапкаДокумента»

            Листинг. Событие при нажатии кнопки «Печатная форма»

Процедура ОсновныеДействияФормыПечатнаяФорма(Кнопка)

            Запрос = Новый Запрос;

            Запрос.Текст =

                        "ВЫБРАТЬ

                        |           ПоступлениеТоваров.Номер,

                        |           ПоступлениеТоваров.Дата,

                        |           ПоступлениеТоваров.Покупатель,

                        |           ПоступлениеТоваров.Продавец,

                        |           ПоступлениеТоваров.Склад

                        |ИЗ

                        |           Документ.ПоступлениеТоваров КАК ПоступлениеТоваров

                        |ГДЕ

                        |           ПоступлениеТоваров.Ссылка = &Ссылка";

           

            Запрос.УстановитьПараметр("Ссылка", ДокументОбъект.Ссылка);

            Результат = Запрос.Выполнить();  

            ШапкаДокумента = Результат.Выгрузить();

           

            ВнешниеНаборыДанных = Новый Структура;

            ВнешниеНаборыДанных.Вставить("ШапкаДокумента", ШапкаДокумента);

            ВнешниеНаборыДанных.Вставить("СоставДокумента", ДокументОбъект.СписокТоваров);

                       

            СхемаКомпоновкиДанных = ПолучитьМакет("МояПечатнаяФорма");

            Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

           

            КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

            МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);

           

            ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;

            ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных);

           

           

            ДокументРезультат = Новый ТабличныйДокумент;

            ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; 

            ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

            ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

           

            ДокументРезультат.ОтображатьСетку = Ложь;

            ДокументРезультат.Показать();

           

КонецПроцедуры

 

            Переходим на закладку «Настройки» в СКД. На закладке «Настройки» выбираем поля и формируем группировки.

Рис. Закладка «Настройки» в СКД

            Далее показаны настройки для первой группировки, чтобы они выводились вертикально, выбран соответствующий тип макета на закладке «Настройки – Другие настройки».

Рис. Настройки для первой группировки

            Переходим в режим «1С: Предприятие», открываем документ, жмем кнопку «Печатная форма».

Рис. Печатная форма документа «Поступление товаров»