В современных релизах конфигураций на платформе 1С:Предприятие 8.3, таких как 1С:Документооборот 2.1 и 1С:ERP 2.5, пользователи часто сталкиваются с неожиданным поведением системы. При сохранении нового варианта отчета или изменении существующего, если установлен доступ «Для всех пользователей», программа автоматически рассылает уведомление с текстом «Предоставлен отчет» и ссылкой на него всем активным участникам системы взаимодействия (чата). В крупных компаниях это приводит к информационному шуму и недовольству сотрудников.
В данной статье мы подробно разберем, почему возникает эта рассылка, как отключить её штатными средствами в интерфейсе и что делать, если ваша версия программы еще не поддерживает нужную настройку.
Прежде всего, проанализируем ситуацию и поймем механику процесса. Данная функция не является программной ошибкой. Это штатный механизм Системы взаимодействия, интегрированный в библиотеку стандартных подсистем (БСП). Логика разработчиков 1С заключается в том, что если аналитик или руководитель создает важный отчет, доступный всем, коллеги должны оперативно узнать о появлении нового инструмента анализа.
Уведомление инициируется в момент записи объекта справочника ВариантыОтчетов. Если в базе настроен сервер взаимодействия (1С:Диалог или локальный сервер), система формирует сообщение и отправляет его в обсуждения пользователям, имеющим права на просмотр данного отчета.
Рассмотрим наиболее простой и предпочтительный вариант решения задачи — через пользовательский интерфейс. В версиях 1С:Документооборот начиная с 2.1.29 и в актуальных релизах 1С:ERP, разработчики добавили специальный флажок для управления этим поведением.
Выполним следующие шаги для отключения оповещений:
Важно помнить: если данный флажок отсутствует, значит, ваша версия конфигурации ниже необходимой, и стоит рассмотреть вопрос обновления или программного вмешательства.
Проанализируем ситуацию, когда обновиться нет возможности, а уведомления мешают работе. В этом случае мы можем прибегнуть к доработке системы. Чтобы не снимать конфигурацию с поддержки, создадим расширение.
Разберем по шагам, где именно в коде происходит формирование сообщения. Поиск в конфигураторе по строковому литералу "Предоставлен отчет" приведет нас к общему модулю, отвечающему за варианты отчетов (например, ВариантыОтчетов или ВариантыОтчетовДокументооборот).
Основная задача — перехватить процедуру записи или специализированный метод отправки сообщения. Рассмотрим пример кода, который можно использовать в расширении для подавления отправки:
&После("ЗаписатьВариантВСистемеВзаимодействия")
Процедура Расш1_ЗаписатьВариантВСистемеВзаимодействия(ВариантОтчета, ПараметрыЗаписи)
// Данный метод в БСП отвечает за создание обсуждения.
// Если мы хотим полностью исключить отправку сообщений,
// логику внутри этого метода можно нейтрализовать или
// добавить условие по конкретному пользователю/отчету.
КонецПроцедуры
Если в вашей версии конфигурации логика зашита непосредственно в модуле менеджера справочника ВариантыОтчетов, то следует найти вызов метода СистемаВзаимодействия.СоздатьСообщение(). Рассмотрим пример типичного блока кода, который генерирует уведомление:
Если ЭтоНовыйВариант И ДоступенВсем Тогда
ТекстСообщения = НСтр("ru = 'Предоставлен отчет'");
Сообщение = СистемаВзаимодействия.СоздатьСообщение(ИдентификаторОбсуждения);
Сообщение.Текст = ТекстСообщения + ": " + ВариантОтчета.Наименование;
Сообщение.Записать();
КонецЕсли;
Для решения проблемы «одной строчкой», как упоминалось в обсуждении, достаточно закомментировать вызов Сообщение.Записать() или обернуть весь блок в дополнительную проверку константы или функциональной опции.
Посмотрим на ситуацию под другим углом. Система взаимодействия отправляет уведомление только тем, кому «Предоставлен отчет». Если при сохранении варианта указывать не «Доступен всем пользователям», а ограничивать круг лиц конкретной рабочей группой или списком пользователей, то массовой спам-рассылки не произойдет.
Рассмотрим алгоритм действий при сохранении отчета:
Если функционал чатов, видеозвонков и обсуждений объектов в вашей организации не используется, можно рассмотреть радикальный метод — полное отключение системы взаимодействия. Это гарантированно прекратит любые автоматические рассылки.
Проанализируем, как это сделать:
Важно: этот шаг удалит возможность общения в 1С для всех пользователей, поэтому используйте его только в крайнем случае.
Мы разобрали несколько способов борьбы с уведомлениями при публикации отчетов. Подведем итоги: наиболее правильный путь — обновление конфигурации до версии, где присутствует флажок Уведомлять в обсуждении. Если же требуется быстрое решение «здесь и сейчас», использование расширения с блокировкой вызова методов СистемаВзаимодействия в модулях БСП будет самым эффективным техническим решением.