Почему в рассылке отчетов 1С не видны параметры и отборы и как это исправить?

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

Механизм Рассылки отчетов в типовых конфигурациях 1С (на базе БСП) — это мощный инструмент для автоматизации отчетности. Однако пользователи и разработчики часто сталкиваются с ситуацией, когда в самом отчете нужные поля (например, «Период» или «Физическое лицо») присутствуют, а при попытке настроить рассылку эти параметры магическим образом исчезают из списка доступных. Рассмотрим, почему это происходит, и разберем пошагово, как заставить систему видеть все необходимые настройки.

Разбираем причину: почему поля пропадают?

Проанализируем ситуацию: механизм рассылки отчетов спроектирован таким образом, что он взаимодействует не со всей Схемой компоновки данных (СКД) напрямую, а только с теми элементами, которые вынесены в Пользовательские настройки. Если параметр или отбор определен в схеме, но не отмечен как пользовательский, он будет доступен программисту в конфигураторе или опытному пользователю через «Изменить вариант», но «Рассылка отчетов» его проигнорирует.

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

Решение №1: Настройка пользовательских полей в СКД

Это основной способ решения проблемы, который помогает в 99% случаев. Рассмотрим процесс настройки через конфигуратор (или через редактирование внешней схемы отчета):

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

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

Решение №2: Массовая персонализация через тег [Получатель]

Часто задача стоит не просто отправить отчет, а отправить каждому сотруднику только его данные. Для этого используется механизм подстановки. В высоконагруженных системах для этого важна оптимизация персонализированных рассылок — для этого подойдёт модуль массовой рассылки отчетов и расчетных листков. Рассмотрим, как это настроить правильно:

В настройках рассылки, на вкладке «Отборы», мы можем указать для поля «Физическое лицо» (или «Сотрудник») специальное значение [Получатель]. Посмотрим, как это работает программно: при запуске регламентного задания система перебирает список получателей, берет каждого конкретного пользователя или физлицо и подставляет его в этот отбор перед формированием отчета.

Важные требования для работы тега:

Решение №3: Обновление метаданных и очистка кэша

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

  1. Создадим новую рассылку «с нуля». Иногда старая рассылка хранит «снимок» структуры отчета, который не обновляется автоматически при изменении самого отчета.
  2. В окне выбора отчета выберем другой вариант (например, если в базе установлен Сводный отчет, переключимся на него), а затем вернемся к нужному. Это заставит систему перечитать список доступных настроек.
  3. Проверим идентификаторы: если в схеме компоновки данных идентификатор пользовательской настройки пуст, система может некорректно обращаться к полю. Убедимся, что ИдентификаторПользовательскойНастройки заполнен уникальным значением.

Автоматизация списка получателей

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

Вариант А: Использование групп пользователей. Вместо указания конкретных лиц, добавьте в получатели Группу пользователей. Это стандартный функционал. При добавлении нового сотрудника в группу в справочнике «Пользователи», он автоматически станет участником рассылки при следующем запуске задания.

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


// Пример логики для программного перебора (условный код)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Справочник.ФизическиеЛица ГДЕ Работает = ИСТИНА";
Результат = Запрос.Выполнить().Выгрузить();

Для Каждого Строка Из Результат Цикл
    // Добавление в коллекцию получателей рассылки
    НовыйПолучатель = РассылкаОбъект.Получатели.Добавить();
    НовыйПолучатель.Получатель = Строка.Ссылка;
КонецЦикла;

Рекомендации по производительности

Когда мы настраиваем рассылку по каждому сотруднику отдельно через [Получатель], важно понимать: сервер 1С будет формировать отчет ровно столько раз, сколько у вас получателей. Если их 500 человек, отчет будет сформирован 500 раз.

Проанализируем способы оптимизации:

  1. Флаг «Отправлять только если отчет не пустой»: Обязательно установите эту галочку в настройках рассылки. Это избавит сервер от отправки пустых писем, а сотрудников — от лишнего спама, если данных по ним за текущий период нет.
  2. Формат вложений: PDF или XLSX — самые легкие форматы. Избегайте HTML в теле письма для очень больших отчетов, так как это может замедлить работу почтового сервера.
  3. Регламентное задание: Убедитесь, что рассылка выполняется в часы минимальной нагрузки на сервер (например, ночью), так как массовая генерация отчетов потребляет значительные ресурсы процессора и оперативной памяти.

Таким образом, основной секрет видимости полей в рассылке — это их правильное позиционирование в Пользовательских настройках СКД. Сочетая это с тегом [Получатель], мы получаем гибкий и мощный инструмент индивидуального информирования сотрудников.

← На главную