Вход | Регистрация

1С:Предприятие ::

Метки: 

ЗУП 2.5. Перехватить вывод результата в отчете "Расчетные листки"

Я
   Sun125
 
13.09.18 - 15:21
Конфигурация ЗУП2.5.
Нужно в отчете "Расчетные листки" перехватить итоговый результат отчета в виде таблицы.

ВнешниеНаборыДанных = Новый Структура;
    ВнешниеНаборыДанных.Вставить("НачисленияУдержания", НачисленияУдержания);
    
    // получим макет компоновки данных

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки   = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    
    // создадим и инициализируем процессор компоновки данных

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);
    
    // очистим результирующий табличный документ

    Результат.Очистить();
    
    Если ВыводВФормуОтчета тогда
        ВыводЗаголовкаОтчета(Результат);
    КонецЕсли;
    
    // удалим отбор пустых строк начислений

    Настройки.Отбор.Элементы.Удалить(ГруппаОтбора);
    Если ОтборПоФизЛицу <> Неопределено тогда
        Настройки.Отбор.Элементы.Удалить(ОтборПоФизЛицу);
    КонецЕсли;
    
    // выведем отчет в табличный документ "Результат"

    ВывестиРезультатВТабличныйДокумент(ПроцессорКомпоновки, Результат, ВыводитьПоСтраницам);

Процедура ВывестиРезультатВТабличныйДокумент(ПроцессорКомпоновкиДанных, ТабличныйДокумент, ВыводитьПоСтраницам) Экспорт
    
    // Создадим и инициализируем процессор вывода результата

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

    ПроцессорВывода.НачатьВывод();
    #Если НЕ Сервер И НЕ ВнешнееСоединение Тогда

        Состояние(НСТР("ru='Если Вы хотите прервать вывод отчета, нажмите Ctrl+Break'"));
    #КонецЕсли

    
    // Основной цикл вывода отчета

    Счетчик = 0;
    Пока Истина Цикл
        
        
        // Получим следующий элемент результата компоновки

        ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
        
        // Получим следующий элемент результата компоновки

        Если ЭлементРезультата = Неопределено Тогда
            
            // Следующий элемент не получен - заканчиваем цикл вывода

            Прервать;
            
        Иначе
            
            // Элемент получен - выведем его при помощи процессора вывода

            ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
            
        КонецЕсли;
        
        #Если НЕ Сервер И НЕ ВнешнееСоединение Тогда

            ОбработкаПрерыванияПользователя();
        #КонецЕсли

        
    КонецЦикла;
    
    ПроцессорВывода.ЗакончитьВывод();
    
    ЗадатьИменаОбластямРазбитьТабличныйДокументПоСтраницам(ТабличныйДокумент, ВыводитьПоСтраницам);
    
КонецПроцедуры

Создаю процедуру:
 Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    Сообщить("!!!");
    
КонецПроцедуры

Но, похоже, в процедуру не попадает.
Подскажите, пожалуйста, что не так делаю? как вытащить результат?
 
 
   Sun125
 
1 - 13.09.18 - 15:31
(0) Мне нужно получить список сотрудников, по которым сформировались расчетные листки
   Sun125
 
2 - 13.09.18 - 15:42
хоть прям с табличного документа получать данные...
может кто сталкивался?
   Hans
 
3 - 13.09.18 - 15:46
Не попадает может потому что в виде фонового задания исполняется. Подключи в отладку фоновые задания.
   piter3
 
4 - 13.09.18 - 15:46
(3) а чего в 2.5 уже
   MUXACb
 
5 - 13.09.18 - 16:55
(0) Если нужны только сотрудники, то лучше перехватить внешний источник данных "НачисленияУдержания" в процедуре "СформироватьОтчет" модуля отчета
   ptiz
 
6 - 13.09.18 - 17:21
(1) Анализируй ЭлементРезультата.ЗначенияПараметров при выводе - там есть сотрудники


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует