Многие разработчики, проводя отладку внешних отчетов, при работе с конфигурациями на базе 1С:Библиотеки стандартных подсистем (БСП) сталкиваются с необходимостью автоматизировать отправку внешних отчетов. Основная сложность заключается в том, что по умолчанию внешний отчет может не отображаться в списке доступных для создания рассылки, либо поле с расписанием может быть недоступно. Давайте подробно разберем, как правильно зарегистрировать отчет, чтобы он стал полноценным участником подсистемы рассылки отчетов.
Для того чтобы система «увидела» ваш внешний отчет, необходимо внести изменения в функцию СведенияОВнешнейОбработке, которая находится в модуле объекта внешнего отчета. Ключевым моментом является передача специальных параметров, описанных в справочнике по методам БСП, в структуру регистрационных данных.
Рассмотрим пошагово, что именно нужно добавить в структуру:
РассылкаОтчетов: В структуру, которую возвращает функция, обязательно нужно вставить свойство РассылкаОтчетов со значением Истина. Это дает команду подсистеме БСП считать отчет пригодным для массовой автоматической рассылки.Вид указано значение ДополнительныйОтчет. Это критически важно для корректной типизации объекта в справочнике ДополнительныеОтчетыИОбработки.Разберем готовый шаблон функции СведенияОВнешнейОбработке, который гарантированно позволяет подключить отчет к механизму рассылки:
Функция СведенияОВнешнейОбработке() Экспорт
РегистрационныеДанные = Новый Структура;
РегистрационныеДанные.Вставить("Наименование", "Наименование Вашего Отчета");
РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
РегистрационныеДанные.Вставить("Версия", "1.0");
РегистрационныеДанные.Вставить("РассылкаОтчетов", Истина);
РегистрационныеДанные.Вставить("Вид", "ДополнительныйОтчет");
РегистрационныеДанные.Вставить("Информация", "Описание отчета для пользователей");
тзКоманд = Новый ТаблицаЗначений;
тзКоманд.Колонки.Добавить("Идентификатор");
тзКоманд.Колонки.Добавить("Представление");
тзКоманд.Колонки.Добавить("Модификатор");
тзКоманд.Колонки.Добавить("ПоказыватьОповещение");
тзКоманд.Колонки.Добавить("Использование");
строкаКоманды = тзКоманд.Добавить();
строкаКоманды.Идентификатор = "Форма";
строкаКоманды.Представление = "Открыть форму отчета";
строкаКоманды.ПоказыватьОповещение = Ложь;
строкаКоманды.Использование = "ОткрытиеФормы";
РегистрационныеДанные.Вставить("Команды", тзКоманд);
Возврат РегистрационныеДанные;
КонецФункции
Если вы работаете в конфигурации 1С:Управление торговлей (например, версии 11.1), вы можете столкнуться с тем, что подсистема БСП работает некорректно. В таких случаях часто наблюдается недоступность функционала рассылок даже при верной регистрации отчета.
Решением может стать обновление отдельных подсистем БСП. Разработчики рекомендуют объединить вашу конфигурацию с актуальной версией библиотеки (например, версии 2.1.4.33 и выше), уделив внимание подсистемам ДополнительныеОтчетыИОбработки и РаботаВМоделиСервиса. Важно при объединении исключить модуль ДополнительныеОтчетыИОбработкиПереопределяемый, чтобы не затереть собственные настройки системы.
Когда отчет корректно зарегистрирован, он появится в списке доступных объектов в разделе Администрирование — Печатные формы, отчеты и обработки — Рассылки отчетов.
Рассылки отчетов и создайте новый элемент.Расписание, установив нужную периодичность (ежедневно, еженедельно или по специфическому графику).Получатели.Часто возникает вопрос: можно ли задать произвольный или плавающий период (например, за последние 3 дня)? Стандартный интерфейс рассылок БСП ограничен, поэтому для достижения гибкости рекомендуем:
ТекущаяДата() - 3 * 86400), используйте процедуру ПриКомпоновкеРезультата в модуле объекта отчета, где можно программно переопределить параметры НачалоПериода и КонецПериода, установив флаг СтандартнаяОбработка = Ложь.Следуя этим рекомендациям, вы сможете интегрировать любой внешний отчет в стандартный механизм рассылок 1С, обеспечив стабильную и автоматизированную работу вашей системы.