Интеграция 1С с внешними системами, такими как IP-АТС Asterisk, — популярная задача при построении CRM-систем. Основной вопрос разработчика заключается в том, как «достучаться» до клиентского сеанса с сервера, когда регламентное задание обнаруживает событие (входящий звонок). Рассмотрим детально доступные стратегии решения этой задачи.
Если вы используете типовую конфигурацию (УТ, КА, ERP), самым простым и надежным способом будет использование подсистемы напоминаний. Этот метод не требует написания сложного обмена между сервером и клиентом, так как механизм Системы взаимодействия или регистра НапоминанияПользователя уже встроен в платформу.
Этот подход идеален для типовых решений, так как он обеспечивает стабильность и не создает лишней нагрузки на сетевые протоколы.
Для нетиповых конфигураций или ситуаций, где типовые механизмы недоступны, применяется классический метод Подключаемого обработчика ожидания. Суть метода заключается в том, что клиентское приложение через заданный интервал времени опрашивает сервер на наличие новых событий.
Рассмотрим пример логики:
// В модуле формы клиента подключаем обработчик
ПодключитьОбработчикОжидания("ПроверитьНаличиеЗвонков", 5);
// Процедура проверки событий
Процедура ПроверитьНаличиеЗвонков()
Результат = СерверныйВызов.ПолучитьАктивныеЗвонки();
Если Результат.Количество() > 0 Тогда
ОткрытьФорму("Обработка.КарточкаЗвонка.Форма", ПараметрыОткрытия);
КонецЕсли;
КонецПроцедуры
Важно помнить, что частота опроса (интервал) не должна быть слишком маленькой, чтобы не перегружать сервер 1С лишними запросами. Оптимальным считается интервал в 3–5 секунд.
Для мгновенной реакции, которая требуется в бизнес-процессах CRM, лучше использовать событийную модель. Если Обработчик ожидания — это пассивный опрос, то Система взаимодействия или внешняя компонента позволяют реализовать push-уведомления.
При использовании внешней компоненты (ВК), работающей с AMI (Asterisk Manager Interface), взаимодействие строится следующим образом:
Интеграция с телефонией — это не только вывод окна, но и качественная обработка данных. Проанализируем ключевые аспекты:
Поиск контрагента: При входящем звонке ваш API должен передать номер телефона в 1С. Используйте метод НайтиПоРеквизиту для быстрого поиска партнера по номеру телефона в справочнике Контрагенты. Это позволит вывести карточку клиента сразу после открытия окна.
Обработка занятости: Обязательно предусмотрите логику проверки текущего статуса пользователя. Если менеджер уже разговаривает, не следует открывать второе окно, чтобы не прерывать его работу. Можно использовать переменную-флаг или проверку на наличие открытых окон обработки звонка.
Безопасность и производительность:
HTTP-сервисы, обязательно внедрите авторизацию по токенам (заголовки запросов) для предотвращения попыток подмены данных о звонках.Применение этих методов позволит создать профессиональное решение для CRM, которое будет работать быстро и стабильно, предоставляя менеджерам всю необходимую информацию о клиенте в момент начала разговора.