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