В процессе работы с 1С:Управление нашей фирмой (УНФ) часто возникает необходимость автоматического уведомления пользователей о важных событиях прямо в момент входа в систему. Например, менеджерам по продажам нужно оперативно получать информацию о контрагентах, которым в ближайшие дни будет запрещена отгрузка из-за дебиторской задолженности или окончания срока действия договора. Рассмотрим подробно, какими способами можно реализовать такой функционал, используя как типовые инструменты, так и возможности программирования.
Проанализируем самый простой и штатный путь — использование механизма напоминаний, который уже встроен в Библиотеку стандартных подсистем (БСП) и доступен в УНФ. Этот механизм позволяет выводить всплывающее окно поверх всех окон в определенное время.
Разберем алгоритм настройки программного создания напоминаний:
НапоминанияПользователя.Важный технический нюанс: чтобы уведомление сработало именно при запуске программы, время напоминания в коде следует устанавливать на прошедшее время (например, на начало текущего дня). Когда пользователь авторизуется в системе, 1С:Предприятие проверит наличие просроченных напоминаний и мгновенно откроет стандартное окно.
Пример кода для создания напоминания:
НовоеНапоминание = РегистрыСведений.НапоминанияПользователя.СоздатьМенеджерЗаписи();
НовоеНапоминание.Пользователь = ОтветственныйМенеджер;
НовоеНапоминание.ВремяСобытия = НачалоДня(ТекущаяДата());
НовоеНапоминание.Содержание = "Внимание! Контрагенту " + КонтрагентНаименование + " будет запрещена отгрузка через 3 дня.";
НовоеНапоминание.СпособУстановкиВремени = Перечисления.СпособыУстановкиВремениНапоминания.В指定Время;
НовоеНапоминание.Записать();
Рассмотрим вариант, не требующий написания сложного кода, который предложили опытные участники обсуждения. Начальная страница (рабочий стол) в УНФ — это первое, что видит пользователь. Мы можем поместить туда специализированный отчет.
Выполним следующие шаги:
ИнформационнаяПанель или непосредственно на начальную страницу пользователя.Этот способ хорош тем, что информация всегда находится перед глазами и не мешает работе, в отличие от модальных окон, которые пользователи привыкают закрывать не читая.
В 1С:УНФ реализован мощный инструмент — Контакт-центр. Вместо простого «уведомления-пустышки» мы можем генерировать реальные задачи для сотрудников. Выясним, почему это эффективнее:
Задача в Контакт-центре имеет статус исполнения. Менеджер не просто закрывает окно, а должен отработать задачу (например, позвонить клиенту) и отметить ее выполнение. Для программного создания задачи можно использовать объект ЗадачаИсполнителя или внутренний документ УНФ Событие.
Рассмотрим преимущества этого подхода:
Если требуется максимально жесткое оповещение, которое нельзя пропустить, проанализируем вариант с использованием расширения конфигурации. Мы можем подключиться к процедуре ПриНачалеРаботыСистемы.
Посмотрим на пример реализации в модуле управляемого приложения расширения:
&После("ПриНачалеРаботыСистемы")
Процедура Расш1_ПриНачалеРаботыСистемы()
// Проверяем, что это не фоновое задание и не веб-сервис
#Если ТонкийКлиент Или ТолстыйКлиентОбычноеПриложение Тогда
ДанныеДляПоказа = ПолучитьКритическуюИнформациюДляТекущегоПользователя();
Если ДанныеДляПоказа.Количество() > 0 Тогда
ПараметрыФормы = Новый Структура("СписокКонтрагентов", ДанныеДляПоказа);
ОткрытьФорму("ОбщаяФорма.Расш1_ФормаОповещения", ПараметрыФормы);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
При использовании этого метода крайне важно добавить в создаваемую форму флажок «Больше не показывать сегодня». В противном случае, если пользователь в течение дня несколько раз перезайдет в программу (например, после обеда или из-за сбоя сети), постоянно всплывающее окно начнет вызывать раздражение и снижать продуктивность.
Современные версии УНФ поддерживают подсистему «Текущие дела». Это те самые счетчики на главной странице, которые показывают количество документов на подписи или заказов в очереди. Мы можем программно добавить туда свой виджет «Контрагенты к блокировке».
Разберем, как это работает:
Если в вашей организации подключена Система взаимодействия, мы можем настроить отправку сообщений от имени автоматического бота. Это выглядит как сообщение в мессенджере внутри 1С.
Проанализируем этот сценарий:
Подведем итог: выбор метода зависит от критичности информации. Для мягкого информирования лучше использовать Текущие дела или Отчеты на начальной странице. Для жесткого контроля — Задачи или программные Напоминания. Использование расширения с методом ПриНачалеРаботыСистемы является наиболее трудозатратным, но позволяет реализовать произвольную логику взаимодействия с пользователем при старте.