====== Доработка 1С:CRM ====== Обращаем внимание, что версия платформы 1С:Предприятие должна быть **НЕ НИЖЕ** 8.2.15!!! Самостоятельное встраивание телефонии должно производиться сотрудником строго по данной инструкции во избежании проблем с программой. Для интеграции обработки телефонии «**МИКО_ПанельТелефонииДля1С**» в типовую конфигурацию 1С: CRM необходимо выполнить ряд простых действий, описанных ниже. Перед началом работ настоятельно рекомендуем выполнить РЕЗЕРВНУЮ КОПИЮ вашей информационной базы! ===== Этап 1. Включить возможность изменения конфигурации ===== {{page>astpanel:designer:ut11:poddergka}} ===== Этап 2. Добавление обработки телефонии ===== Необходимо добавить обработку «**МИКО_ПанельТелефонииДля1С**». - В дереве метаданных находим ветку «Обработки». - Правой кнопкой мыши открываем контекстное меню, выбираем «**Вставить внешнюю обработку,отчет...**». {{ :doc:vstavit_obrabotku111.jpg? |Добавление обработки телефонии}} - Выбираем файл "**МИКО_ПанельТелефонииДля1С.epf**" из каталога дистрибутива. ===== Этап 3. Внесение изменений в глобальный модуль ===== Внесем доработки в "Модуль обычного приложения". - В дереве объектом метаданных находим корневой узел. - Правой кнопкой мыши открываем контекстное меню, выбираем «Открыть модуль обычного приложения». {{ :doc:11modul_obychnogo_prilozhenija.jpg? |}} Находим процедуру "**ПриНачалеРаботыСистемы**" и заменяем фрагмент исходного кода кода: ИначеЕсли ТекАТС = Перечисления.CRM_ИспользуемыйСофтФон.СофтФонЛайт Тогда // {{doc:panel1ccrm:{ СофтФон, Лайт }}} НАЧАЛО Код встраивания в произвольную конфигурацию Попытка РарусСофтФонЛайт = Обработки.CRM_СофтФон.Создать(); РарусСофтФонЛайт.ПодключитьСофтФон(); Следующим фрагментом: ИначеЕсли ТекАТС = Перечисления.CRM_ИспользуемыйСофтФон.СофтФонЛайт Тогда // {{doc:panel1ccrm:{ СофтФон, Лайт }}} НАЧАЛО Код встраивания в произвольную конфигурацию Попытка // PT1C / Панель телефонии Asterisk / НАЧАЛО // РарусСофтФонЛайт = Обработки.CRM_СофтФон.Создать(); РарусСофтФонЛайт = Обработки.МИКО_ПанельТелефонииДля1С.Создать(); // PT1C / Панель телефонии Asterisk / КОНЕЦ РарусСофтФонЛайт.ПодключитьСофтФон(); Далее находим процедуру "**ОбработкаВнешнегоСобытия(Источник, Событие, Данные)**" в конце процедуры, перед надписью "КонецПроцедуры" вставляем следующий код: // Процедура выполняет обработку внешнего события // Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) // *** *** *** // // PT1C / Панель телефонии Asterisk / Начало Если Источник = "MikoAjamEvent" ИЛИ Источник = "MIKO_SoftPhone" ИЛИ Источник = "hWindow" Тогда РарусСофтФонЛайт.ОбработкаВнешнегоСобытияАстериск(Источник, Событие, Данные); КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец КонецПроцедуры Переходим к процедуре "**ПередЗавершениемРаботыСистемы(Отказ)"**. Перед "КонецПроцедуры" вставляем фрагмент код: // Процедура перед завершением работы системы // Процедура ПередЗавершениемРаботыСистемы(Отказ) // *** *** *** // {{{ CRM Коммуникатор }}} КОНЕЦ // PT1C / Панель телефонии Asterisk / Начало Если Не Отказ И НЕ РарусСофтФонЛайт = Неопределено Тогда РарусСофтФонЛайт.ОтключитьВК(); КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец КонецПроцедуры ===== Регистр сведений "Контактная информация" ===== В модуле набора записей скорректировать процедуру: Процедура ПередЗаписью(Отказ, Замещение) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; Для каждого Запись Из ЭтотОбъект Цикл Если НЕ ЗначениеЗаполнено(Запись.Объект) Тогда Отказ = Истина; СтрокаОтказа = "Не заполнен объект."; Продолжить; КонецЕсли; Если Запись.Объект.ЭтоГруппа Тогда Отказ = Истина; СтрокаОтказа = "Нельзя использовать в качестве объекта контактной информации - группу."; Прервать; КонецЕсли; //********************************************************************** // PT1C / начало редактирования // производим дозаполнение контактной информации # Если Клиент Тогда Если Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда ПредставлениеБаза = Запись.Представление; ПредставлениеНомера = Запись.Поле1 + Запись.Поле2 + Запись.Поле3; Если ЗначениеЗаполнено(Запись.Поле4) И НЕ ЗначениеЗаполнено(ПредставлениеНомера) Тогда Запись.CRM_ПолеХраненияНомера = CRMПреобразоватьНомерДляСохранения(Запись.Поле4, глКоличествоХранимыхЦифрТелефона); ИначеЕсли НЕ ЗначениеЗаполнено(ПредставлениеНомера + Запись.Поле4) И ЗначениеЗаполнено(ПредставлениеБаза) Тогда Запись.CRM_ПолеХраненияНомера = CRMПреобразоватьНомерДляСохранения (ПредставлениеБаза, глКоличествоХранимыхЦифрТелефона); Иначе Запись.CRM_ПолеХраненияНомера = CRMПреобразоватьНомерДляСохранения (ПредставлениеНомера, глКоличествоХранимыхЦифрТелефона); КонецЕсли; КонецЕсли; // Для возможности сохранения Скайп номера, обойдем лишние проверки при изменении данных Если Найти(Запись.Вид,"Skype")>0 Тогда Запись.CRM_НомерТелефона = Запись.Представление; КонецЕсли; # КонецЕсли // PT1C // окончание редактирования //********************************************** КонецЦикла; Если Отказ Тогда Сообщить(СтрокаОтказа); КонецЕсли; КонецПроцедуры ===== Этап 4. Документ "Событие" ===== Для возможности прослушивать запись разговора, прикрепленного к документу, необходимо модифицировать форму документа "**CRM_ФормаДокумента**": Процедура ДействияФормыCLON(Кнопка) // PT1C / Панель телефонии Asterisk / Начало Если НЕ РарусСофтФонЛайт = Неопределено И ТипЗнч(РарусСофтФонЛайт) = Тип("ОбработкаОбъект.МИКО_ПанельТелефонииДля1С") Тогда РарусСофтФонЛайт.ПрослушатьЗаписьРазговора(CRM_GUIDЗвонка); Возврат; КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец // *** // *** // *** // КонецПроцедуры Дополнительно необходимо внести изменения в обработку установки видимости / доступности элементов формы Процедура ВидимостьЭлементовФормы() // *** пропущена часть исходного теста *** // // {{{ CLON Система записи телефонных разговоров }}} НАЧАЛО // PT1C / Панель телефонии Asterisk / Начало //ЭлементыФормы.кнПрослушатьЗаписьТелРазговора.Видимость = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "CLONПодключена"); //ЭлементыФормы.кнПрослушатьЗаписьТелРазговора.Доступность = CRMПолучитьЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.CLONВозможноПрослушиваниеФайловЗаписи, Ложь, глЗначениеПеременной("глТекущийПользователь")); ЭлементыФормы.кнПрослушатьЗаписьТелРазговора.Видимость = Истина; ЭлементыФормы.кнПрослушатьЗаписьТелРазговора.Доступность = CRMПолучитьЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.CLONВозможноПрослушиваниеФайловЗаписи, Ложь, глЗначениеПеременной("глТекущийПользователь")); // PT1C / Панель телефонии Asterisk / Конец // {{{ CLON Система записи телефонных разговоров }}} КОНЕЦ КонецПроцедуры В дальнейшем, если пользователю разрешено прослушивать записи следует назначить ему дополнительную настройку: {{ :astpanel:designer:122222.png |Разрешить прослушивание разговора}} ===== Этап 5. Печатная форма ===== Для возможности отправить факсов сформированную печатную форму в текущий разговор, необходимо модифицировать общую печатную форму **CRM_ПечатнаяФормаДокументов**. Процедура ПриОткрытии() // PT1C / Панель телефонии Asterisk / Начало PT1C_ОправитьФаксом = ЭлементыФормы.ДействияФормы.Кнопки.Вставить(7,"PT1C_ОправитьФаксом",ТипКнопкиКоманднойПанели.Действие, "Отправить факсом текущий документ",Новый Действие("PT1C_ДействияФормы_ОправитьФаксом")); PT1C_ОправитьФаксом.Имя = "PT1C_ОправитьФаксом"; PT1C_ОправитьФаксом.Подсказка = "Отправляет текущий документ факсом"; PT1C_ОправитьФаксом.Доступность = Истина; PT1C_ОправитьФаксом.ИзменяетДанные = Ложь; PT1C_ОправитьФаксом.Пояснение = "Отправить в ттекущий разговор факсимильное сообщение"; PT1C_ОправитьФаксом.Картинка = БиблиотекаКартинок.CRM_ФаксКоммуникатор; // PT1C / Панель телефонии Asterisk / Конец // Сформеруем заголовок формы Конецпроцедуры //обработчик нажатия на кнопку отправки табличного документа в текущий разговор Процедура PT1C_ДействияФормы_ОправитьФаксом(Кнопка) Если НЕ РарусСофтФонЛайт = Неопределено И ТипЗнч(РарусСофтФонЛайт) = Тип("ОбработкаОбъект.МИКО_ПанельТелефонииДля1С") Тогда РарусСофтФонЛайт.ОтправитьФаксомТабДок(ЭлементыФормы.ТабличныйДокумент); КонецЕсли; КонецПроцедуры ===== Этап 6. Создание роли "Телефония" ===== Завершаем встраивание телефонии МИКО в 1С:CRM созданием роли "****МИКО_ИспользованиеСофтфона****". Это необходимо сделать для настройки прав доступа пользователей, которые будут пользоваться телефонией.\\ - В дереве конфигурации находим папку "Общее" , далее "Роли" и по кнопке добавить создаем новую роль "**МИКО_ИспользованиеСофтфона**". {{ :doc:dobavlenie_roli.jpg? |}} - В столбце "**Объекты**" находим обработку "**МИКО_ПанельТелефонииДля1C**" и в правом столбце "Права" выставляем галочки "Использовать" и "Просмотр" . {{ :doc:11telefonija_ispolzov.jpg? |}} Для роли установите синоним "**Использование панели телефонии Asterisk (МИКО)**". ===== Этап 7. Права доступа "Телефония" ===== Перед выполнением этого шага обязательно выполните этап №6 и сохраните изменения "**Конфигурация**" - "**Обновить конфигурацию базы данных**". Обязательно укажите для пользователя роль "**Использование панели телефонии Asterisk (МИКО)**". Иначе первый запуск произвести невозможно. {{ :astpanel:designer:user_rol.png?nolink |}} Если, по какой то причине, необходимо прекратить запуск панели телефонии для пользователя, то просто отключите для него роль "**Использование панели телефонии Asterisk (МИКО)**". На этом доработка завершена. ===== Коментарии ===== ~~DISQUS~~