Как отключить автоматическую рассылку уведомлений при сохранении варианта отчета в 1С

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

В современных релизах конфигураций на платформе 1С:Предприятие 8.3, таких как 1С:Документооборот 2.1 и 1С:ERP 2.5, пользователи часто сталкиваются с неожиданным поведением системы. При сохранении нового варианта отчета или изменении существующего, если установлен доступ «Для всех пользователей», программа автоматически рассылает уведомление с текстом «Предоставлен отчет» и ссылкой на него всем активным участникам системы взаимодействия (чата). В крупных компаниях это приводит к информационному шуму и недовольству сотрудников.

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

Выясним причину возникновения уведомлений

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

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

Решение 1: Использование штатной настройки в интерфейсе

Рассмотрим наиболее простой и предпочтительный вариант решения задачи — через пользовательский интерфейс. В версиях 1С:Документооборот начиная с 2.1.29 и в актуальных релизах 1С:ERP, разработчики добавили специальный флажок для управления этим поведением.

Выполним следующие шаги для отключения оповещений:

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

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

Решение 2: Программное отключение через расширение конфигурации

Проанализируем ситуацию, когда обновиться нет возможности, а уведомления мешают работе. В этом случае мы можем прибегнуть к доработке системы. Чтобы не снимать конфигурацию с поддержки, создадим расширение.

Разберем по шагам, где именно в коде происходит формирование сообщения. Поиск в конфигураторе по строковому литералу "Предоставлен отчет" приведет нас к общему модулю, отвечающему за варианты отчетов (например, ВариантыОтчетов или ВариантыОтчетовДокументооборот).

Основная задача — перехватить процедуру записи или специализированный метод отправки сообщения. Рассмотрим пример кода, который можно использовать в расширении для подавления отправки:


&После("ЗаписатьВариантВСистемеВзаимодействия")
Процедура Расш1_ЗаписатьВариантВСистемеВзаимодействия(ВариантОтчета, ПараметрыЗаписи)
    // Данный метод в БСП отвечает за создание обсуждения.
    // Если мы хотим полностью исключить отправку сообщений, 
    // логику внутри этого метода можно нейтрализовать или 
    // добавить условие по конкретному пользователю/отчету.
КонецПроцедуры

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


Если ЭтоНовыйВариант И ДоступенВсем Тогда
    ТекстСообщения = НСтр("ru = 'Предоставлен отчет'");
    Сообщение = СистемаВзаимодействия.СоздатьСообщение(ИдентификаторОбсуждения);
    Сообщение.Текст = ТекстСообщения + ": " + ВариантОтчета.Наименование;
    Сообщение.Записать();
КонецЕсли;

Для решения проблемы «одной строчкой», как упоминалось в обсуждении, достаточно закомментировать вызов Сообщение.Записать() или обернуть весь блок в дополнительную проверку константы или функциональной опции.

Решение 3: Настройка прав доступа и видимости

Посмотрим на ситуацию под другим углом. Система взаимодействия отправляет уведомление только тем, кому «Предоставлен отчет». Если при сохранении варианта указывать не «Доступен всем пользователям», а ограничивать круг лиц конкретной рабочей группой или списком пользователей, то массовой спам-рассылки не произойдет.

Рассмотрим алгоритм действий при сохранении отчета:

  1. В форме сохранения варианта выберем переключатель «Указанным пользователям».
  2. Добавим только тех сотрудников, которым действительно необходим этот отчет.
  3. В этом случае уведомление придет только выбранным коллегам, что является корректным поведением системы взаимодействия.

Решение 4: Полное отключение Системы взаимодействия

Если функционал чатов, видеозвонков и обсуждений объектов в вашей организации не используется, можно рассмотреть радикальный метод — полное отключение системы взаимодействия. Это гарантированно прекратит любые автоматические рассылки.

Проанализируем, как это сделать:

  1. Зайдем в Администрирование — Общие настройки.
  2. Найдем раздел Система взаимодействия.
  3. Нажмем кнопку Отключить (или снимем флажок использования).

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

Резюме

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

← На главную