Почему рассылка отчетов в 1С:Управление торговлей 11.5 не видит новый отчет и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

При разработке нового нетипового отчета и добавлении его в конфигурацию часто возникает ситуация: пользователи успешно открывают отчет из интерфейса и формируют данные, однако при попытке настроить регламентную рассылку этот отчет отсутствует в списке доступных. Проанализируем, как устроена работа механизма рассылок в типовых решениях на базе Библиотеки стандартных подсистем (БСП) и разберем по шагам способы исправления этой ошибки.

Выясним первопричину такого поведения. Список отчетов в форме создания рассылки строится не по дереву объектов метаданных конфигурации, а исключительно по содержимому служебного справочника ВариантыОтчетов. Если новый объект добавлен в конфигуратор, но запись в данном справочнике еще не появилась или вариант отчета признан системой недоступным для вывода, рассылка отчетов его просто не покажет.

Способ 1. Принудительное обновление служебных данных БСП

Рассмотрим самую распространенную причину: после обновления конфигурации базы данных фоновое заполнение служебных таблиц БСП не запустилось автоматически. В таком случае отчет физически существует в метаданных, но справочник ВариантыОтчетов о нем не знает.

Для инициализации обновления данных выполним следующие действия:

  1. Запустим сеанс «1С:Предприятие» в режиме отладки или через командную строку со специальным ключом запуска: /C ЗапуститьОбновлениеИнформационнойБазы.
  2. Если есть доступ к внешним обработкам с полными правами, выполним программное обновление вариантов через вызов метода подсистемы:

ВариантыОтчетов.Обновить();

После завершения процедуры справочник перечитает дерево метаданных и автоматически создаст предопределенные варианты для всех новых отчетов конфигурации.

Способ 2. Регистрация нетиповой подсистемы в панели отчетов

Проанализируем структуру подсистем конфигурации. Подсистема вариантов отчетов БСП отслеживает отчеты только в тех подсистемах, которые зарегистрированы как разделы интерфейса с панелями отчетов. Если отчет включен исключительно в новую пользовательскую подсистему, алгоритм БСП может отфильтровать его при формировании списка.

Чтобы подсистема учитывалась БСП, выполним доработку:

  1. Откроем общий модуль ВариантыОтчетовПереопределяемый.
  2. Найдем экспортную процедуру ОпределитьРазделыСВариантамиОтчетов.
  3. Добавим нашу нетиповую подсистему в коллекцию разделов следующим образом:

Процедура ОпределитьРазделыСВариантамиОтчетов(Разделы) Экспорт
    
    // Регистрируем новую подсистему в механизме БСП
    Разделы.Добавить(Метаданные.Подсистемы.ИмяВашейПодсистемы, "Имя раздела");
    
КонецПроцедуры

Либо, если менять общий модуль нежелательно, включим созданный отчет в состав любой типовой подсистемы (например, Продажи или Склад), которая уже зарегистрирована в механизме отчетов.

Важное замечание по расширениям: если сам отчет расположен в основной конфигурации, а его добавление в состав служебной подсистемы ВариантыОтчетов выполнено через расширение, типовые механизмы БСП могут некорректно сопоставить метаданные. Привязку объекта к подсистемам БСП следует выполнять непосредственно в основной конфигурации.

Способ 3. Проверка настроек схемы компоновки данных и модуля менеджера

Посмотрим на требования БСП к коду отчета. Чтобы авторегистрация прошла успешно, в схеме компоновки данных (СКД) обязательно должен быть настроен хотя бы один вариант отчета по умолчанию с заполненным наименованием.

Также в современных версиях БСП рекомендуется объявлять обработчик настроек в модуле менеджера отчета. Откроем модуль менеджера созданного отчета и добавим следующую экспортную процедуру:


Процедура ПриОпределенииНастроек(Настройки) Экспорт

    // Задаем параметры авторегистрации варианта при необходимости
    Настройки.ПользовательскиеНастройкиПоУмолчанию = Истина;

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

Способ 4. Быстрое добавление через сохранение пользовательского варианта

Разберем обходной путь, который позволяет оперативно подключить отчет к рассылке без изменения типового кода и перезапуска базы данных в служебных режимах:

  1. Зайдем в режим «1С:Предприятие» под учетной записью с полными правами.
  2. Откроем созданный отчет через меню функций или команду «Все функции» / «Функции для технического специалиста».
  3. Нажмем кнопку «Сохранить вариант отчета...».
  4. В открывшемся окне укажем понятное наименование и обязательно выберем переключатель доступности: «Всем пользователям».
  5. Нажмем «Сохранить».

При интерактивном сохранении варианта платформа напрямую создает новую запись в справочнике ВариантыОтчетов с признаком общей доступности. После этого данный вариант отчета мгновенно станет доступным для выбора в окне настройки рассылок.

Способ 5. Подключение отчета как дополнительного внешнего отчета

Если не требуется вносить изменения в структуру метаданных основной конфигурации, подключим отчет через стандартный механизм дополнительных отчетов и обработок:

  1. Выгрузим отчет из дерева метаданных во внешний файл с расширением .erf.
  2. Откроем модуль объекта выгруженного отчета и опишем стандартную функцию регистрации БСП:

Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
    ПараметрыРегистрации.Версия = "1.0";
    ПараметрыРегистрации.БезопасныйРежим = Истина;
    
    Команда = ПараметрыРегистрации.Команды.Добавить();
    Команда.Идентификатор = "Основной";
    Команда.Представление = "Имя отчета для рассылки";
    Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    
    Возврат ПараметрыРегистрации;

КонецФункции
  1. Перейдем в раздел «НСИ и администрирование» → «Печатные формы, отчеты и обработки» → «Дополнительные отчеты и обработки».
  2. Загрузим наш файл отчета, укажем разделы видимости и запишем элемент.

При таком варианте подключения подсистема БСП автоматически регистрирует внешний отчет в справочнике вариантов отчетов, и он сразу становится доступен для включения в рассылку по расписанию.

← На главную