понедельник, 16 декабря 2013 г.

Выгрузка результата СКД в таблицу значений

СКД - универсальный и гибкий механизм, который позволяет использовать отборы, создавать вычисляемые поля и еще много чего интересного. Большинство задач по получению данных решается через запросы, реже - построители запросов, которые позволяют использовать гибкие отборы, ну а я покажу на примере, как можно решить одну из таких задач, используя СКД.
Итак, приступим: есть некая обработка, в которой нужно заполнять табличную часть, к примеру, данными о продажах за выбранный период. Информация о продажах должна выводиться в табличную часть обработки.
1) Создадим новую обработку и назовем ее "ВыгрузкаСДКВТаблицуЗначений".
2) Добавим новую СКД - "ПродажиЗаПериод" и определим в ней новый набор данных - запрос.


3) Т.к. нам нужно получать продажи товара за период, то нужно построить запрос к виртуальной таблице оборотного регистра накопления Продажи.Обороты.
На закладке "Параметры" у нас автоматически добавятся параметры "НачалоПериода" и "КонецПериода", так что задавать их в параметрах виртуальной таблицы не нужно.
4) Далее на закладке "Настройки" создадим новую группировку без иерархии, а на закладке "Выбранные поля" выберем поля для вывода в таблицу значений.
4) На этом настройка СКД закончена. Вернемся к обработке и создадим реквизиты: "НачалоПериода" и "КонецПериода", с типом "Дата", и табличную часть Продажи с реквизитами: "Номенклатура" - тип "СправочникСсылка.Номенклатура" и КоличествоОборот - тип "Число". После этого создадим новую форму, добавив на нее созданные элементы.
5) Теперь откроем модуль объекта и определим там функцию для вывода результата работы СКД в таблицу значений:
Функция РезультатКомпоновкиВТЗ(СКД) Экспорт

   
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
   
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));
   
КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);

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

   
// устанавливаем параметры отчета
   
ЗначениеПараметра = ПараметрыНастройки.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));
   
ЗначениеПараметра.Значение = НачалоПериода;

   
ЗначениеПараметра = ПараметрыНастройки.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода"));
   
ЗначениеПараметра.Значение = КонецДня(КонецПериода);

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

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

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

   
ПроцессорВывода.УстановитьОбъект(ТаблицаРезультат);
   
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

    Возврат
ТаблицаРезультат;

КонецФункции


А в модуле формы напишем такой код:
Перем СКД;

Процедура
КнопкаВыполнитьНажатие(Кнопка)
   
Продажи.Загрузить(РезультатКомпоновкиВТЗ(СКД));
КонецПроцедуры

СКД = ПолучитьМакет("ПродажиЗаПериод");

6) Запустим и проверим работу нашей обработки. В качестве начала периода установим "01.01.2010", конец периода - "01.01.2014" и нажмем кнопку "Выполнить".
Таким образом, мы получили информацию о продажах товара за определенный период, используя при этом СКД. Это очень сильно упрощенный пример использования данного метода получения данных. На самом деле, когда используется несколько наборов данных, или же нужно использовать, гибкие отборы, вычислять поля, используя данные из разных наборов, то здесь СКД нет равных. Он может значительно упростить и ускорить разработку, а результат работы можно всегда быстро проверить используя консоль отчетов.  
Пример обработки можно скачать ЗДЕСЬ.


Добавить комментарий

1 комментарий :

  1. Заметки По 1С:Предприятие 8.2, 8.3: Выгрузка Результата Скд В Таблицу Значений >>>>> Download Now

    >>>>> Download Full

    Заметки По 1С:Предприятие 8.2, 8.3: Выгрузка Результата Скд В Таблицу Значений >>>>> Download LINK

    >>>>> Download Now

    Заметки По 1С:Предприятие 8.2, 8.3: Выгрузка Результата Скд В Таблицу Значений >>>>> Download Full

    >>>>> Download LINK

    ОтветитьУдалить