Программное формирование отчета СКД и отправка на e-mail
Добрый день! Коллеги, подскажите что делаю не так. Суть такая: в ЗУП 3.1 делаю обработку по формированию и отправке табеля Т13 на почту сотрудникам. Письмо отправляется нормально, но сам отчет не формируется. Приходит excel файл, но пустой.
Код:
Код:
Процедура ВыполнитьРассылкуНаСервереНовая() Экспорт
НачалоПериода = НачалоМесяца(Дата(2024, 11, 01));
КонецПериода = КонецМесяца(НачалоПериода);
НепосредственныеРуководители = ПолучитьПереченьНепосредственныхРуководителей();
Для Каждого ТекСтрока Из НепосредственныеРуководители Цикл
Попытка
ОбъектОтчетНаСервере = Отчеты.УнифицированнаяФормаТ13.Создать();
СхемаСКД = ОбъектОтчетНаСервере.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
НастройкиСхемы = СхемаСКД.НастройкиПоУмолчанию;
ПараметрыДанныхСКД = НастройкиСхемы.ПараметрыДанных.Элементы;
СтандартныйПериод = Новый СтандартныйПериод;
СтандартныйПериод.ДатаНачала = НачалоПериода;
СтандартныйПериод.ДатаОкончания = КонецПериода;
СтандартныйПериод.Вариант = ВариантСтандартногоПериода.ПроизвольныйПериод;
ЭлементНачалоПериода = ПараметрыДанныхСКД.Найти("ПериодОтчета");
ЭлементНачалоПериода.Использование = Истина;
ЭлементНачалоПериода.Значение = СтандартныйПериод;
ЭлементДатаОтчета = ПараметрыДанныхСКД.Найти("ДатаОтчета");
ЭлементНачалоПериода.Использование = Истина;
ЭлементНачалоПериода.Значение = НачалоДня(ТекущаяДата());
ЭлементДатаОтчета = ПараметрыДанныхСКД.Найти("ДатаНачала");
ЭлементНачалоПериода.Использование = Истина;
ЭлементНачалоПериода.Значение = НачалоПериода;
ЭлементДатаОтчета = ПараметрыДанныхСКД.Найти("ДатаОкончания");
ЭлементНачалоПериода.Использование = Истина;
ЭлементНачалоПериода.Значение = КонецПериода;
ОтборКомпоновщика = НастройкиСхемы.Отбор;
Для Каждого ЭлементОтбора Из ОтборКомпоновщика.Элементы Цикл
Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Сотрудник") Тогда
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = ТекСтрока.НепосредственныйРуководитель;
ЭлементОтбора.Использование = Истина;
КонецЕсли;
Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОрганизацияОтбор") Тогда
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = ТекСтрока.Организация;
ЭлементОтбора.Использование = Истина;
КонецЕсли;
КонецЦикла;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(СхемаСКД, НастройкиСхемы);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет);
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ФайлДляОтправки = ПолучитьИмяВременногоФайла("xlsx");
ИмяСохраненногоФайла = Лев(ФайлДляОтправки, СтрНайти(ФайлДляОтправки,"v8_") - 1) + "Табель_учета_рабочего_времени(Т-13).xlsx";
ТабличныйДокумент.Записать(ИмяСохраненногоФайла, ТипФайлаТабличногоДокумента.XLSX);
ОтправитьПисьмо(ИмяСохраненногоФайла, Неопределено);
Исключение
ТекстСообщения = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЖурналРегистрации.ДобавитьСообщениеДляЖурналаРегистрации("Рассылка табеля учета рабочего времени",
УровеньЖурналаРегистрации.Ошибка, ЭтотОбъект, , ТекстСообщения);
Сообщить(ТекстСообщения);
КонецПопытки;
КонецЦикла;
КонецПроцедуры
ПоказатьПрикрепленные файлы:

По теме из базы знаний
Найденные решения
МойОтчет = Отчеты.МойОтчет.Создать();
Документ = Новый ТабличныйДокумент;
// где-то тут можно заполнить отборы МойОтчет.КомпоновщикНастроек.....
// нафига вы все процессор компоновки и прочего дергаете не по делу...
МойОтчет.СкомпоноватьРезультат(Документ);
ИмяФайла = ПолучитьИмяВременногоФайла("xlsx");
Документ.Записать(ИмяФайла);
Вложения = Новый Соответствие;
Вложения["МойОтчет.xlsx"] = Новый ДвоичныеДанные(ИмяФайла);
УправлениеПочтной.ОтправитьПисмена(Адресаты, Вложения, ...); // я хз что у вас там в системе, но везде как-то так
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
МойОтчет = Отчеты.МойОтчет.Создать();
Документ = Новый ТабличныйДокумент;
// где-то тут можно заполнить отборы МойОтчет.КомпоновщикНастроек.....
// нафига вы все процессор компоновки и прочего дергаете не по делу...
МойОтчет.СкомпоноватьРезультат(Документ);
ИмяФайла = ПолучитьИмяВременногоФайла("xlsx");
Документ.Записать(ИмяФайла);
Вложения = Новый Соответствие;
Вложения["МойОтчет.xlsx"] = Новый ДвоичныеДанные(ИмяФайла);
УправлениеПочтной.ОтправитьПисмена(Адресаты, Вложения, ...); // я хз что у вас там в системе, но везде как-то так
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот