|
Программно сформировать отчет Расчетный лист | ☑ | ||
---|---|---|---|---|
0
Vvvvv
06.12.19
✎
14:28
|
Требуется написать обработку, в которой формируется табличный документ с результатом отчета "Расчетный лист". В конфигурации ЗУП, отчет называется "АнализНачисленийИУдержаний", у этого отчета много вариантов отчета, один из них "Расчетный лист". У отчета есть как макет СКД, так и обычный макет.
Начал писать обработку, которая во внешней обработке выводить макет. Большая часть кода отрабатывает во внешних модулей. И большой вопрос заключается какие параметры передавать. Передается такой параметр как ЭтотОбъект - с типом объекта отчета. И при передаче этого параметра, у него заполнены компановщик настроек,пользовательские настройки, выбранные поля определены. В моей обработке, эти параметры почти пустые и их нужно откудато получить ? Нагуглит такой объект "ХранилищеВариантовОтчетов" но как им пользоваться не понял? мои обращения к этому объекту показывает результат неопределенно |
|||
1
dka80
06.12.19
✎
14:39
|
НастройкиОтчета = ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки();
ПараметрПериод = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода")); Сотрудник = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Значение; Отчет = Отчеты.РасчетныеЛисткиОрганизаций.Создать(); НастройкиОтчета = Отчет.КомпоновщикНастроек.ПолучитьНастройки(); НачалоПериода = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода")); НачалоПериода.Значение = НачалоМесяца(ПараметрПериод.Значение.Дата); КонецПериода = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода")); КонецПериода.Значение = КонецМесяца(ПараметрПериод.Значение.Дата); ВидРасчетногоЛистка = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВидРасчетногоЛистка")); ВидРасчетногоЛистка.Значение = "Подробно"; ОтборСотрудник = Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Сотрудник")); Для Каждого Отбор Из Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл Если Отбор.ЛевоеЗначение = ОтборСотрудник.Поле Тогда Отбор.Использование = Истина; Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; Отбор.ПравоеЗначение = Сотрудник; КонецЕсли; КонецЦикла; ФормаОтчета = Отчет.ПолучитьФорму(, , Новый УникальныйИдентификатор()); ФормаОтчета.СтандартныйПериод.ДатаНачала = НачалоМесяца(ПараметрПериод.Значение.Дата); ФормаОтчета.СтандартныйПериод.ДатаОкончания = КонецМесяца(ПараметрПериод.Значение.Дата); ФормаОтчета.КомпоновщикНастроекПользователя.ЗагрузитьНастройки(Отчет.КомпоновщикНастроек.ПолучитьНастройки()); ФормаОтчета.ЭтоОтработкаРасшифровки = Истина; ФормаОтчета.ОбновитьОтчет(); ФормаОтчета.Открыть(); |
|||
2
mmmarat
06.12.19
✎
14:46
|
Создаем отчет, инициализируем.
ОтчетОбъект.ИнициализироватьОтчет(); получаем вариант "РасчетныйЛисток", получаем его настройки НастройкиОтчета = ВариантОтчета.Настройки; заполняем настройки варианта В компоновщик настроек загружаем настройки В пользовательские настройки в доп свойства вставляем ключ варианта. ОтчетОбъект.СкомпоноватьРезультат(ДокументРезультат); Это как направление мысли, чтобы реализовать задачу. |
|||
3
azt-yur
06.12.19
✎
15:01
|
В документе Начисление зарплаты и взносов в форме есть кнопка Расчетный листок. Посмотри что она вызывает и делай также.
|
|||
4
Vvvvv
06.12.19
✎
15:05
|
Отлично. Добавил такие процедуры
НовыйОтчет = Отчеты.АнализНачисленийИУдержаний.Создать(); НовыйОтчет.ИнициализироватьОтчет("РасчетныйЛисток"); а далее типовая процедура ПриКомпоновкеРезультата, но уже в модуле обработки. отчет формируется. что осталось программно задать параметры |
|||
5
azt-yur
06.12.19
✎
15:07
|
ОтчетРасчетныйЛисток = ЗарплатаКадрыОтчеты.ОтчетРасчетныйЛисток();
ДокументРезультат = Отчеты.АнализНачисленийИУдержаний.РасчетныйЛисток( ФизическиеЛица, Организация, Месяц, ОтчетРасчетныйЛисток); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |