Данное практическое руководство демонстрирует процесс встраивания софтфона в конфигурацию не имеющую встроенного блока CRM. Инструкция одинаково подходит для:
Что дает интеграция в сравнении с без интеграционным режимом работы?
Для начала следует разблокировать головной объект конфигурации для внесения изменений.
Порядок действий следующий.
Теперь конфигурация готова к внесению изменений.
Необходимо встроить внешнюю обработку (софтфон) в конфигурации, настроить права доступа и автоматический запуск в фоновом режиме.
Для работы софтфона в фоне и его автоматического запуска внесем изменения в модуль управляемого приложения.
// SP1C / Объявление переменных / Начало Перем сфпФормаТелефон Экспорт; // SP1C / Объявление переменных / Конец
// SP1C / Инициализация софтфона / Начало #Если НЕ ВебКлиент Тогда Если МИКО_Софтфон.МожноИспользовать() Тогда Попытка // Получим форму инциализации софтфона ОткрытьФорму("Обработка.МИКО_СофтФон.Форма", Новый Структура("Интегрирован", Истина)); Исключение // Нет прав на обработку КонецПопытки; КонецЕсли; #КонецЕсли // SP1C / Инициализация софтфона / Конец
// SP1C / Завершение работы софтфона / Начало Если Отказ = Ложь И сфпФормаТелефон <> Неопределено Тогда сфпФормаТелефон.ЗавершитьРаботу(); КонецЕсли; // SP1C / Завершение работы софтфона / Конец
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) Если сфпФормаТелефон <> Неопределено Тогда Если сфпФормаТелефон.Открыта() Тогда сфпФормаТелефон.Активизировать(); Иначе сфпФормаТелефон.Открыть(); КонецЕсли; КонецЕсли; КонецПроцедуры
История совершенных звонков хранится в периодическом регистре сведений. Каждой записи присваивается уникальный идентификатор, по которому ее можно однозначно идентифицировать и связать с документом «Событие».
Создайте новый регистр СофтФон_ИсторияЗвонков. В параметре Периодичность укажите значение В пределах секунды.
Структура регистра показана на рисунке слева.
Настройте ранее созданную роль «МИКО_ИспользованиеСофтфона» для чтения и записи в регистр. Однако, интерактивное редактирование записей следует запретить. Также следует создать форму записи регистра и установить ее свойство «Доступность» в «Ложь». В противном случае пользователи с полными правами смогут изменять записи журнала звонков.
Для автоматизации набора номера телефона добавим кнопку «Позвонить» в область команд форм некоторых справочников и документов.
Порядок действий следующий.
Вы может указать и другие типы объектов, в которых будет отображена команда «Позвонить». Основным критерием для выбора таких объектов является наличие табличной части «КонтактнаяИнформация», если это справочник, или реквизита «Контрагент», если это документ. В ином случае может потребоваться изменение текста модуля команды.
При желании можно добавить картинку на кнопку команды, предварительно разместив ее в библиотеке картинок.
Для ранее созданной роли «МИКО_ИспользованиеСофтфона» добавьте права на доступ к команде «Позвонить».
Обновите конфигурацию базы данных и запустите программу в режиме «Предприятие». Результат работы показан на рисунке ниже.
В формах некоторых справочников (например, «Контрагент») присутствует закладка «Контактная информация». Для полей адреса и электронной почты уже разработан механизм добавляющий кнопку с соответствующим действием. Добавим для поля телефон аналогичную кнопку с действием «Позвонить».
Порядок действий следующий.
Функция Действие(Форма, Тип, ИмяРеквизита, ГруппаДействий, КоличествоАдресов, ЕстьКомментарий = Ложь) Если (Тип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница // SP1C / Добавим новый тип контактной информации / Начало Или Тип = Перечисления.ТипыКонтактнойИнформации.Телефон // SP1C / Добавим новый тип контактной информации / Конец Или Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты) Или (Тип = Перечисления.ТипыКонтактнойИнформации.Адрес И КоличествоАдресов > 1) Тогда // Есть действие ... Если Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда ... ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница Тогда ... ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда ... // SP1C / Обработаем новый тип контактной информации / Начало ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда Элемент.Заголовок = НСтр("ru='Позвонить'"); Команда.Подсказка = НСтр("ru='Позвонить'"); Команда.Картинка = БиблиотекаКартинок.МИКО_Телефон; // SP1C / Обработаем новый тип контактной информации / Конец КонецЕсли; ... Иначе ... КонецЕсли; Возврат Элемент; КонецФункции
Функция ПодключаемаяКоманда(Форма, Знач ИмяКоманды) Экспорт ... Если КомандаКонтекстногоМеню Тогда ... Иначе Если ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда ... ИначеЕсли ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда ... ИначеЕсли ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.ВебСтраница") Тогда ... // SP1C / Обработаем событие нажатия на копку позвонить / Начало ИначеЕсли ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон") Тогда ПозвонитьПоТелефону(Форма, ИмяРеквизита); // SP1C / Обработаем событие нажатия на копку позвонить / Конец КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции
Обновите конфигурацию базы данных и запустите программу в режиме «Предприятие». Результат работы показан на рисунке ниже.
В формах некоторых справочников (например, «Контрагент») и документов (например, «Заказ покупателя») присутствует панель отображающая информацию с контактами. Для поля электронной почты присутствует кнопка с соответствующим действием. Добавим для поля телефон аналогичную кнопку с действием «Позвонить».
Порядок действий следующий.
Процедура ПриСозданииНаСервере(ЭтаФорма) Экспорт ... // SP1C / Добавим кнопку в панель контактной информации / Начало МИКО_Софтфон.ДобавитьКнопкиНаПанельКИ(ЭтаФорма); // SP1C / Добавим кнопку в панель контактной информации / Конец КонецПроцедуры
Процедура НажатиеНаИнформационнуюСсылку(Форма, Элемент) Экспорт // SP1C / Выполним набор номера при нажатии на кнопку в панели контактной информации / Начало Если НЕ сфпФормаТелефон = Неопределено И Найти(Элемент.Имя, "Позвонить") Тогда ИмяЭлементаПолеТелефон = СтрЗаменить(Элемент.Имя, "Позвонить", ""); ПолеТелефон = Форма.Элементы[ИмяЭлементаПолеТелефон]; НомерТелефона = ПолеТелефон.ТекстРедактирования; сфпФормаТелефон.НабратьНомерКИ(, НомерТелефона); Возврат; КонецЕсли; // SP1C / Выполним набор номера при нажатии на кнопку в панели контактной информации / Конец Гиперссылка = Форма.ИнформационныеСсылки.НайтиПоЗначению(Элемент.Имя); ... КонецПроцедуры
Обновите конфигурацию базы данных и запустите программу в режиме «Предприятие». Результат работы показан на рисунке ниже.