Это старая версия документа!
Самостоятельное встраивание телефонии должно производиться сотрудником строго по данной инструкции во избежании проблем с программой.
Для интеграции обработки телефонии «МИКО_ПанельТелефонииДля1С» в типовую конфигурацию Альфа-Авто необходимо выполнить ряд простых действий, описанных ниже.
Для начала следует разблокировать корневой объект конфигурации для внесения изменений.
Порядок действий следующий:
Теперь конфигурация готова к внесению изменений.
Необходимо добавить обработку «МИКО_ПанельТелефонииДля1С».
Внесем доработки в «Модуль обычного приложения».
Находим процедуру «ПриНачалеРаботыСистемы» и заменяем фрагмент исходного кода:
ИначеЕсли ТекАТС = Перечисления.CRM_ИспользуемыйСофтФон.СофтФонПроф Тогда Попытка РарусСофтФонПроф = Обработки.CRM_СофтФонПроф.Создать(); РарусСофтФонПроф.ПодключитьСофтФон();
Следующим фрагментом:
ИначеЕсли ТекАТС = Перечисления.CRM_ИспользуемыйСофтФон.СофтФонПроф Тогда Попытка // МИКО / Панель телефонии Asterisk / НАЧАЛО // РарусСофтФонПроф = Обработки.CRM_СофтФонПроф.Создать(); РарусСофтФонПроф = Обработки.МИКО_ПанельТелефонииДля1С.Создать(); // МИКО / Панель телефонии Asterisk / КОНЕЦ РарусСофтФонПроф.ПодключитьСофтФон();
Далее находим процедуру «ОбработкаВнешнегоСобытия(Источник, Событие, Данные)» в конце процедуры, перед надписью «КонецПроцедуры» вставляем следующий код:
// Процедура выполняет обработку внешнего события // Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) // *** *** *** // // МИКО / Панель телефонии Asterisk / Начало Если НЕ РарусСофтФонПроф = Неопределено И (Источник = "MikoAjamEvent" ИЛИ Источник = "MIKO_SoftPhone" ИЛИ Источник = "MIKO_InFormAutor") Тогда РарусСофтФонПроф.ОбработкаВнешнегоСобытияАстериск(Источник, Событие, Данные); КонецЕсли; // МИКО / Панель телефонии Asterisk / Конец КонецПроцедуры
В модуле набора записей скорректировать процедуру:
Процедура ПередЗаписью(Отказ, Замещение) // проверка для предотвращения попытки полной зачистки регистра Если ЭтотОбъект.Количество() = 0 Тогда Если ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Объект.Значение) И ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Тип.Значение) И ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Вид.Значение) Тогда СтрокаОтказа = ""; Отказ = Истина; КонецЕсли; КонецЕсли; // проверки оставлены в модуле на случай редактирования КИ в строке // Вообще проверка делается локально в каждой форме записи КИ Для Каждого Запись Из ЭтотОбъект Цикл Если ОбЗначениеНеЗаполнено(Запись.Объект) Тогда Отказ = Истина; СтрокаОтказа = "Не заполнено поле ""Владелец"". Запись невозможна!"; Продолжить; КонецЕсли; Если Запись.Объект.ЭтоГруппа Тогда Отказ = Истина; СтрокаОтказа = "Нельзя использовать группу в качестве объекта контактной информации."; Прервать; КонецЕсли; Если ОбЗначениеНеЗаполнено(Запись.Вид) Тогда Отказ = Истина; СтрокаОтказа = "Не заполнено поле ""Вид"". Запись невозможна!"; Прервать; КонецЕсли; Если ОбЗначениеНеЗаполнено(Запись.Представление) Тогда Отказ = Истина; СтрокаОтказа = "Не заполнено представление контактной информации. Запись невозможна!"; Прервать; КонецЕсли; //********************************************************************** // PT1C / начало редактирования // производим дозаполнение контактной информации # Если Клиент Тогда Если Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда ПредставлениеНомера = Запись.Поле1 + Запись.Поле2 + Запись.Поле3; Если ЗначениеЗаполнено(Запись.Поле4) И НЕ ЗначениеЗаполнено(ПредставлениеНомера) Тогда Запись.CRM_ПолеХраненияНомера = CRMПреобразоватьНомерДляСохранения(Запись.Поле4, глКоличествоХранимыхЦифрТелефона); Иначе Запись.CRM_ПолеХраненияНомера = CRMПреобразоватьНомерДляСохранения (ПредставлениеНомера, глКоличествоХранимыхЦифрТелефона); КонецЕсли; КонецЕсли; # КонецЕсли // PT1C // окончание редактирования //********************************************************************** КонецЦикла; Если Отказ Тогда Сообщить(СтрокаОтказа); КонецЕсли; КонецПроцедуры
Для возможности прослушивать запись разговора, прикрепленного к документу, необходимо модифицировать форму документа «ФормаДокумента»:
Процедура ДействияФормыCLON(Кнопка) // PT1C / Панель телефонии Asterisk / Начало Если НЕ РарусСофтФонПроф = Неопределено И ТипЗнч(РарусСофтФонПроф) = Тип("ОбработкаОбъект.МИКО_ПанельТелефонииДля1С") Тогда РарусСофтФонПроф.ПрослушатьЗаписьРазговора(CRM_GUIDЗвонка); Возврат; КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец // *** // *** // *** // КонецПроцедуры
В дальнейшем, если пользователю разрешено прослушивать записи следует назначить ему дополнительную настройку:
Для возможности отправить факсов сформированную печатную форму в текущий разговор, необходимо модифицировать общую печатную форму ПечатнаяФормаДокументов.
Процедура ПриОткрытии() // PT1C / Панель телефонии Asterisk / Начало PT1C_ОправитьФаксом = ЭлементыФормы.ДействияФормы.Кнопки.Вставить(7,"PT1C_ОправитьФаксом",ТипКнопкиКоманднойПанели.Действие, "Отправить факсом текущий документ",Новый Действие("PT1C_ДействияФормы_ОправитьФаксом")); PT1C_ОправитьФаксом.Имя = "PT1C_ОправитьФаксом"; PT1C_ОправитьФаксом.Подсказка = "Отправляет текущий документ факсом"; PT1C_ОправитьФаксом.Доступность = Истина; PT1C_ОправитьФаксом.ИзменяетДанные = Ложь; PT1C_ОправитьФаксом.Пояснение = "Отправить в текущий разговор факсимильное сообщение"; // PT1C / Панель телефонии Asterisk / Конец // Сформеруем заголовок формы // *** // *** // *** // КонецПроцедуры //обработчик нажатия на кнопку отправки табличного документа в текущий разговор Процедура PT1C_ДействияФормы_ОправитьФаксом(Кнопка) Если НЕ РарусСофтФонПроф = Неопределено И ТипЗнч(РарусСофтФонПроф) = Тип("ОбработкаОбъект.МИКО_ПанельТелефонииДля1С") Тогда РарусСофтФонПроф.ОтправитьФаксомТабДок(ЭлементыФормы.ТабличныйДокумент); КонецЕсли; КонецПроцедуры
Завершаем встраивание телефонии МИКО в Альфа-Авто 5 созданием роли «МИКО_ИспользованиеСофтфона». Это необходимо сделать для настройки прав доступа пользователей, которые будут пользоваться телефонией.
Обязательно укажите для пользователя роль «Использование панели телефонии Asterisk (МИКО)». Иначе первый запуск произвести невозможно.
На этом доработка завершена.