Добрый день. Есть внешний отчет, который писался под требования заказчика на СКД.
В нем есть параметры типо даты там и др.
В определённый день недели мне необходимо изменять дату и формировать отчет за другой день.
Для этого была написана вот такая процедура:

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) Экспорт

    СтандартнаяОбработка = Ложь;

    НастройкиКД = КомпоновщикНастроек.ПолучитьНастройки();

    НачалоПериода = НастройкиКД.ПараметрыДанных.Элементы.Найти("НачалоПериода").Значение;
    КонецПериода = НастройкиКД.ПараметрыДанных.Элементы.Найти("КонецПериода").Значение;

    Если НачалоПериода <> Неопределено И КонецПериода <> Неопределено Тогда

    Если ДеньНедели(НачалоПериода) = 7 И ДеньНедели(КонецПериода) = 1 Тогда

    НастройкиКД.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", НачалоПериода.Дата - (2*60*60*24));
    НастройкиКД.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КонецПериода.Дата - (2*60*60*24));

    КонецЕсли;

    КонецЕсли;

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКД, ДанныеРасшифровки);

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Ложь);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

    КонецПроцедуры
```

Однако есть забавный момент. Очет интерактивно формируется, все хорошо. Отрабатывает корректно и данные выводит тоже корректно.

Но, как написано в теме, есть нюанс. Когда отрабатывает рассылка отчета по датам которые не попадают в блок ЕСЛИ рассылка формируется. Когда даты попадают в блок если, дает сообщение об ожибке в ЖР

"Рассылка отчетов не выполнена, так как отчеты пустые или не сформированы из-за ошибок."

При этом строкой выше есть вот такое сообщение в ЖР
"Отчет 'МойУсловныйОтчет' успешно сформирован."

В чем может быть причина такого поведения рассылки и отчета?
---
Столкнулся с таким же явлением. Ответ нашелся в том, что в обработчике ПриКомпоновкеРезультат настройки компоновщика получаются в переменную, локально обрабатываются и все на этом. Обратно в компоновщик измененные настройки не загружаются.
Помогла одна строка: КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
То есть обратная загрузка измененных настроек в компоновщик.
---
А если интерактивно формировать за эти даты, отчет пустой формируется?
---
Нет, выводит корректные данные и все гуд
---
Логируйте действия - пишите в журнал регистрации значения, которые пытаетесь установить параметрам до установки параметров.
Пишите в журнал после установки.
---
Прошел отладчиком, добавил вывод в ЖР всех параметров что устанавливаю, добавил обработчик ошибок.
Итога нет, все такая же ситуация.
Что бы исключить вариант с кэшированием или не подтянувшимся вариантом отчета, пересоздал отчет в отдельном файле с другим именем (как самого отчета так и файла), пересоздал рассылку с нуля (не копированием) и все так же картина на выходе
---
добавил вывод в ЖР всех параметров что устанавливаюИ где даты?
---
Я проверил что параметры встают корректно и убрал лишние куски кода, что бы глаза не мозолили
В параметры попадает тип дата и при этом не пустое значение, так что проблема не в получении параметров или их установке.
Возможно для рассылки и в т.ч. Фоновых заданий их как то по другому надо устанавливать?
Да и если бы проблема была в параметре, то давало бы ошибку хоть какую то, а так, складывается ощущение что не срабатывает условие или ещё что-то в этом роде
---
Переименуй переменные НачалоПериода и КонецПериода.
В какие-нибудь НП1 и КП1.
Что-то мне они не нравятся.
---
Вы имеете ввиду в методе "ПриКомпоновкеРезультата"? Или в самой СКД?
---
Я же сказал "переменные". Значит, в программной процедуре.
---
Не помогло
Скрин ЖР прилагаю
Измененный код модуля тоже ниже

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) Экспорт

    СтандартнаяОбработка = Ложь;

    НастройкиКД = КомпоновщикНастроек.ПолучитьНастройки();

    НП = НастройкиКД.ПараметрыДанных.Элементы.Найти("НачалоПериода").Значение;
    КП = НастройкиКД.ПараметрыДанных.Элементы.Найти("КонецПериода").Значение;

    Если НП <> Неопределено И КП <> Неопределено Тогда
    Если ДеньНедели(НП) = 7 И ДеньНедели(КП) = 1 Тогда
    Попытка
    НастройкиКД.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", НП.Дата - (2*60*60*24));
    НастройкиКД.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КП.Дата - (2*60*60*24));
    Исключение
    ЗаписьЖурналаРегистрации(НСтр("ru = 'Выгрузка по 51 счету. Действие с возможной ошибкой'"),
    УровеньЖурналаРегистрации.Ошибка, , ,
    НСтр("ru = 'Во время выполнения действия произошла неизвестная ошибка.'") + Символы.ПС +
    ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
    КонецПопытки;
    КонецЕсли;

    КонецЕсли;

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКД, ДанныеРасшифровки);

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Ложь);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

    КонецПроцедуры
```
---
Зачем журналировать исключение из Попытки, если по твоим словам не выполняется условие Если (внутри которого и есть Попытка). До этого места исполнение кода не доходит.
Зажурналируй успешные действия (установку сдвинутых дат), и предъяви.
---
Удалось словить отладчиком. Скрин с типами данных и со значениями которые присвоились прикрепляю. Так же прикрепляю скрин того что вывелось в журнал регистрации. Получается что в условие мы все же попадаем, но корректного выполнения отчета не получаем. Хотя при таком же проходе Интерактивным формированием получаем нормальный результат.
---
Ну а теперь проверяй - что в конце процедуры получается в ДокументРезультат. Зажурналируй хотя бы количество строк в этом табдоке. Он вообще - формируется? Или очищается где-то по пути к подведению итоговой рассылки.
---
Не понял, что значит "НП.Дата" и "КП.Дата" если НП и КП уже дата.

НастройкиКД.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", НП.Дата - (2*60*60*24));
НастройкиКД.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КП.Дата - (2*60*60*24));
---
Столкнулся с таким же явлением. Ответ нашелся в том, что в обработчике ПриКомпоновкеРезультат настройки компоновщика получаются в переменную, локально обрабатываются и все на этом. Обратно в компоновщик измененные настройки не загружаются.
Помогла одна строка: КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
То есть обратная загрузка измененных настроек в компоновщик.
---
За работало)
---
может быть

НачалоДня(НачалоПериода.Дата) - (2*60*60*24)
КонецДня(КонецПериода.Дата) - (2*60*60*24)