Внимание!
Эта wiki об устаревших версиях
Документация к актуальной версии интеграции 1С и телефонии доступна по ссылке

Инструменты пользователя

Инструменты сайта


astpanel:designer:alfa5_1

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

astpanel:designer:alfa5_1 [2020/10/18 11:09] (текущий)
imal создано
Строка 1: Строка 1:
 +====== Интеграция с Альфа-Авто:​ Автосалон+Автосервис+Автозапчасти ПРОФ. Редакция 5 ======
 +<note warning> Обращаем внимание,​ что версия платформы 1С:​Предприятие должна быть **НЕ НИЖЕ** 8.2.15!!!</​note>​
 +<note warning> Инструкция составлена для конфигурации Альфа-Авто:​ Автосалон+Автосервис+Автозапчасти ПРОФ **редакции 5.1.21.06**. Для прочих редакций схема встраивания может отличаться,​ ипользуйте прошлую версию [[astpanel:​designer:​alfa5|инструкций]].</​note>​
 +Самостоятельное встраивание телефонии должно производиться сотрудником строго по данной инструкции во избежании проблем с программой.
  
 +Для интеграции обработки телефонии «**МИКО_ПанельТелефонииДля1С**» в типовую конфигурацию Альфа-Авто необходимо выполнить ряд простых действий,​ описанных ниже. ​
 +
 +<note warning> Перед началом работ настоятельно рекомендуем выполнить **РЕЗЕРВНУЮ КОПИЮ** вашей информационной базы!</​note>​
 +===== Этап 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?​ |}}
 +
 +Находим процедуру "​**ОбработкаВнешнегоСобытия(Источник,​ Событие,​ Данные)**"​ в конце процедуры,​ перед надписью "​КонецПроцедуры"​ вставляем следующий код:
 +
 +<code 1c>
 +// Процедура выполняет обработку внешнего события
 +//
 +Процедура ОбработкаВнешнегоСобытия(Источник,​ Событие,​ Данные)
 +
 + // *** *** *** //
 +
 + // МИКО / Панель телефонии Asterisk / Начало ​
 + Если НЕ РарусСофтФонПроф = Неопределено ​
 + И (Источник = "​MikoAjamEvent"​ ИЛИ Источник = "​MIKO_SoftPhone"​ ИЛИ Источник = "​hWindow"​) Тогда
 + РарусСофтФонПроф.ОбработкаВнешнегоСобытияАстериск(Источник,​ Событие,​ Данные);​
 + КонецЕсли;​
 + // МИКО / Панель телефонии Asterisk / Конец
 +КонецПроцедуры
 +</​code>​
 +
 +===== Этап 5. Обработка "​CRM_СофтФонПроф"​ =====
 +В модуле обработки CRM_СофтФонПроф найдем процедуру **ПодключитьСофтФон()**. В начало процедуры добавим фрагмент кода:
 +<code 1c>
 +// Выполняем подключение Софтфона,​ вызов функции располагается в модуле приложения
 +//  в процедуре ПриСтартеСистемы
 +Функция ПодключитьСофтФон() Экспорт
 +
 + // МИКО / Панель телефонии Asterisk / НАЧАЛО
 + РарусСофтФонПроф = Обработки.МИКО_ПанельТелефонииДля1С.Создать();​
 + РарусСофтФонПроф.ПодключитьСофтФон();​
 + Возврат Истина;​
 + // МИКО / Панель телефонии Asterisk / КОНЕЦ
 +
 + // *** // *** // *** //
 +
 +КонецФункции
 +</​code>​
 +
 +===== Этап 6. Регистр сведений "​Контактная информация"​ =====
 +
 +В модуле набора записей скорректировать процедуру:​
 +<code 1c>
 +Процедура ПередЗаписью(Отказ,​ Замещение)
 + // проверка для предотвращения попытки полной зачистки регистра
 + Если ЭтотОбъект.Количество() = 0 Тогда
 + Если ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Объект.Значение) И
 + ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Тип.Значение) И
 + ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Вид.Значение) Тогда
 + СтрокаОтказа = "";​
 + Отказ = Истина;​
 + КонецЕсли;​
 + КонецЕсли;​
 +
 + // проверки оставлены в модуле на случай редактирования КИ в строке
 + // Вообще проверка делается локально в каждой форме записи КИ
 + Для Каждого Запись Из ЭтотОбъект Цикл
 +
 + Если ОбЗначениеНеЗаполнено(Запись.Объект) Тогда
 + Отказ = Истина;​
 + СтрокаОтказа = "Не заполнено поле ""​Владелец""​. Запись невозможна!";​
 + Продолжить;​
 + КонецЕсли; ​
 +
 + Если Запись.Объект.ЭтоГруппа Тогда
 + Отказ = Истина;​
 + СтрокаОтказа = "​Нельзя использовать группу в качестве объекта контактной информации.";​
 + Прервать;​
 + КонецЕсли;​
 +
 + Если ОбЗначениеНеЗаполнено(Запись.Вид) Тогда
 + Отказ = Истина;​
 + СтрокаОтказа = "Не заполнено поле ""​Вид""​. Запись невозможна!";​
 + Прервать;​
 + КонецЕсли;​
 +
 + Если ОбЗначениеНеЗаполнено(Запись.Представление) Тогда
 + Отказ = Истина;​
 + СтрокаОтказа = "Не заполнено представление контактной информации. Запись невозможна!";​
 + Прервать;​
 + КонецЕсли;​
 + //​**********************************************************************
 + // PT1C / начало редактирования
 + // производим дозаполнение контактной информации
 + # Если Клиент Тогда  ​
 + Если Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
 + ПредставлениеБаза ​  = Запись.Представление;​
 + ПредставлениеНомера = Запись.Поле1 + Запись.Поле2 + Запись.Поле3;​
 + Если ЗначениеЗаполнено(Запись.Поле4) И НЕ ЗначениеЗаполнено(ПредставлениеНомера) Тогда
 + Запись.CRM_ПолеХраненияНомера = CRMПреобразоватьНомерДляСохранения(Запись.Поле4, ​ глКоличествоХранимыхЦифрТелефона);​
 + ИначеЕсли НЕ ЗначениеЗаполнено(ПредставлениеНомера + Запись.Поле4) И ЗначениеЗаполнено(ПредставлениеБаза) Тогда
 + Запись.CRM_ПолеХраненияНомера = CRMПреобразоватьНомерДляСохранения (ПредставлениеБаза, ​ глКоличествоХранимыхЦифрТелефона);​
 + Иначе
 + Запись.CRM_ПолеХраненияНомера = CRMПреобразоватьНомерДляСохранения (ПредставлениеНомера, ​ глКоличествоХранимыхЦифрТелефона);​
 + КонецЕсли;​
 + КонецЕсли;​
 + // Для возможности сохранения Скайп номера,​ обойдем лишние проверки при изменении данных
 + Если Найти(Запись.Вид,"​Skype"​)>​0 Тогда
 + Запись.CRM_НомерТелефона = Запись.Представление;​
 + КонецЕсли;​
 + # КонецЕсли ​
 + // PT1C // окончание редактирования
 + //​**********************************************
 + КонецЦикла;​
 +
 + Если Отказ Тогда
 + Сообщить(СтрокаОтказа);​
 + КонецЕсли;​
 +
 +КонецПроцедуры
 +
 +</​code>​
 +
 +===== Этап 7. Документ "​Событие"​ =====
 +Для возможности прослушивать запись разговора,​ прикрепленного к документу,​ необходимо модифицировать форму документа "​**ФормаДокумента**":​
 +
 +<code 1c>​Процедура ДействияФормыCLON(Кнопка)
 + // PT1C / Панель телефонии Asterisk / Начало
 + Если НЕ РарусСофтФонПроф = Неопределено
 + И ТипЗнч(РарусСофтФонПроф) = Тип("​ОбработкаОбъект.МИКО_ПанельТелефонииДля1С"​) Тогда
 + РарусСофтФонПроф.ПрослушатьЗаписьРазговора(CRM_GUIDЗвонка);​
 + Возврат;​
 + КонецЕсли; ​
 + // PT1C / Панель телефонии Asterisk / Конец
 +
 + // *** // *** // *** //
 +
 +КонецПроцедуры
 +</​code>​
 +
 +<note important>​В случае использования АТС **MyPBX** для корректной работы функции прослушивания необходимо изменить параметры реквизита **CRM_GUIDЗвонка**:​
 +
 +  * Тип = **Переменная строка 300** символов
 +</​note>​
 +
 +В дальнейшем,​ если пользователю разрешено прослушивать записи следует назначить ему дополнительную настройку:​
 +{{ :​astpanel:​designer:​122222.png |Разрешить прослушивание разговора}}
 +
 +===== Этап 8. Печатная форма =====
 +
 +Для возможности отправить факсов сформированную печатную форму в текущий разговор,​ необходимо модифицировать общую печатную форму **ПечатнаяФормаДокументов**.
 +<code 1c>​Процедура ПриОткрытии()
 + // PT1C / Панель телефонии Asterisk / Начало
 + PT1C_ОправитьФаксом = ЭлементыФормы.ДействияФормы.Кнопки.Вставить(7,"​PT1C_ОправитьФаксом",​ТипКнопкиКоманднойПанели.Действие,​ "​Отправить факсом текущий документ",​Новый Действие("​PT1C_ДействияФормы_ОправитьФаксом"​));​
 + PT1C_ОправитьФаксом.Имя = "​PT1C_ОправитьФаксом";​
 + PT1C_ОправитьФаксом.Подсказка = "​Отправляет текущий документ факсом";​
 + PT1C_ОправитьФаксом.Доступность = Истина;​
 + PT1C_ОправитьФаксом.ИзменяетДанные = Ложь;
 + PT1C_ОправитьФаксом.Пояснение = "​Отправить в текущий разговор факсимильное сообщение";​
 + // PT1C / Панель телефонии Asterisk / Конец
 + // Сформеруем заголовок формы
 +
 + // *** // *** // *** //
 +
 +КонецПроцедуры
 +
 +//​обработчик нажатия на кнопку отправки табличного документа в текущий разговор
 +Процедура PT1C_ДействияФормы_ОправитьФаксом(Кнопка)
 + Если НЕ РарусСофтФонПроф = Неопределено
 + И ТипЗнч(РарусСофтФонПроф) = Тип("​ОбработкаОбъект.МИКО_ПанельТелефонииДля1С"​) Тогда
 + РарусСофтФонПроф.ОтправитьФаксомТабДок(ЭлементыФормы.ТабличныйДокумент);​
 + КонецЕсли; ​
 +КонецПроцедуры
 +
 +</​code>​
 +
 +
 +===== Этап 9. Создание роли "​Телефония"​ =====
 +
 +Завершаем встраивание телефонии МИКО в Альфа-Авто 5 созданием роли "​****МИКО_ИспользованиеСофтфона****"​. Это необходимо сделать для настройки прав доступа пользователей,​ которые будут пользоваться телефонией.\\
 +  - В дереве конфигурации находим папку "​Общее"​ , далее "​Роли"​ и по кнопке добавить создаем новую роль "​**МИКО_ИспользованиеСофтфона**"​. {{ :​doc:​dobavlenie_roli.jpg?​ |}}
 +  - В столбце "​**Объекты**"​ находим обработку "​**МИКО_ПанельТелефонииДля1C**"​ и в правом столбце "​Права"​ выставляем галочки "​Использовать"​ и "​Просмотр"​ . {{ :​doc:​11telefonija_ispolzov.jpg?​ |}}
 +
 +<note important>​Для роли установите синоним "​**Использование панели телефонии Asterisk (МИКО)**"​.</​note>​
 +===== Этап 10. Права доступа "​Телефония"​ =====
 +
 +<note warning>​Перед выполнением этого шага обязательно выполните этап №6 и сохраните изменения "​**Конфигурация**"​ - "​**Обновить конфигурацию базы данных**"​.</​note>​
 +
 +Обязательно укажите для пользователя роль "​**Использование панели телефонии Asterisk (МИКО)**"​. Иначе первый запуск произвести невозможно. {{ :​astpanel:​designer:​user_rol.png?​nolink |}}
 +
 +<note warning>​Если,​ по какой то причине,​ необходимо прекратить запуск панели телефонии для пользователя,​ то просто отключите для него роль "​**Использование панели телефонии Asterisk (МИКО)**"​.</​note>​
 +
 +На этом доработка завершена. ​
 +===== Коментарии =====
 +~~DISQUS~~
astpanel/designer/alfa5_1.txt · Последние изменения: 2020/10/18 11:09 — imal