Это старая версия документа!
Самостоятельное встраивание телефонии должно производиться сотрудником строго по данной инструкции во избежании проблем с программой.
Для интеграции обработки телефонии «МИКО_ПанельТелефонииДля1С» в типовую конфигурацию 1С: CRM необходимо выполнить ряд простых действий, описанных ниже.
Для начала следует разблокировать корневой объект конфигурации для внесения изменений.
Порядок действий следующий:
Теперь конфигурация готова к внесению изменений.
Второе – необходимо добавить обработку «МИКО_ПанельТелефонииДля1С».
В дереве конфигурации находим папку «Обработки» и правой кнопкой мыши открываем контекстное меню, выбираем «Вставить внешнюю обработку,ответ…».
Выбираем обработку «МИКО_ПанельТелефонииДля1С.epf» в каталоге дистрибутива.
Третье,что необходимо сделать - внести изменения в «Модуль обычного приложения». В дереве конфигурации находим слово «CRM», правой кнопкой мыши открываем контекстное меню, выбираем «Открыть модуль обычного приложения».
Находим «Процедура ПриНачалеРаботыСистемы()» и заменяем данный код:
ИначеЕсли ТекАТС = Перечисления.CRM_ИспользуемыйСофтФон.СофтФонЛайт Тогда // {{doc:panel1ccrm:{ СофтФон, Лайт }}} НАЧАЛО Код встраивания в произвольную конфигурацию Попытка РарусСофтФонЛайт = Обработки.CRM_СофтФон.Создать(); РарусСофтФонЛайт.ПодключитьСофтФон();
Следующим фрагментом:
ИначеЕсли ТекАТС = Перечисления.CRM_ИспользуемыйСофтФон.СофтФонЛайт Тогда // {{doc:panel1ccrm:{ СофтФон, Лайт }}} НАЧАЛО Код встраивания в произвольную конфигурацию Попытка // PT1C / Панель телефонии Asterisk / НАЧАЛО // РарусСофтФонЛайт = Обработки.CRM_СофтФон.Создать(); РарусСофтФонЛайт = Обработки.МИКО_ПанельТелефонииДля1С.Создать(); // PT1C / Панель телефонии Asterisk / КОНЕЦ РарусСофтФонЛайт.ПодключитьСофтФон();
Далее находим «Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)» в конце процедуры, перед надписью «КонецПроцедуры» вставляем следующий код:
// Процедура выполняет обработку внешнего события // Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) // *** *** *** // // PT1C / Панель телефонии Asterisk / Начало Если Источник = "MikoAjamEvent" ИЛИ Источник = "MIKO_SoftPhone" ИЛИ Источник = "MIKO_InFormAutor" Тогда РарусСофтФонЛайт.ОбработкаВнешнегоСобытияАстериск(Источник, Событие, Данные); КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец КонецПроцедуры
Переходим к работе с «Процедура ПередЗавершениемРаботыСистемы(Отказ)». Перед «КонецПроцедуры» вставляем следующий код:
// Процедура перед завершением работы системы // Процедура ПередЗавершениемРаботыСистемы(Отказ) // *** *** *** // {{{ CRM Коммуникатор }}} КОНЕЦ // PT1C / Панель телефонии Asterisk / Начало Если Не Отказ И НЕ РарусСофтФонЛайт = Неопределено Тогда РарусСофтФонЛайт.ОтключитьВК(); КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец КонецПроцедуры
В модуле набора записей скорректировать процедуру:
Процедура ПередЗаписью(Отказ, Замещение) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; Для каждого Запись Из ЭтотОбъект Цикл Если НЕ ЗначениеЗаполнено(Запись.Объект) Тогда Отказ = Истина; СтрокаОтказа = "Не заполнен объект."; Продолжить; КонецЕсли; Если Запись.Объект.ЭтоГруппа Тогда Отказ = Истина; СтрокаОтказа = "Нельзя использовать в качестве объекта контактной информации - группу."; Прервать; КонецЕсли; //********************************************************************** // PT1C / начало редактирования // производим дозаполнение контактной информации # Если Клиент Тогда Если Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда ПредставлениеНомера = Запись.Поле1 + Запись.Поле2 + Запись.Поле3; Если ЗначениеЗаполнено(Запись.Поле4) И НЕ ЗначениеЗаполнено(ПредставлениеНомера) Тогда Запись.CRM_ПолеХраненияНомера = CRMПреобразоватьНомерДляСохранения(Запись.Поле4, глКоличествоХранимыхЦифрТелефона); Иначе Запись.CRM_ПолеХраненияНомера = CRMПреобразоватьНомерДляСохранения (ПредставлениеНомера, глКоличествоХранимыхЦифрТелефона); КонецЕсли; КонецЕсли; // Для возможности сохранения Скайп номера, обойдем лишние проверки при изменении данных Если Найти(Запись.Вид,"Skype")>0 Тогда Запись.CRM_НомерТелефона = Запись.Представление; КонецЕсли; # КонецЕсли // PT1C // окончание редактирования //********************************************************************** КонецЦикла; Если Отказ Тогда Сообщить(СтрокаОтказа); КонецЕсли; КонецПроцедуры
Для возможности прослушивать запись разговора, прикрепленного к документу, необходимо модифицировать форму документа «CRM_ФормаДокумента»:
Процедура ДействияФормыCLON(Кнопка) // PT1C / Панель телефонии Asterisk / Начало Если НЕ РарусСофтФонЛайт = Неопределено И ТипЗнч(РарусСофтФонЛайт) = Тип("ОбработкаОбъект.МИКО_ПанельТелефонииДля1С") Тогда РарусСофтФонЛайт.ПрослушатьЗаписьРазговора(CRM_GUIDЗвонка); Возврат; КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец // *** // *** // *** // КонецПроцедуры
Дополнительно необходимо внести изменения в обработку установки видимости / доступности элементов формы
Процедура ВидимостьЭлементовФормы() // *** пропущена часть исходного теста *** // // {{{ CLON Система записи телефонных разговоров }}} НАЧАЛО // PT1C / Панель телефонии Asterisk / Начало //ЭлементыФормы.кнПрослушатьЗаписьТелРазговора.Видимость = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "CLONПодключена"); //ЭлементыФормы.кнПрослушатьЗаписьТелРазговора.Доступность = CRMПолучитьЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.CLONВозможноПрослушиваниеФайловЗаписи, Ложь, глЗначениеПеременной("глТекущийПользователь")); ЭлементыФормы.кнПрослушатьЗаписьТелРазговора.Видимость = Истина; ЭлементыФормы.кнПрослушатьЗаписьТелРазговора.Доступность = CRMПолучитьЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.CLONВозможноПрослушиваниеФайловЗаписи, Ложь, глЗначениеПеременной("глТекущийПользователь")); // PT1C / Панель телефонии Asterisk / Конец // {{{ CLON Система записи телефонных разговоров }}} КОНЕЦ КонецПроцедуры
В дальнейшем, если пользователю разрешено прослушивать записи следует назначить ему дополнительную настройку:
Для возможности отправить факсов сформированную печатную форму в текущий разговор, необходимо модифицировать общую печатную форму CRM_ПечатнаяФормаДокументов.
Процедура ПриОткрытии() // PT1C / Панель телефонии Asterisk / Начало PT1C_ОправитьФаксом = ЭлементыФормы.ДействияФормы.Кнопки.Вставить(7,"PT1C_ОправитьФаксом",ТипКнопкиКоманднойПанели.Действие, "Отправить факсом текущий документ",Новый Действие("PT1C_ДействияФормы_ОправитьФаксом")); PT1C_ОправитьФаксом.Имя = "PT1C_ОправитьФаксом"; PT1C_ОправитьФаксом.Подсказка = "Отправляет текущий документ факсом"; PT1C_ОправитьФаксом.Доступность = Истина; PT1C_ОправитьФаксом.ИзменяетДанные = Ложь; PT1C_ОправитьФаксом.Пояснение = "Отправить в ттекущий разговор факсимильное сообщение"; PT1C_ОправитьФаксом.Картинка = БиблиотекаКартинок.CRM_ФаксКоммуникатор; // PT1C / Панель телефонии Asterisk / Конец // Сформеруем заголовок формы Конецпроцедуры //обработчик нажатия на кнопку отправки табличного документа в текущий разговор Процедура PT1C_ДействияФормы_ОправитьФаксом(Кнопка) Если НЕ РарусСофтФонЛайт = Неопределено И ТипЗнч(РарусСофтФонЛайт) = Тип("ОбработкаОбъект.МИКО_ПанельТелефонииДля1С") Тогда РарусСофтФонЛайт.ОтправитьФаксомТабДок(ЭлементыФормы.ТабличныйДокумент); КонецЕсли; КонецПроцедуры
Завершаем встраивание телефонии МИКО в 1С:CRM созданием роли «МИКО_ИспользованиеСофтфона». Это необходимо сделать для настройки прав доступа пользователей, которые будут пользоваться телефонией.
В дереве конфигурации находим папку «Общее» , далее «Роли» и по кнопке добавить создаем новую роль «МИКО_ИспользованиеСофтфона».
В столбце «Объекты» находим обработку «МИКО_ПанельТелефонииДля1C» и в правом столбце «Права» выставляем галочки «Использовать» и «Просмотр» .
Обязательно укажите для пользователя роль «Использование панели телефонии Asterisk (МИКО)». Иначе первый запуск произвести невозможно.
На этом встраивание завершено.