====== Доработка 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~~