====== ИНТЕГРАЦИЯ ПАНЕЛИ ТЕЛЕФОНИИ ======
[[astpanel:designer|Обратно, к списку конфигураций...]]
* Руководство составлено для **1С:Комплексная автоматизация, ред. 2.0.3.179 + CRM ред. 2.0.10.3 **.
[[astpanel:designer:crm2:crm2071|Инструкции для прочих версий 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|текст, расположенный по данной ссылке]], и вставьте его в модуль **"МИКО_Софтфон"**.
===== Настройка прав доступа =====
- Добавьте в конфигурацию новую роль **"МИКО_Софтфон"**.
- Снимите все отметки о правах выставляемые по умолчанию, а для обработки "МИКО_ПанельТелефонииДля1С" установите все права.{{ :astpanel:designer:crm2:pravamikopanel.png |}}
- Аналогично, для обработки **"сфпСофтФонВнешняяПанель"**.{{ :astpanel:designer:crm2:pravadlyasoftfonprof.png |}}
- Назначьте право на использование компанды **"ОткрытьСофтФон"** {{ :astpanel:designer:crm2:pravadlyakomandi.png |}}
- В конфигурации перейдите к обработке "**сфпСофтФонВнешняяПанель**"
- Для команды "**ОткрытьСофтФон**" измените синоним на "**Панель телефонии**" {{ :astpanel:designer:crm2:sinonim_soffon.png?nolink |}}
===== Добавление подсистемы телефонии =====
- Создайте новую подсистему "**МИКО_ПанельТелефонии**";
- Включите в ее состав обработку **МИКО_ПанельТелефонииДля1С** и роль **МИКО_Софтфон**.
===== Изменение общих модулей =====
- Передите к общему модулю "**сфпСофтФонПроКлиент**",
- К процедуре "**сфпПриНачалеРаботыСистемы**". В начало необходимо вставить фрагмент кода:
// PT1C / Панель телефонии Asterisk / Начало
НазваниеПанелиТелефонии = "Панель телефонии Asterisk (МИКО)";
МИКО_Софтфон.ВыполнитьПервичнуюУстановку(НазваниеПанелиТелефонии);
Если МИКО_Софтфон.Использовать(НазваниеПанелиТелефонии) Тогда
Отказ = Ложь;
Попытка
// Версии 1.4.25.10+ обработка переименована в "МИКО_ПанельТелефонииДля1С"
сфпФормаТелефонВнешняяПанель = ПолучитьФорму("Обработка.МИКО_ПанельТелефонииДля1С.Форма.Форма");
сфпФормаТелефонВнешняяПанель.ИнициализироватьПанельТелефонии(Истина, Отказ);
Исключение
Отказ = Истина;
КонецПопытки;
Если Отказ Тогда
Сообщить("Не удалось запустить ""Панель телефонии Asterisk""");
Иначе
сфпОбработаноВнешнееСобытие = Истина;
КонецЕсли;
Возврат;
КонецЕсли;
// PT1C / Панель телефонии Asterisk / Конец
- К процедуре "**сфпПереподключитьСофтФон**". В начало необходимо вставить фрагмент кода:// PT1C / Панель телефонии Asterisk / Начало
Если МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") Тогда
Если сфпФормаТелефонВнешняяПанель = Неопределено Тогда
Попытка
// Версии 1.4.25.10+ обработка переименована в "МИКО_ПанельТелефонииДля1С"
сфпФормаТелефонВнешняяПанель = ПолучитьФорму("Обработка.МИКО_ПанельТелефонииДля1С.Форма.Форма");
сфпФормаТелефонВнешняяПанель.ИнициализироватьПанельТелефонии(Истина, Ложь);
Исключение
Сообщить("Не удалось запустить ""Панель телефонии 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_Звонок");
Запрос.УстановитьПараметр("ДокументСсылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Возврат Выборка.Значение;
КонецЕсли;
КонецФункции // ПолучитьИдентификаторЗвонка()
- "**Группа**" в значение "**Командная панель формы.Важное**".
- "**Тип параметра команды**" должно иметь тип данных: **ДокументСсылка.CRM_Событие**.
- "**Отображение**" в значение "**Картинка и текст**", "**Картинка**" в значение "**МИКО_ЗаписьРазговора**".
Данная команда будет доступна только для пользователей с полными правами.
Обновите конфигурацию базы данных и запустите программу в режиме "**Предприятие**". Результат работы показан на рисунке ниже.
{{ :astpanel:designer:telefon_ring.png?nolink&700 | }}
[[astpanel:designer|Обратно, к списку конфигураций...]]
===== Первый запуск =====
- Необходимо запустить 1С под учетной записью администратора 1С.
- Перейдите в раздел "**Настройки**"
- Для текущего пользователя следует перейти в "**Настройки приложения**" - "**Настройки пользователей и прав"**
- Перейти к справочнику "**Пользователи**"
- Для текущего пользователя открыть "**Персональные настройки**".
- Включите опции:
* "**Использовать СофтФон**"
* "**Панель телефонии Asterisk (МИКО)**"
* "**Использовать внутреннюю панель СофтФон**" {{ :astpanel:designer:personal_settings_ut_crm2.png?500 |}}
- Перейдите в раздел "**Администрирование**"
- Перейдите по ссылке "**Настройка параметров системы**" - "**CRM: СофтФон**", необходимо включить использование Софтфон: {{ :astpanel:designer:settings_use_softphone_ut_crm2.png?400 |}}
[[astpanel:enterprise:managed|Перейти к инструкции по настройке в режиме предприятия]]
===== Коментарии =====
~~DISQUS~~