Приветствую Вас ГостьВоскресенье, 19.05.2024, 02:40

Каталог статей


Передать в отчет внешний отбор данных

Иногда требуется сформировать данные из разных источников и передать их в СКД.

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

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

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

Категория: СКД | Добавил: leshic (21.05.2021)
Просмотров: 295 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Вход на сайт
Поиск
Категории раздела
СКД [48]
Регистры [7]
Формы [41]
Администрирование [35]
Запросы [10]
Объекты конфигурации и типы данных [20]
Взаимодействие с другими базами, приложениями и источниками данных [16]
Программирование [29]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0