|
ЗУП 2.5. Перехватить вывод результата в отчете "Расчетные листки" | ☑ | ||
---|---|---|---|---|
0
Sun125
13.09.18
✎
15:21
|
Конфигурация ЗУП2.5.
Нужно в отчете "Расчетные листки" перехватить итоговый результат отчета в виде таблицы. ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("НачисленияУдержания", НачисленияУдержания); // получим макет компоновки данных КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); // создадим и инициализируем процессор компоновки данных ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки); // очистим результирующий табличный документ Результат.Очистить(); Если ВыводВФормуОтчета тогда ВыводЗаголовкаОтчета(Результат); КонецЕсли; // удалим отбор пустых строк начислений Настройки.Отбор.Элементы.Удалить(ГруппаОтбора); Если ОтборПоФизЛицу <> Неопределено тогда Настройки.Отбор.Элементы.Удалить(ОтборПоФизЛицу); КонецЕсли; // выведем отчет в табличный документ "Результат" ВывестиРезультатВТабличныйДокумент(ПроцессорКомпоновки, Результат, ВыводитьПоСтраницам); Процедура ВывестиРезультатВТабличныйДокумент(ПроцессорКомпоновкиДанных, ТабличныйДокумент, ВыводитьПоСтраницам) Экспорт // Создадим и инициализируем процессор вывода результата ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент); // Обозначим начало вывода ПроцессорВывода.НачатьВывод(); #Если НЕ Сервер И НЕ ВнешнееСоединение Тогда Состояние(НСТР("ru='Если Вы хотите прервать вывод отчета, нажмите Ctrl+Break'")); #КонецЕсли // Основной цикл вывода отчета Счетчик = 0; Пока Истина Цикл // Получим следующий элемент результата компоновки ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий(); // Получим следующий элемент результата компоновки Если ЭлементРезультата = Неопределено Тогда // Следующий элемент не получен - заканчиваем цикл вывода Прервать; Иначе // Элемент получен - выведем его при помощи процессора вывода ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЕсли; #Если НЕ Сервер И НЕ ВнешнееСоединение Тогда ОбработкаПрерыванияПользователя(); #КонецЕсли КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); ЗадатьИменаОбластямРазбитьТабличныйДокументПоСтраницам(ТабличныйДокумент, ВыводитьПоСтраницам); КонецПроцедуры Создаю процедуру: Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) Сообщить("!!!"); КонецПроцедуры Но, похоже, в процедуру не попадает. Подскажите, пожалуйста, что не так делаю? как вытащить результат? |
|||
1
Sun125
13.09.18
✎
15:31
|
(0) Мне нужно получить список сотрудников, по которым сформировались расчетные листки
|
|||
2
Sun125
13.09.18
✎
15:42
|
хоть прям с табличного документа получать данные...
может кто сталкивался? |
|||
3
Hans
13.09.18
✎
15:46
|
Не попадает может потому что в виде фонового задания исполняется. Подключи в отладку фоновые задания.
|
|||
4
piter3
13.09.18
✎
15:46
|
(3) а чего в 2.5 уже
|
|||
5
MUXACb
13.09.18
✎
16:55
|
(0) Если нужны только сотрудники, то лучше перехватить внешний источник данных "НачисленияУдержания" в процедуре "СформироватьОтчет" модуля отчета
|
|||
6
ptiz
13.09.18
✎
17:21
|
(1) Анализируй ЭлементРезультата.ЗначенияПараметров при выводе - там есть сотрудники
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |