====== Интеграция с Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ. Редакция 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~~