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

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

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

Вопрос - как из этого отчета получить данные ?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Evgenia060882 86 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 20 15.04.22 13:01 Сейчас в теме
(3) реготчеты принципиально формируются по другому.
см. общий модуль ЗарплатаКадрыОтчеты, в частности процедуру ВывестиСотрудникаРасчетныйЛисток. Можно ее модифицировать (через расширение, например) чтобы она результат куда-то складывала
5. puzo50 15.04.22 13:10 Сейчас в теме
найти место, где его окончательный текст есть
скопировать
наслаждаться.
6. dka80 20 15.04.22 13:46 Сейчас в теме
(5) ЗУП? Окончательный текст? Смешно
7. Matveev_VS 157 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 129 12.07.23 06:14 Сейчас в теме
17. Anthon 230 22.09.23 06:31 Сейчас в теме
(12)
надо писать
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(НастройкиОтчета.Отбор, "ФизическоеЛицо", СписокСотрудников, ВидСравненияКомпоновкиДанных.ВСписке, , Истина);
РЛ работает с физлицами
13. Said-We 12.07.23 10:52 Сейчас в теме
(1) Какие данные из РЛ получить необходимо и зачем? Почему из РЛ, а не непосредственно из регистров?
15. Anthon 230 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 230 22.09.23 06:22 Сейчас в теме
(14)
ОтчетРасчетныйЛисток = ЗарплатаКадрыОтчеты.ОтчетРасчетныйЛисток();
Рез

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

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

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

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


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

ОтчетРасчетныйЛисток = ЗарплатаКадрыОтчеты.ОтчетРасчетныйЛисток();
Результат = ЗарплатаКадрыОтчеты.ДанныеРасчетныхЛистков(
		ФизическиеЛица, Организация, МесяцФормированияОтчета, МесяцФормированияОтчета, ОтчетРасчетныйЛисток).ДанныеРасчетныхЛистков
METAL; sh_max; +2 Ответить
Оставьте свое сообщение
Вакансии
1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 100 000 руб.
Временный (на проект)

Разработчик 1С
Москва
зарплата от 150 000 руб.
Полный день

Программист
Санкт-Петербург
зарплата от 180 000 руб. до 240 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб. до 250 000 руб.
Полный день