Добры день! Сегодня я расскажу о своей последней программе, адаптере для взаимодействия системы IP телефонии Oktell  и 1С. Назвал я ее "Адаптер 1C".

 

Скриншот окна программы

Рис. 1. Главное окно программы

Возможности

1. Регистрация звонков в базе 1С.

2. Выполнение запросов к базе 1С и получение данных в формате XML.

Схема взаимодействия

1. Oktell посредством плагина "Адаптер взаимодействия с 1С" посылает запрос на адаптер Adapter 1C.

2. Adapter 1C выполняет принятый запрос к базе 1С и возвращает результат плагину.

С чего начать?

1. Подготовить 1С для работы с плагином.

1.1. Создайте новый документ ДокументВзаимодействия (в примере, для регистрации звонков) со следующими регистрами:

  • Дата - (тип ДатаИВремя) точное время регистрации звонка
  • Телефон - (тип Строка) номера телефона абонента
  • ФИО- (тип Строка) ФИО абонента
  • Тип - (тип Строка) тип обращения (примеру консультация/обращение/заказ и т.д.)
  • Комментарии - (тип Строка) комментарии по звонку
  • Результат - (тип Строка) для регистрации результата по звонку 

1.2. Для предоставления доступа адаптеру Adapter 1C к базе 1С, желательно зарегистрировать отдельную учетную запись и назначить необходимые права. Примеру, я дал права на просмотр и создание документов ДокументВзаимодействия.

1.3. В модуле объекта документа ДокументВзаимодействия пропишем экспортируемую процедуру AdapterImportData. Данная процедура будет принимать данные о звонке Oktell и выполнять необходимые действия (например, создание документа ДокументВзаимодействия)

//Код процедуры модуля 
Процедура AdapterImportData (ВходныеДанные) экспорт 
    AdapterModule.AdapterWrite(ВходныеДанные);
КонецПроцедуры

1.4. Создадим общий модуль AdapterModule и пропишем в нем процедуру записи AdapterWrite. (Для общего модуля укажите следующие свойства: Сервер, Вызов сервера)

//Код общей экспортной процедуры регистрации записи
Процедура AdapterWrite (ВходныеДанные) экспорт 
    стрТвоя = СтрЗаменить(ВходныеДанные,";", Символы.ПС); 
    ТекНомер = СтрПолучитьСтроку(стрТвоя, 1);
    ТекФИО = СтрПолучитьСтроку(стрТвоя, 2);
    ТекТип = СтрПолучитьСтроку(стрТвоя, 3);
    ТекКомментарии = СтрПолучитьСтроку(стрТвоя, 4);
    doc = Документы.ДокументВзаимодействия.СоздатьДокумент();
    doc.Телефон = ТекНомер;
    doc.Дата=ТекущаяДата();
    doc.ФИО = ТекФИО; 
    doc.Тип = ТекТип;
    doc.Комментарии = ТекКомментарии;
    doc.Записать(); 
КонецПроцедуры

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

2. Подключить к серверу Oktell плагин "Адаптер взаимодействия с 1С"

3. Запустить адаптер Adapter 1C. *Важно! На компьютере, где будет запущен адаптер, необходимо наличие установленного клиентского приложения 1С и доступ к базе.

3.1. Во вкладке Подключение (см. рис. 1) заполнить необходимые поля:

  • Путь к базе - в случае с файловой базой, то необходимо указать полный путь к ней. Если же у вас сервере 1С, то указать адрес в следующем формате:
    <IP-adress>\<имя инф. базы> (пример: 192.168.0.1\torg)
  • Имя и пароль пользователя  - авторизационные данные для подключения к базе (пункт 1.2.). 
  • Выбрать тип базы Файловая или Серверная
  • Локальный IP-адрес машины с которого адаптер будет принимать запросы от плагина Oktell.

3.2. Перед тем, как подключиться к базе, рекомендую включить логирование во вкладке Логирование (см. рис. 2.)

Скриншот экрана Логирование

Рис. 2. Скриншот вкладки Логирование.

3.3. Нажмите на кнопку Подключиться и дождитесь подключения. (кнопка должна стать недоступной)

3.4. Нажмите кнопку Запустить службу. Теперь сервер готов принимать запросы.

4. Перейдем к настройке Oktell. После того, как мы подключили внешний модуль OktellTo1C, попробуем им воспользоваться. 

4.1. Создадим тестовый диалоговый сценарий обработки входящих звонков (общую схему сценария см. рис. 3).

Общий вид сценария обработки вх. звонка

Рис. 3. Общий вид тестового сценария обработки входящих звонков

4.2. Инициализация начальных параметров. Создадим и запишем в две переменные адрес адаптера (пункт 3.1.) и номер абонента. 

Настройки инициализации

Рис. 4. Инициализация данных.

4.3. Сформируем запрос на получение имени абонента по его номеру из документа ДокументВзаимодействия (это неправильный способ получения информации о пользователе. я просто привожу простой пример работы плагина)

Формирование запроса

 

Рис. 5. Запрос на выборку данных из базы 1С по номеру (в последней версии необходимо использовать аргументы в формате arg1v)

 

4.4. Пояснение по запросу: возвращаемые данные должны носить имена arg1v, arg2v и т.д. Запрос вернет вам XML строку с результатами выборки. Рекомендую тестировать запрос непосредственно в адаптере во вкладке Тест (см. рис. 6.)

Тестирование запроса

Рис. 6. Тестирование запроса

4.5. Настраиваем компонент Плагин для отправки запроса.

Настройка плагинаРис. 7.1. Настройка плагина для получения данных из 1С 

Настройка плагина 2

Рис.7.2. Назначение входных и выходных параметров плагина

4.6. Плагин вернет результаты в закодированном виде. Декодируем.

Декодирование результат

Рис. 8. Декодирование результата выполнения плагина

4.7. Парсим данные из XML-результата. Результаты хранятся в находятся в ветках string, их мы и парсим.

Парсим результат

Рис. 9. Парсим результат.

4.8. Отображаем полученное ФИО в карточке и даем оператору возможность ввести комментарии. (так же, для ясности картины, я вывожу исходную строку в формате XML)

Карточка клиента

Рис. 10. Карточка клиента.

4.9. Формируем запрос на создание документа ДокументВзаимодействия. Запрос имеет следующую структуру (разделитель ";"):

<Номер телефона>;<ФИО>;<Тип>;<Комментарии> (подробнее о назначении каждого поля см. п. 1.1.). На рис. 11, последним значением, я прописываю еще и номер чека (старый скриншот).

Запрос на создание ЖуранлаЗвонков

Рис.11. Запрос на создание документа ДокументВзаимодействия

4.10. Настроим плагин на создание документа с необходимыми данными.

Настройка плагина на создание

Рис. 12. Настройка плагина на создание

5. Теперь все готово! Подключаем сценарий к нашей задаче приема звонков и проверяем. 

14

Рис. 13. Карточка клиента с данными полученными из 1С

Запись в ЖурналеЗвонков

Рис. 14. Успешно зарегистрированный звонок в 1С.

 

Рабочий пример использования

Рис. 14. Рабочий пример работы плагина. При звонке клиента,в последней таблице, оператор видит данные из 1С, а именно, историю покупок клиента.

На этом все!

Скачать можно тут: https://yadi.sk/d/UAYm21rOi7Ehx

Ключ получить можно тут:

gen btn

Всем спасибо за внимание!