Как реализовать открытие формы в 1С при входящем звонке через регламентное задание?

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

Интеграция 1С с внешними системами, такими как IP-АТС Asterisk, — популярная задача при построении CRM-систем. Основной вопрос разработчика заключается в том, как «достучаться» до клиентского сеанса с сервера, когда регламентное задание обнаруживает событие (входящий звонок). Рассмотрим детально доступные стратегии решения этой задачи.

Реализация через типовой механизм напоминаний

Если вы используете типовую конфигурацию (УТ, КА, ERP), самым простым и надежным способом будет использование подсистемы напоминаний. Этот метод не требует написания сложного обмена между сервером и клиентом, так как механизм Системы взаимодействия или регистра НапоминанияПользователя уже встроен в платформу.

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

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

Использование обработчика ожидания

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

Рассмотрим пример логики:


// В модуле формы клиента подключаем обработчик
ПодключитьОбработчикОжидания("ПроверитьНаличиеЗвонков", 5);

// Процедура проверки событий
Процедура ПроверитьНаличиеЗвонков()
    Результат = СерверныйВызов.ПолучитьАктивныеЗвонки();
    Если Результат.Количество() > 0 Тогда
        ОткрытьФорму("Обработка.КарточкаЗвонка.Форма", ПараметрыОткрытия);
    КонецЕсли;
КонецПроцедуры

Важно помнить, что частота опроса (интервал) не должна быть слишком маленькой, чтобы не перегружать сервер 1С лишними запросами. Оптимальным считается интервал в 3–5 секунд.

Современный событийный подход: Система взаимодействия и ВК

Для мгновенной реакции, которая требуется в бизнес-процессах CRM, лучше использовать событийную модель. Если Обработчик ожидания — это пассивный опрос, то Система взаимодействия или внешняя компонента позволяют реализовать push-уведомления.

При использовании внешней компоненты (ВК), работающей с AMI (Asterisk Manager Interface), взаимодействие строится следующим образом:

Технические нюансы интеграции с Asterisk

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

Поиск контрагента: При входящем звонке ваш API должен передать номер телефона в 1С. Используйте метод НайтиПоРеквизиту для быстрого поиска партнера по номеру телефона в справочнике Контрагенты. Это позволит вывести карточку клиента сразу после открытия окна.

Обработка занятости: Обязательно предусмотрите логику проверки текущего статуса пользователя. Если менеджер уже разговаривает, не следует открывать второе окно, чтобы не прерывать его работу. Можно использовать переменную-флаг или проверку на наличие открытых окон обработки звонка.

Безопасность и производительность:

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

← На главную