Зачем
В автосервисе клиент звонит и спрашивает: «Как там моя машина?». Мастер ищет заказ-наряд по фамилии или номеру, а клиент ждёт. Хотелось, чтобы при звонке сразу открывался последний заказ-наряд этого клиента
Телефония в компании — облачная АТС Новофон, учёт ведётся в 1С:УНФ. Готового решения под эту связку не нашлось, поэтому сделали своё расширение.
Что умеет
- Открывает заказ-наряд по звонку. При входящем звонке расширение находит последний заказ-наряд по номеру звонящего и открывает его. Заказ-наряд — это документ «Заказ покупателя» с видом операции «Заказ-наряд».
- Ищет по контрагенту и по контактным лицам. Номер сверяется с телефоном контрагента и с телефонами его контактных лиц.
- Даёт кнопку «Текущий звонок» в списке заказ-нарядов. Кнопка один раз запрашивает активный звонок у Новофон, без постоянного опроса.
- Вызывает то же действие по F12 из основного окна 1С.
- Сопоставляет пользователей 1С с сотрудниками АТС. Список сотрудников загружается из Новофон одной кнопкой, и каждый видит только свои звонки.
- Может работать без сопоставления. В настройках есть режим «Любой пользователь может открыть текущий звонок». Он подходит, если оператор один или линия общая.
- Поддерживает два способа узнать о звонке:
- Вебхук. Новофон сам отправляет события в опубликованный HTTP-сервис 1С.
- Опрос API. 1С периодически спрашивает у Новофон активные звонки. Это нужно, если базу нельзя опубликовать в интернет.
-
Конфигурацию УНФ расширение не снимает с поддержки. Объекты имеют префикс
Нов_.
Как устроено
| Объект | Назначение |
|---|---|
|
Справочник |
Ключ API, адреса Data API и Call API, токен вебхука, режим опроса, флаг «без привязки» |
|
Регистр |
Связь «пользователь 1С ↔ сотрудник Новофон и внутренний номер» |
|
Регистр |
Входящие события, которые ещё не показаны пользователю |
|
HTTP-сервис |
Адреса |
|
Общая команда «Текущий звонок» |
Кнопка в списке заказ-нарядов |
|
Общая команда «Текущий звонок (F12)» |
Команда с горячей клавишей |
|
Обработка |
Форма настроек и сопоставления пользователей |
Используются два API Новофон:
- Data API, метод
get.employees— загрузка списка сотрудников АТС; - Call API, метод
list.calls— список активных звонков. Адрес по умолчанию:https://callapi-jsonrpc.novofon.ru/v4.0.
Поиск заказ-наряда — один запрос. Он берёт последний непомеченный на удаление заказ-наряд, у которого номер нашёлся в поле НомерТелефонаДляПоиска контрагента или его контактных лиц. Номер перед поиском приводится к виду из одних цифр.
Настройка
- Загрузите расширение и примите обновление конфигурации базы.
- В личном кабинете Новофон возьмите постоянный ключ API: «Пользователи АТС → Администратор → API».
- Откройте раздел Новофон → Настройки Новофон, вставьте ключ и нажмите «Проверить подключение».
- Нажмите «Загрузить сотрудников» и сопоставьте их с пользователями 1С. Если сопоставление не нужно, включите «Любой пользователь может открыть текущий звонок».
- Выберите способ получения звонков:
- вебхук: опубликуйте базу и укажите в Новофон адрес
https://<сервер>/<база>/hs/novofon/event?token=<токен>; - опрос: включите «Опрашивать активные звонки» и задайте интервал.
- вебхук: опубликуйте базу и укажите в Новофон адрес
- Нажмите Записать.

Про лимиты API
Метод list.calls тратит лимит Call API. Типичные значения — 15 запросов в минуту и 500 в сутки. Точные остатки видны в ответе, в полях day_limit и day_remaining.
- Опрос раз в 60 секунд на одном рабочем месте даёт около 480 запросов за 8 часов. Это в лимит укладывается.
- За 9 часов выходит 540 запросов, это уже чуть больше 500.
Поэтому для постоянной работы лучше вебхук. Если публикации нет, отключите опрос и пользуйтесь кнопкой или F12: запрос уходит только по нажатию.
Проверено на следующих конфигурациях и релизах:
- Управление нашей фирмой, редакция 3.0, релизы 3.0.14.143
Вступайте в нашу телеграмм-группу Инфостарт