Получить данные из расчетного листка

1. atb-mdv 14.04.22 19:01 Сейчас в теме
Программно формируется расчетный листок

Отчеты.АнализНачисленийИУдержаний.РасчетныйЛисток(

Вопрос - как из этого отчета получить данные ?
kolibrik99; +1 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Evgenia060882 87 15.04.22 05:52 Сейчас в теме
Как пример можно посмотреть тут https:// /news/2016-07-06-how-to-adapt-complex-report/
3. atb-mdv 15.04.22 09:41 Сейчас в теме
(2) речь не о доработке.

В регламентированных отчетах можно использовать
Отчет.Ссылка.ДанныеОтчета.Получить()



Вот и в расчетном листке хотелось бы что-то подобное.
4. dka80 21 15.04.22 13:01 Сейчас в теме
(3) реготчеты принципиально формируются по другому.
см. общий модуль ЗарплатаКадрыОтчеты, в частности процедуру ВывестиСотрудникаРасчетныйЛисток. Можно ее модифицировать (через расширение, например) чтобы она результат куда-то складывала
5. puzo50 15.04.22 13:10 Сейчас в теме
найти место, где его окончательный текст есть
скопировать
наслаждаться.
6. dka80 21 15.04.22 13:46 Сейчас в теме
(5) ЗУП? Окончательный текст? Смешно
7. Matveev_VS 166 05.07.22 15:44 Сейчас в теме
(1) Сейчас сам столкнулся с подобной проблемой. Подскажи, нашел самый оптимальный выход?
8. atb-mdv 05.07.22 21:42 Сейчас в теме
(7) Увы нет. Пришлось данные из регистров запросами доставать. Думал задачка на 10 минут, а оказалось ...
9. Roman_Go 2 20.07.22 16:34 Сейчас в теме
(8)не поделитесь обработкой?
10. waitklassik 20.07.22 16:41 Сейчас в теме
я бы тоже не отказался =)
11. 1c_uZer 10.03.23 11:29 Сейчас в теме
Я делал вот так. Не знаю на сколько оптимально. Формировал расчетный листок и выводил данные в Таблицу значений.

	ОтчетОбъект = Отчеты.АнализНачисленийИУдержаний.Создать();
	
	ОтчетОбъект.ИнициализироватьОтчет();
        
    ВариантОтчета = ОтчетОбъект.СхемаКомпоновкиДанных.ВариантыНастроек.Найти("РасчетныйЛисток");
    
    Если ВариантОтчета= Неопределено Тогда
        Возврат;
    КонецЕсли;

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

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

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

     ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; 
	 
	 НачисленияУдержанияДокумента = ЗарплатаКадрыОтчетыБазовый.НаборыВнешнихДанныхАнализНачисленийИУдержаний(); 

     ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,НачисленияУдержанияДокумента,,Истина); 
      

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

     ДанныеТЗ = Новый ТаблицаЗначений; 
      

     ПроцессорВывода.УстановитьОбъект(ДанныеТЗ); 
      

     ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Показать
12. ZergKRSK 130 12.07.23 06:14 Сейчас в теме
17. Anthon 231 22.09.23 06:31 Сейчас в теме
(12)
надо писать
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(НастройкиОтчета.Отбор, "ФизическоеЛицо", СписокСотрудников, ВидСравненияКомпоновкиДанных.ВСписке, , Истина);
РЛ работает с физлицами
13. Said-We 12.07.23 10:52 Сейчас в теме
(1) Какие данные из РЛ получить необходимо и зачем? Почему из РЛ, а не непосредственно из регистров?
15. Anthon 231 22.09.23 06:21 Сейчас в теме
(13) потому что в регистрах все ок, все ведомости выдают верные данные, а расчетный листок взял и утроил всю зп и перепутал дни и часы и запрос у него не перехватывается
19. Said-We 22.09.23 10:15 Сейчас в теме
(15) И об этом мы узнаем только к 15-му посту. Вопрос как звучал? Как данные взять из РЛ.
Ответ логичный - брать надо не из РЛ, а из регистров.

А спросить надо было хотя бы примерно: "Почему у меня РЛ троит данные? Релиз такой-то. Где в коде вытащить запрос и посмотреть почему троит?"
14. sh_max 12.09.23 15:49 Сейчас в теме
ОтчетРасчетныйЛисток = ЗарплатаКадрыОтчеты.ОтчетРасчетныйЛисток();
Результат = Отчеты.АнализНачисленийИУдержаний.РасчетныйЛисток(ФизическиеЛица, Организация, МесяцФормированияОтчета, ОтчетРасчетныйЛисток);


В "Результат" вернётся структура, в которой будет и таблица значений с данными расчётного листа и готовый табличный документ.
Lupeykin; +1 Ответить
16. Anthon 231 22.09.23 06:22 Сейчас в теме
(14)
ОтчетРасчетныйЛисток = ЗарплатаКадрыОтчеты.ОтчетРасчетныйЛисток();
Рез

нет, возвращается табличный документ, никакой структуры там нет
18. sh_max 22.09.23 10:10 Сейчас в теме
(16) Ну не знаю, в ЗУП 3.1.24 возвращается структура. Вы где смотрите?
20. laperuz 47 22.09.23 11:34 Сейчас в теме
(18)3.1.24 давно неактуальна. Актуальные 3.1.23(LTS) и 3.1.27.

В 3.1.27 Отчеты.АнализНачисленийИУдержаний.РасчетныйЛисток() возвращает действительно табличный документ.

Структуру возвращает

ЗарплатаКадрыОтчеты.ДанныеРасчетныхЛистков(
		ФизическиеЛица, Организация, МесяцФормированияОтчета, МесяцФормированияОтчета, ОтчетРасчетныйЛисток)


В этой структуре 2 поля:
1. ДокументРезультат с типом Табличный документ, его как раз возвращает Отчеты.АнализНачисленийИУдержаний.РасчетныйЛисток()
2. ДанныеРасчетныхЛистков - то, что нужно, т.е. для получения структуры нужно примерно так сделать:

ОтчетРасчетныйЛисток = ЗарплатаКадрыОтчеты.ОтчетРасчетныйЛисток();
Результат = ЗарплатаКадрыОтчеты.ДанныеРасчетныхЛистков(
		ФизическиеЛица, Организация, МесяцФормированияОтчета, МесяцФормированияОтчета, ОтчетРасчетныйЛисток).ДанныеРасчетныхЛистков
Squisher; METAL; sh_max; +3 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот