По теме из базы знаний
- Расчетный листок (маленький) для ЗиК БУ 8
- Расчетные листки с видом "Кратко" с расшифровкой по датам выплаты
- Формирование расчетного листка из формы набора записей регистров расчета. Исправляем помарку в ЗУП
- Заголовки и подписи в Расчетном листке без изменений конфигурации. Разработка в расширении для ЗУП 3.1
- Оптимизация механизма рассылки расчетных листков в 1С:ЗУП КОРП 3.1
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Я делал вот так. Не знаю на сколько оптимально. Формировал расчетный листок и выводил данные в Таблицу значений.
ОтчетОбъект = Отчеты.АнализНачисленийИУдержаний.Создать();
ОтчетОбъект.ИнициализироватьОтчет();
ВариантОтчета = ОтчетОбъект.СхемаКомпоновкиДанных.ВариантыНастроек.Найти("РасчетныйЛисток");
Если ВариантОтчета= Неопределено Тогда
Возврат;
КонецЕсли;
НастройкиОтчета = ВариантОтчета.Настройки;
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("Период", Новый СтандартныйПериод(НачалоГода(ТекущаяДатаСеанса()), КонецГода(ТекущаяДатаСеанса())));
СтруктураПараметров.Вставить("НачалоПериода", НачалоГода(ТекущаяДатаСеанса()));
СтруктураПараметров.Вставить("КонецПериода", КонецГода(ТекущаяДатаСеанса()));
Для каждого ПараметрЗаполнения Из СтруктураПараметров Цикл
ПараметрКомпоновкиДанных = Новый ПараметрКомпоновкиДанных(ПараметрЗаполнения.Ключ);
ЗначениеПараметра = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновкиДанных);
Если ЗначениеПараметра <> Неопределено Тогда
ЗначениеПараметра.Значение = ПараметрЗаполнения.Значение;
ЗначениеПараметра.Использование = Истина;
Иначе
НовыйПараметр = НастройкиОтчета.ПараметрыДанных.Элементы.Добавить();
НовыйПараметр.Параметр = ПараметрКомпоновкиДанных;
НовыйПараметр.Значение = ПараметрЗаполнения.Значение;
НовыйПараметр.Использование = Истина;
КонецЕсли;
КонецЦикла;
СписокСотрудников = Новый СписокЗначений;
СписокСотрудников.Добавить(Объект.Сотрудник, "ФизическоеЛицо");
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(НастройкиОтчета.Отбор, "Сотрудник", СписокСотрудников,
ВидСравненияКомпоновкиДанных.ВСписке, , Истина);
ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета);
ОтчетОбъект.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("КлючВарианта", "РасчетныйЛисток");
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(ОтчетОбъект.СхемаКомпоновкиДанных, ОтчетОбъект.КомпоновщикНастроек.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
НачисленияУдержанияДокумента = ЗарплатаКадрыОтчетыБазовый.НаборыВнешнихДанныхАнализНачисленийИУдержаний();
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,НачисленияУдержанияДокумента,,Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ДанныеТЗ = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ДанныеТЗ);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Показать
(15) И об этом мы узнаем только к 15-му посту. Вопрос как звучал? Как данные взять из РЛ.
Ответ логичный - брать надо не из РЛ, а из регистров.
А спросить надо было хотя бы примерно: "Почему у меня РЛ троит данные? Релиз такой-то. Где в коде вытащить запрос и посмотреть почему троит?"
Ответ логичный - брать надо не из РЛ, а из регистров.
А спросить надо было хотя бы примерно: "Почему у меня РЛ троит данные? Релиз такой-то. Где в коде вытащить запрос и посмотреть почему троит?"
ОтчетРасчетныйЛисток = ЗарплатаКадрыОтчеты.ОтчетРасчетныйЛисток();
Результат = Отчеты.АнализНачисленийИУдержаний.РасчетныйЛисток(ФизическиеЛица, Организация, МесяцФормированияОтчета, ОтчетРасчетныйЛисток);
В "Результат" вернётся структура, в которой будет и таблица значений с данными расчётного листа и готовый табличный документ.
(18)3.1.24 давно неактуальна. Актуальные 3.1.23(LTS) и 3.1.27.
В 3.1.27 Отчеты.АнализНачисленийИУдержаний.РасчетныйЛисток() возвращает действительно табличный документ.
Структуру возвращает
В этой структуре 2 поля:
1. ДокументРезультат с типом Табличный документ, его как раз возвращает Отчеты.АнализНачисленийИУдержаний.РасчетныйЛисток()
2. ДанныеРасчетныхЛистков - то, что нужно, т.е. для получения структуры нужно примерно так сделать:
В 3.1.27 Отчеты.АнализНачисленийИУдержаний.РасчетныйЛисток() возвращает действительно табличный документ.
Структуру возвращает
ЗарплатаКадрыОтчеты.ДанныеРасчетныхЛистков(
ФизическиеЛица, Организация, МесяцФормированияОтчета, МесяцФормированияОтчета, ОтчетРасчетныйЛисток)
В этой структуре 2 поля:
1. ДокументРезультат с типом Табличный документ, его как раз возвращает Отчеты.АнализНачисленийИУдержаний.РасчетныйЛисток()
2. ДанныеРасчетныхЛистков - то, что нужно, т.е. для получения структуры нужно примерно так сделать:
ОтчетРасчетныйЛисток = ЗарплатаКадрыОтчеты.ОтчетРасчетныйЛисток();
Результат = ЗарплатаКадрыОтчеты.ДанныеРасчетныхЛистков(
ФизическиеЛица, Организация, МесяцФормированияОтчета, МесяцФормированияОтчета, ОтчетРасчетныйЛисток).ДанныеРасчетныхЛистков
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот