====== ИНТЕГРАЦИЯ ПАНЕЛИ ТЕЛЕФОНИИ ====== [[astpanel:designer|Обратно, к списку конфигураций...]] Встраивать панель телефонии стало проще! Доработка конфигурации с минимальными изменениями! Встраивание панели телефонии с помощью **механизма расширений** описано [[astpanel:designer:extension|здесь]]. * Руководство составлено для **1С:УНФ 1.6.4.29 с CRM 2.0.12.7**. * Требуется панель телефонии версии **1.4.26.15+**. [[astpanel:designer:unf_crm2|Инструкции для прочих версий CRM2...]] Сделайте **РЕЗЕРВНУЮ КОПИЮ** информационной базы. ===== Настройка поддержки ===== Необходимо включить возможность изменения конфигурации. Порядок действий следующий: - Убедитесь, что все пользователи завершили свою работу с программой. - Сделайте **РЕЗЕРВНУЮ КОПИЮ** информационной базы. - Запустите программу в режиме **"Конфигуратор"**. - Откройте окно настройки поддержки "**Конфигуратор**" - "**Поддержка**" - "**Настройка поддержки**". {{ :doc:panel1ccrm20:support.png? |}} - **Включите возможность изменения конфигурации**. На предупреждение программы ответьте утвердительно. - В появившемся окне укажите, что объекты поставщика редактируются с сохранением поддержки. {{ :astpanel:designer:support_ut_crm2.png?nolink |}} Конфигурация готова к внесению изменений. ===== Создание новых объектов ===== Начать рекомендуем с [[astpanel:designer:optimization_managed|инструкции по оптимизации конфигурации]]. - Вставьте внешнюю обработку, которая идет в поставке, присвойте ей имя "**МИКО_ПанельТелефонииДля1С**". - Добавьте новый общий модуль **"МИКО_Софтфон"**. {{ :doc:panel1ccrm20:addmodule.png? |}} - Установите флажки напротив свойств **"Сервер"** и **"Вызов сервера"** модуля. {{ :doc:panel1ccrm20:moduleproperties.png? |}} - Скопируйте [[astpanel:designer:crm2:modulesrc_2_0_12|текст, расположенный по данной ссылке]], и вставьте его в модуль **"МИКО_Софтфон"**. ===== Настройка прав доступа ===== - Добавьте в конфигурацию новую роль **"МИКО_Софтфон"**. - Снимите все отметки о правах выставляемые по умолчанию, а для обработки "МИКО_ПанельТелефонииДля1С" установите все права.{{ :astpanel:designer:crm2:pravamikopanel.png |}} ===== Добавление подсистемы телефонии ===== - Создайте новую подсистему "**МИКО_ПанельТелефонии**"; - Включите в ее состав обработку **МИКО_ПанельТелефонииДля1С** и роль **МИКО_Софтфон**. - Перейдите к подсистеме **Работы** - **CRM_РазделСофтФон**. Добавьте в состав подсистемы общую команду **сфпОткрытьСофтФон**. ===== Изменение глобального модуля ===== - Откройте модуль управляемого приложения. {{ astpanel:designer:crm2:korencrm.png |}} - Перейдите к процедуре //"ПриЗавершенииРаботыСистемы"// (создайте процедуру, если ее нет). В конец процедуры вставьте код приведенный ниже. // PT1C / Панель телефонии Asterisk / Начало Если сфпПанельУправления <> Неопределено И ТипЗнч(сфпПанельУправления) = Тип("УправляемаяФорма") И Найти(сфпПанельУправления.ИмяФормы,"Обработка.МИКО_ПанельТелефонииДля1С")<>0 Тогда сфпПанельУправления.ЗавершитьРаботу(Истина); КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец ===== Изменение общих модулей ===== - Передите к общему модулю "**сфпСофтФонПроКлиент**", - К процедуре "**сфпПодключитьСофтФон**". В начало необходимо вставить фрагмент кода: // PT1C / Панель телефонии Asterisk / Начало НазваниеПанелиТелефонии = "Панель телефонии Asterisk (МИКО)"; Если сфпПанельУправления = Неопределено Тогда МИКО_Софтфон.ВыполнитьПервичнуюУстановку(НазваниеПанелиТелефонии); КонецЕсли; Если МИКО_Софтфон.Использовать(НазваниеПанелиТелефонии) Тогда Если сфпПанельУправления = Неопределено Тогда Попытка сфпПанельУправления = ПолучитьФорму("Обработка.МИКО_ПанельТелефонииДля1С.Форма.Форма"); сфпПанельУправления.ИнициализироватьПанельТелефонии(Истина, Ложь); Исключение Сообщить("Не удалось запустить ""Панель телефонии Asterisk (МИКО)""!"); Возврат; КонецПопытки; Иначе // Переопределение обработки команды Если сфпПанельУправления.Открыта() Тогда сфпПанельУправления.Активизировать(); Иначе сфпПанельУправления.Открыть(); КонецЕсли; КонецЕсли; Возврат; КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец - К процедуре "**сфпПозвонить**". В начало необходимо вставить фрагмент кода: // PT1C / Панель телефонии Asterisk / Начало Если МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") Тогда ОснованиеЗвонка = Неопределено; Если ДанныеЗаполнения <> Неопределено И ДанныеЗаполнения.Свойство("Основание") Тогда ОснованиеЗвонка = Новый Структура("ОснованиеЗвонка, НомерТелефона", ДанныеЗаполнения.Основание, Телефон); КонецЕсли; сфпПанельУправления.Позвонить(Телефон,ОснованиеЗвонка); Возврат; КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец - К процедуре "**сфпПозвонитьВыбравТелефон**". В начало необходимо вставить фрагмент кода: // PT1C / Панель телефонии Asterisk / Начало Если МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") Тогда сфпПанельУправления.ПозвонитьВыбравТелефон(СписокОбъектов); Возврат; КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец - К процедуре "**сфпПроверитьДоступностьСофтФон**". В начало необходимо вставить фрагмент кода: // PT1C / Панель телефонии Asterisk / Начало Если МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") Тогда Возврат Истина; КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец ===== Изменение общих форм ===== - Перейти к общей форме "**CRM_СообщенияПодключения**". В модуле формы, в процедуре "**ПриСозданииНаСервере**" необходимо добавить фрагмент кода: Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если НЕ Параметры.Свойство("ВидФормы") Тогда Отказ = Истина; ИначеЕсли Параметры.ВидФормы = "СофтФон" Тогда // PT1C / Панель телефонии Asterisk / Начало Если МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") Тогда Возврат; КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец // *** *** *** // ВНИМАНИЕ ПРОПУЩЕНА ЧАСТЬ ИСХОДНОГО КОДА // *** *** *** КонецЕсли; КонецПроцедуры // ПриСозданииНаСервере() - Перейти к общей форме "**ПечатьДокументов**". В **конец** процедуры "**ПриСозданииНаСервере**" необходимо добавить фрагмент кода: // PT1C / Панель телефонии Asterisk / Начало МИКО_Софтфон.ДобавитьКнопкиФаксаНаФормуПечати(ЭтаФорма); // PT1C / Панель телефонии Asterisk / Конец - **После** процедуры "**ПриСозданииНаСервере**", добавить дополнительные процедуры - обработки: &НаКлиенте Процедура МИКО_ОтправитьКакФакс() Если НЕ МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") ИЛИ сфпПанельУправления = Неопределено Тогда Возврат; КонецЕсли; ТабличныеДокументы = Новый СписокЗначений; Для Каждого НастройкаПечатнойФормы Из НастройкиПечатныхФорм Цикл Если Элементы[НастройкаПечатнойФормы.ИмяРеквизита].Вывод = ИспользованиеВывода.Разрешить И НастройкаПечатнойФормы.Печатать Тогда ТабличныеДокументы.Добавить(ЭтотОбъект[НастройкаПечатнойФормы.ИмяРеквизита], НастройкаПечатнойФормы.Представление); КонецЕсли; КонецЦикла; Если ТабличныеДокументы.Количество()=0 Тогда Возврат; Иначе ТабДок = ТабличныеДокументы[0].Значение; КонецЕсли; // отсылаем факс сфпПанельУправления.ОтправитьФайлПоФаксу(,ТабДок); КонецПроцедуры // МИКО_ОтправитьКакФакс() &НаКлиенте Процедура МИКО_Позвонить() Если НЕ МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") ИЛИ сфпПанельУправления = Неопределено Тогда Возврат; КонецЕсли; ПараметрыПечати = Неопределено; Если ТипЗнч(ОбъектыПечати) = Тип("СписокЗначений") И ОбъектыПечати.Количество() > 0 Тогда Участник = МИКО_Софтфон.ПолучитьСсылкуНаУчастникаИзДокумента(ОбъектыПечати[0].Значение); Если ТипЗнч(Участник) = Тип("Массив") И Участник.Количество()>0 Тогда сфпПанельУправления.ПозвонитьВыбравТелефон(Участник); ИначеЕсли Участник <> Неопределено Тогда СписокУчастников = Новый Массив(1); СписокУчастников[0] = Участник; сфпПанельУправления.ПозвонитьВыбравТелефон(СписокУчастников); КонецЕсли; КонецЕсли; КонецПроцедуры ===== Документ "CRM_Событие" ===== В форму документа с именем "**ФормаДокумента**", в начало процедуры "**ОбработкаОповещения**" добавить: &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) // PT1C // + Если ИмяСобытия = "PT1C_ИсходящийВызовНеУдался" И Параметр <> Неопределено И Параметр.ОснованиеЗвонка = Объект.Ссылка Тогда врТекстСообщения = ""+Формат(ТекущаяДата(),"ДЛФ=DDT") + " : Пытались позвонить клиету на номер "+Параметр.НомерТелефона+" - не дозвонились."; Объект.Результат = Объект.Результат + ?(ЗначениеЗаполнено(Объект.Результат), Символы.ПС, "") + врТекстСообщения; ИначеЕсли ИмяСобытия = "PT1C_ЗаписьСобытия" И Параметр <> Неопределено И Параметр.Ссылка = Объект.Ссылка Тогда Если Параметр.НеДозвонились = Истина Тогда врТекстСообщения = ""+Формат(ТекущаяДата(),"ДЛФ=DDT") + " : " + "Звонок клиенту на номер "+Параметр.НомерТелефона+" - дозвонились, но требуется перезвонить"+Символы.ПС + Параметр.Содержание+Символы.ПС; Иначе врТекстСообщения = ""+Формат(ТекущаяДата(),"ДЛФ=DDT") + " : " + "Успешно дозвонились клиенту на номер "+Параметр.НомерТелефона+". Создан документ """+Источник+""", см. структуру подчиненности"+Символы.ПС + Параметр.Содержание+Символы.ПС; КонецЕсли; Объект.Результат = Объект.Результат + ?(ЗначениеЗаполнено(Объект.Результат), Символы.ПС, "") + врТекстСообщения; КонецЕсли; // PT1C // - ===== Добавление картинок ===== В общие картинки добавить - Картинку с именем "**МИКО_ЗаписьРазговора**" {{:astpanel:designer:crm2:miko_zapisrazgovora.png?nolink|}} - Картинку с именем "**МИКО_Телефон**" {{:astpanel:designer:crm2:miko_telefon.png?nolink|}} - Картинку с именем "**МИКО_ОтправитьФакс**" {{:astpanel:designer:crm2:miko_otpravitfaks.png?nolink|}} ===== Добавление кнопки "Прослушать запись" в документ "Событие" ===== По завершению работы помощника первоначальной настройки для документа будет создано свойство "**ID_Звонок**", назначение которого - хранить ссылку на запись. Порядок действий: - Добавьте в обработку **МИКО_ПанельТелефонииДля1С** команду "**ПрослушатьЗапись**" и поместите в модуль команды &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) Если МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") И сфпПанельУправления <> Неопределено Тогда ДокументСобытиеНазвание = сфпПанельУправления.ИмяДокументСобытие(); ID_Звонок = ПолучитьИдентификаторЗвонка(ПараметрКоманды, ДокументСобытиеНазвание); Если ID_Звонок <> Неопределено Тогда сфпПанельУправления.ПрослушатьЗвонокПоИдентификатору(ID_Звонок); КонецЕсли; КонецЕсли; КонецПроцедуры // Получение GUID звонка // &НаСервере Функция ПолучитьИдентификаторЗвонка(Ссылка, ДокументСобытиеНазвание) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | СобытиеДополнительныеРеквизиты.Значение, | СобытиеДополнительныеРеквизиты.ТекстоваяСтрока |ИЗ | Документ." + ДокументСобытиеНазвание + ".ДополнительныеРеквизиты КАК СобытиеДополнительныеРеквизиты |ГДЕ | СобытиеДополнительныеРеквизиты.Ссылка = &ДокументСсылка | И СобытиеДополнительныеРеквизиты.Свойство В | (ВЫБРАТЬ | ДополнительныеРеквизитыИСведения.Ссылка | ИЗ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения | ГДЕ | ДополнительныеРеквизитыИСведения.Наименование = &НаименованиеДопСвойства)"; Запрос.УстановитьПараметр("НаименованиеДопСвойства", "ID_Звонок"); Запрос.УстановитьПараметр("ДокументСсылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); Если Не РезультатЗапроса.Пустой() Тогда Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); Возврат Выборка.Значение; КонецЕсли; КонецФункции // ПолучитьИдентификаторЗвонка() - "**Группа**" в значение "**Командная панель формы.Важное**". - "**Тип параметра команды**" должно иметь тип данных: **ДокументСсылка.Событие**. - "**Отображение**" в значение "**Картинка и текст**", "**Картинка**" в значение "**МИКО_ЗаписьРазговора**". Данная команда будет доступна только для пользователей с полными правами. Обновите конфигурацию базы данных и запустите программу в режиме "**Предприятие**". Результат работы показан на рисунке ниже. {{ :astpanel:designer:telefon_ring.png?nolink&700 | }} [[astpanel:designer|Обратно, к списку конфигураций...]] ===== Первый запуск ===== - Необходимо запустить 1С под учетной записью администратора 1С. - Перейдите в раздел "**Компания**" - Перейдите в раздел "**Сервис**"-"**Персональные настройки(CRM)**". - Включите опции: * "**Использовать СофтФон**" * "**Панель телефонии Asterisk (МИКО)**" * "**Использовать внутреннюю панель СофтФон**" {{ :astpanel:designer:personal_settings_ut_crm2.png?500 |}} - Перейдите в раздел "**Компания**" - Перейдите по ссылке "**Администрирование**" - "**CRM: Настройки**" - "**CRM: Работа с СофтФон**" необходимо включить использование Софтфон: {{ :astpanel:designer:softphone_crm_unf.png? |}} [[astpanel:enterprise:managed|Перейти к инструкции по настройке в режиме предприятия]] ===== Коментарии ===== ~~DISQUS~~