28.03.2017

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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