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