Как организовать оповещение пользователей при запуске программы 1С:УНФ

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

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

Способ 1. Использование подсистемы «Напоминания пользователя»

Проанализируем самый простой и штатный путь — использование механизма напоминаний, который уже встроен в Библиотеку стандартных подсистем (БСП) и доступен в УНФ. Этот механизм позволяет выводить всплывающее окно поверх всех окон в определенное время.

Разберем алгоритм настройки программного создания напоминаний:

  1. Создадим регламентное задание, которое будет запускаться ежедневно (например, в 5:00 утра).
  2. В процедуре задания опишем запрос, который находит «проблемных» контрагентов по заданным критериям.
  3. Для каждого найденного случая создадим запись в регистре сведений НапоминанияПользователя.

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

Пример кода для создания напоминания:


НовоеНапоминание = РегистрыСведений.НапоминанияПользователя.СоздатьМенеджерЗаписи();
НовоеНапоминание.Пользователь = ОтветственныйМенеджер;
НовоеНапоминание.ВремяСобытия = НачалоДня(ТекущаяДата());
НовоеНапоминание.Содержание = "Внимание! Контрагенту " + КонтрагентНаименование + " будет запрещена отгрузка через 3 дня.";
НовоеНапоминание.СпособУстановкиВремени = Перечисления.СпособыУстановкиВремениНапоминания.В指定Время;
НовоеНапоминание.Записать();

Способ 2. Вывод отчетов на начальную страницу

Рассмотрим вариант, не требующий написания сложного кода, который предложили опытные участники обсуждения. Начальная страница (рабочий стол) в УНФ — это первое, что видит пользователь. Мы можем поместить туда специализированный отчет.

Выполним следующие шаги:

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

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

Способ 3. Задачи и события в Контакт-центре

В 1С:УНФ реализован мощный инструмент — Контакт-центр. Вместо простого «уведомления-пустышки» мы можем генерировать реальные задачи для сотрудников. Выясним, почему это эффективнее:

Задача в Контакт-центре имеет статус исполнения. Менеджер не просто закрывает окно, а должен отработать задачу (например, позвонить клиенту) и отметить ее выполнение. Для программного создания задачи можно использовать объект ЗадачаИсполнителя или внутренний документ УНФ Событие.

Рассмотрим преимущества этого подхода:

  1. Контроль руководства: Начальник отдела продаж может видеть список невыполненных вовремя задач по уведомлению клиентов.
  2. История: В карточке контрагента сохраняется след о том, что менеджер был предупрежден и должен был предпринять действия.

Способ 4. Реализация через расширение (ПриНачалеРаботыСистемы)

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

Посмотрим на пример реализации в модуле управляемого приложения расширения:


&После("ПриНачалеРаботыСистемы")
Процедура Расш1_ПриНачалеРаботыСистемы()
    // Проверяем, что это не фоновое задание и не веб-сервис
    #Если ТонкийКлиент Или ТолстыйКлиентОбычноеПриложение Тогда
        ДанныеДляПоказа = ПолучитьКритическуюИнформациюДляТекущегоПользователя();
        Если ДанныеДляПоказа.Количество() > 0 Тогда
            ПараметрыФормы = Новый Структура("СписокКонтрагентов", ДанныеДляПоказа);
            ОткрытьФорму("ОбщаяФорма.Расш1_ФормаОповещения", ПараметрыФормы);
        КонецЕсли;
    #КонецЕсли
КонецПроцедуры

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

Способ 5. Механизм «Текущие дела»

Современные версии УНФ поддерживают подсистему «Текущие дела». Это те самые счетчики на главной странице, которые показывают количество документов на подписи или заказов в очереди. Мы можем программно добавить туда свой виджет «Контрагенты к блокировке».

Разберем, как это работает:

  1. В коде системы (или через расширение) описывается алгоритм подсчета количества объектов, требующих внимания.
  2. Система БСП сама обновляет эти данные с определенной периодичностью.
  3. При нажатии на число в панели текущих дел открывается заранее настроенный список или отчет.

Способ 6. Система взаимодействия (Обсуждения)

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

Проанализируем этот сценарий:

  1. Робот анализирует базу данных по расписанию.
  2. Если найден контрагент, требующий внимания, бот отправляет сообщение в личный чат ответственному менеджеру.
  3. У пользователя в правом нижнем углу экрана всплывает стандартное push-уведомление 1С, которое доступно даже если основное окно программы свернуто.

Подведем итог: выбор метода зависит от критичности информации. Для мягкого информирования лучше использовать Текущие дела или Отчеты на начальной странице. Для жесткого контроля — Задачи или программные Напоминания. Использование расширения с методом ПриНачалеРаботыСистемы является наиболее трудозатратным, но позволяет реализовать произвольную логику взаимодействия с пользователем при старте.

← На главную