Автор: Дмитрий   Дата: 2018-07-13 00:00:00

Вывод своего макета в СКД 1С Предприятие

Работа со схемой компоновки данных позволяет выполнить различные решения для вывода своего макета. К примеру необходима таблица Заказы покупателей, требуется вывести помимо стандартного вывода, еще надписи в шапку документа, а так же в подвал.

1. Создаем отчет, в котором добавляем макет, тип: Схема компоновки данных.

2. Запрос:

ВЫБРАТЬ
	ЗаказыПокупателейОбороты.ЗаказПокупателя Как Документ,
	ЗаказыПокупателейОбороты.Номенклатура Как Номенклатура,
	ЗаказыПокупателейОбороты.КоличествоОборот Как Количество
ИЗ
	РегистрНакопления.ЗаказыПокупателей.Обороты КАК ЗаказыПокупателейОбороты

3. Параметры на вкладке Настройка установим:

Начало периода Произвольная дата 13.07.2000 0:00:00
Конец периода Произвольная дата 13.07.2018 0:00:00

Параметры СКД

4. В настройках выберем Отчет, щелкаем правой кнопкой мыши, далее выбираем Новая группировка. В Поле ничего не ставим, Тип - Без иерархии.

Новая группировка

Выбранные поля

5. В результате выполнения получает такую таблицу:

Обычный вывод

Но требуется добавить в Шапку отчета, надпись: Отчет Заказы покупателей за период с НачалоПериода по НачалоПериода. НачалоПериода и НачалоПериода - это параметры, которые устанавливает пользователь. В подвал отчет требуется вывести пользователя 1С.

6. Добавляем еще один макет. Тип Табличный документ.

Макеты

Рисуем макет: Шапку и Подвал. Ячейку: за период с [НачалоПериода] по [КонецПериода] устанавливаем как Шаблон (Поле Заполнение). Ответственный как Параметр.

Рисуем макет

Шаблон

7. Создаем форму отчета. Добавим еще одну кнопку СформироватьПоНовому.

СформироватьПоНовому

8. В модуль формы:

Процедура СформироватьПоНовому(Кнопка)
	// Вставить содержимое обработчика.
	ВывестиОтчет(ЭлементыФормы.Результат);
КонецПроцедуры

9. В модуль объекта:

Процедура ВывестиОтчет(ДокументРезультат) Экспорт 
	//Получение параметров из настроек 
	НачПериода = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода");
	КонПериода = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода");
	//Подключаем свой макет
	МакетЗаголовокПодвал = ПолучитьМакет("МакетПечать");
	ДокументРезультат.Очистить();
	
	Область = МакетЗаголовокПодвал.ПолучитьОбласть("Шапка");
	Область.Параметры.НачалоПериода = НачПериода.Значение;
	Область.Параметры.КонецПериода = КонПериода.Значение;
	ДокументРезультат.Вывести(Область);
	
	//выводим строки из  ОсновнаяСхемаКомпоновкиДанных
	ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
	ЭтотОбъект.СкомпоноватьРезультат(ДокументРезультат, ДанныеРасшифровки);
	
	Область = МакетЗаголовокПодвал.ПолучитьОбласть("Подвал");
	Область.Параметры.Ответственный = ПолноеИмяПользователя();
	ДокументРезультат.Вывести(Область);
	
	ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
	ДокументРезультат.АвтоМасштаб = Истина;	
КонецПроцедуры

10. Результат:

Результат 2

11. Получилось, но мешает стандартный вывод параметров: Начало периода: 13.07.2000 00:00:00 Конец периода: 13.07.2018 00:00:00. Переходим в макет ОсновнаяСхемаКомпоновкиДанных на закладку Настройки. Выбираем закладку Другие настройки. Отмечаем флажок Выводить параметры в значение: Не выводить.

Другие настройки

Результат 3