28.03.2017

Использование таблицы значений в отчете СКД (набор данных "Объект")

Автор: Белозерских Евгений

    Итак задача! Есть отчет на СКД, в который необходимо передать в качестве параметра таблицу значений. Точнее не так! Необходимо использовать в отчете СКД данные расположенные в готовой таблице значений (например результат запроса, плюс программная обработка строк таблицы). Начнем!

Создаем отчет с наборами данных

    Для решения нашей задачи нам потребуется два набора данных:
  • Запрос
  • Объект (для таблицы значений)
Наборы данных "Запрос" и "Объект"

Набор данных "Запрос"

    В первом наборе данных пишем простой запрос получения остатков по товарам
"ВЫБРАТЬ ПЕРВЫЕ 10
|	ТоварыНаСкладахОстатки.Склад,
|	ТоварыНаСкладахОстатки.Номенклатура,
|	ТоварыНаСкладахОстатки.Качество,
|	ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
|	ТоварыНаСкладахОстатки.СерияНоменклатуры,
|	ТоварыНаСкладахОстатки.КоличествоОстаток
|ИЗ
|	РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки"

Набор данных "Объект"

    Для набора данных "Объект" заполняем:
  • Поля (Поле, путь, заголовок)
  • Тип значения поля
  • Имя объекта содержащего данные
Описание набор данных "Объект"

Указываем связи наборов данных

    Связи наборов данных это аналог использования левого соединения в запросах. В нашем примере указываем связь по номенклатуре.

Связи наборов данных СКД

Корректировка модуля объекта отчета

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


Другие статьи

Система компоновки данных 1С (основы)

     Система компоновки данных (СКД) - это мощный инструмент платформы «1С:Предприятие» 8, который применяется не только для разработки отчетов, но и при работе на управляемых формах (в частности для динамических списков)

Макет в СКД: Макет ресурсов (или оформляем таблицу в отчете)

    Статья с описанием примера использования макета ресурсов при разработке отчета на 1С:СКД

Макет в СКД: Макет группировки

   Наглядная демонстрация использования вида макета «Макет группировки» в СКД

Создание простого отчета на СКД

    Пример простейшего отчета на 1С СКД

Использование внешних функций в 1С:СКД

    Пример ошибки использования внешних функций в 1С:СКД при программном формировании отчета

Инициализация компоновщика настроек СКД

    Пример того, как правильно инициализировать компоновщик настроек 1С:СКД

Автозаполнение в СКД

    Флаг «Автозаполнение» в СКД существенно влияет на поведение отчета. Давайте разберемся почему так происходит

Макет СКД. Произвольный подвал (или шапка)

    Немного о том, как в СКД реализовать вывод произвольной шапки или подвала отчета

Стандартный период в СКД 1С 8.3

    Пример использования поля "Стандартный период" в параметрах отчета 1С СКД

Программная установка заголовка отчета СКД

Для того, чтобы при формировании отчета на СКД вывести вверху произвольный заголовок, необходимо написать всего 3 (ТРИ) строчки )

Вывод логотипа (изображения) на СКД

Часто ставится задача вывести в отчет (печатную форму) графический объект (изображение, логотип, подписи и т.п.). Рассмотрим как можно это реализовать при помощи СКД

Программная установка параметров в отчете СКД

Краткий пример того, как можно установить параметры в отчете СКД

Вывод дополнительной строки итогов

В статье описан достаточно простой пример получения строки с дополнительным итогом, при выводе отчета в таблице

Макет в СКД. Просто о простом

Разработчики 1С очень часто пользуются системой компоновки данных при разработке отчетов. Но когда речь заходит о макетах в СКД, для многих это кажется сложным.