Вывод остатки отпусков в табличный документ (знатокам СКД и ЗУПа)
Коллеги, добрый день!
Необходимо программно получать табличный документ - результат выполнения отчета "Остатки отпусков " из ЗУПа.
(просьба не спрашивать, почему именно так и зачем)
Формирую по аналогии с отчетом, но табличный документ пустой.
Пожалуйста, подскажите, в чем ошибка.
Спасибо.
Необходимо программно получать табличный документ - результат выполнения отчета "Остатки отпусков " из ЗУПа.
(просьба не спрашивать, почему именно так и зачем)
Формирую по аналогии с отчетом, но табличный документ пустой.
Пожалуйста, подскажите, в чем ошибка.
Спасибо.
&НаСервере
Процедура ЗаполнитьНастройки(НастройкиОтчета,Сотрудник,ДатаОтчета)
ЭлементыОтбора = НастройкиОтчета.Отбор.Элементы;
Для Каждого ТекЭлемент Из ЭлементыОтбора Цикл
Если ТекЭлемент.Использование Тогда
Продолжить;
КонецЕсли;
Если СокрЛП(ТекЭлемент.ЛевоеЗначение) = "Сотрудник" Тогда
ТекЭлемент.Использование = Истина;
ТекЭлемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ТекЭлемент.ПравоеЗначение = Сотрудник;
КонецЕСли;
Если СокрЛП(ТекЭлемент.ЛевоеЗначение) = "ТекущаяОрганизация" Тогда
ТекЭлемент.Использование = Истина;
ТекЭлемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ТекЭлемент.ПравоеЗначение = Справочники.Организации.НайтиПоНаименованию("ООО РОмашка");
КонецЕСли;
КонецЦикла;
КонецПРоцедуры
&НаСервере
Функция СформироватьОтчетПООстаткуОтпуска(Сотрудник,ДатаОтчета)
МассивСотрудников = Новый Массив;
МассивСотрудников.Добавить(Сотрудник);
// Заполняем регистр ЗаработанныеПраваНаОтпуска.
ОстаткиОтпусков.РасчетЗаработанныхОтпусков(МассивСотрудников, ДатаОтчета);
СтандартнаяОбработка = ложь;
ДокументРезультат = Новый ТабличныйДокумент;
СхемаКомпоновкиДанных = Отчеты.ОстаткиОтпусков.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
ВариантНастроек = СхемаКомпоновкиДанных.ВариантыНастроек.ОстаткиОтпусков;
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.Инициализировать(Новый
ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек.ЗагрузитьНастройки(ВариантНастроек.Настройки);
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
ЗаполнитьНастройки(НастройкиОтчета,Сотрудник,ДатаОтчета);
МакетКомпоновки = ЗарплатаКадрыОтчеты.МакетКомпоновкиДанных(СхемаКомпоновкиДанных, НастройкиОтчета, неопределено);
// Создадим и инициализируем процессор компоновки.
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , неопределено, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
// Обозначим начало вывода.
ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
Возврат ДокументРезультат;
КонецФункции
&НаСервере
Процедура ПоказатьОстатокНаСервере()
Объект.Результат.Вывести(СформироватьОтчетПООстаткуОтпуска(Объект.Сотрудник,НачалоДня(ТекущаяДата())));
КонецПроцедуры
ПоказатьПрикрепленные файлы:
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
обработка, если проверять, поменяйте название организации
Прикрепленные файлы:
ВыводНаФормуОстаткиОТпусков.epf
(7)Как в подавляющем большинстве отчетов в ЗУП, нужно инициализировать общие источники данных.
Вставьте после строки
вот это:
Вставьте после строки
СхемаКомпоновкиДанных = Отчеты.ОстаткиОтпусков.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
вот это:
СтруктураОбъект = Новый Структура("СхемаКомпоновкиДанных", СхемаКомпоновкиДанных);
ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета(СтруктураОбъект);
(8)
чот не то вы написали. туда объект передаётся, ибо там дальше строка в этой процедуре
// Параметры:
// Объект - отчет
// ДополнительныеПоляПредставлений - Структура - где ключи - имена представлений запросов,
// значения - массив с описанием дополнительных полей.
//
Процедура ЗаполнитьОбщиеИсточникиДанныхОтчета(Объект, ДополнительныеПоляПредставлений = Неопределено, ТолькоРазрешенные = Истина) Экспорт
чот не то вы написали. туда объект передаётся, ибо там дальше строка в этой процедуре
ЗаполнитьОбщиеЗапросы(Объект.СхемаКомпоновкиДанных.НаборыДанных, ТолькоРазрешенные);
(19) никак. Надо парсить адрес и дату. По адресу отределять сотрудника. Подставлять в рассылку нужные параметры и отправлять на почту.
Механизм формирования письма для рассылки можно посмотреть в типовой.
Механизм разбора письма писать.
Ещё есть личный кабинет в 1с. Не помню есть ли там остатки отпусков.
Механизм формирования письма для рассылки можно посмотреть в типовой.
Механизм разбора письма писать.
Ещё есть личный кабинет в 1с. Не помню есть ли там остатки отпусков.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот