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

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

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


sip:panelobprilvstraivanie

Различия

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

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

sip:panelobprilvstraivanie [2013/02/20 08:06]
apor [Документ Событие]
sip:panelobprilvstraivanie [2014/11/14 22:32]
Строка 1: Строка 1:
-====== Настройка и подключение "SIP Софтфон для 1С" в режиме "​Конфигуратор"​ ====== 
  
-Панель телефонии может работать в безинтеграцонном режиме. В этом разделе будут описаны достоинства и недостатки данного режима работы. Кроме того, будет описан способ интеграции панели на примере конфигурации ​ УТ 10.3, что позволит использовать функционал панели в полной мере. 
- 
-===== Достоинства безинтеграционного режима работы:​ ===== 
- 
-  * Не требуется изменение конфигурации. Панель может быть запущена через главное меню **“Файл -Открыть”**. При этом доступен практически весь функционал панели. 
-===== Особенности и ограничения:​ ===== 
- 
-  * Для определения контрагента по номеру телефона используется временная таблица контактной информации,​ эта таблица обновляется с периодичностью,​ указанной в настройках панели. Врменная таблица - своего рода кэш контактной информации. 
-  * При формировании докумнта “Событие” средстави панели телефонии не сохраняется связка звонка и события,​ т.е. каждый раз будет создаваться новый документ “Событие”. 
-  * Нет возможности набирать номер телефона контрагента из его карточки. 
-  * Нет возможности отправки факса в текущий разговор средствами стандартной общей формы печати. 
-  * Пользователю необходим расширенный набор прав: разрешить открытие внешних обработок. 
- 
-<note warning> Обращаем Ваше внимание,​ что версия платформы 1С:​Предприятие должна быть **НЕ НИЖЕ** 8.2.15!!!</​note>​ 
-Самостоятельное встраивание телефонии должно производиться сотрудником строго по данной инструкции! Исполнитель инструкции должен четко понимать,​ что делает. 
- 
-Для интеграции обработки софтфона «МИКО_SIP_Softfon_For_1С» в типовую конфигурацию 1С:​Управление торговлей 10.3 необходимо выполнить ряд простых действий,​ описанных ниже. ​ 
- 
-<note warning> Перед началом интеграции настоятельно рекомендуем делать РЕЗЕРВНУЮ КОПИЮ вашей конфигурации!!! При несоблюдении данной рекомендации,​ а так же нарушения последовательности данной инструкции,​ наша компания не несет ответственность за сохранность Ваших данных.</​note>​ 
- 
-<note warning>​Все шаги в рамках данной инструкции должны быть выполнены последовательно!</​note>​ 
- 
-===== Этап 1. Включение возможности изменения конфигурации ===== 
- 
-Открываем 1С:​Предприятие в режиме «**Конфигуратор**». Пользователь должен обладать "​Полными правами"​. 
-Первое,​ что нужно сделать – включить возможность изменения конфигурации. Для этого открываем меню в заданной последовательности ​   
-  * **«Конфигурация» - «Поддержка» - «Настройка поддержки…»**. 
- 
-{{ :​sip:​vkljuchit_vozmozhnost_izmenenija18_1.png?​nolink | Включение возможности изменения конфигурации}} 
- 
-Далее настраиваем параметры поддержки конфигурации,​ как показано на рисунке. 
-{{ :​doc:​podderzhka.jpg?​ |Настройка поддержки}} 
- 
-===== Этап 2. Добавление обработки телефонии ===== 
- 
-Второе – необходимо добавить обработку ​ «МИКО_SIP_Softfon_For_1С». 
- 
-В  дереве конфигурации находим узел «Обработки» и правой кнопкой мыши открываем контекстное меню, выбираем ​ 
-  * «**Вставить внешнюю обработку,​отчет...**» 
-{{ :​sip:​vstavit_obrabotku111_18_1.png?​nolink | Добавление обработки телефонии}} 
- 
-Выбираем обработку "​МИКО_SIP_Softfon_For_1С.epf"​ из каталога дистрибутива. 
-<note important>​После добавления обработки в дерево метаданных работа "​без интеграционной"​ версии невозможна!</​note>​ 
-===== Задача:​ Автооткрытие панели ===== 
-Далее будет описан пример интеграции панели,​ в котором будет предложен вариант преодоления ограничений. ​ 
- 
-<note important>​Обязательно перед началом работ выполняйте резервное копирование информационной базы!</​note>​ 
- 
------------------------------------------------------------------------------------------------- 
-**Задача:​** Необходимо открывать форму панели телефонии автоматически при старте 1С. 
- 
-**Решение:​** ​ 
-  - Добавим в дерево метаданных обработку **"​МИКО_SIP_Softfon_For_1С"​** 
-  - Добавим в дерево метаданных новую роль: ​ 
-    * Имя ​    ​**"​МИКО_ИспользованиеСофтфона"​**. ​ 
-    * Синоним **"​Использование SIP Софтфона для 1С (МИКО)"​**. ​ 
-Установить право "​Администрирование данных"​. Эта роль необходима для возможности сохранения / восстановления настроек панели телефонии. 
-{{ :​sip:​rolsip_1.png?​nolink |}} 
- 
-Установить право на чтение и использование обработки "​МИКО_SIP_Softfon_For_1С"​. 
-{{ :​sip:​rolsip_2.png?​nolink |}} 
- 
-  - Модифицировать модуль обычного приложения 
-Раздел определения переменных:​ 
- 
-<code 1c> 
-Перем глОбщиеЗначения Экспорт;​ 
-// МИКО / SIP Софтфон для 1С / НАЧАЛО 
-// Обработка управления звонками 
-Перем MIKO_SIP_Softfon Экспорт;​ 
-// Эта переменная будет в дальнейшем использоваться для совершения звонков из документов и справочников //  
-// МИКО / SIP Софтфон для 1С / КОНЕЦ 
-Перем глЗапрашиватьПодтверждениеПриЗакрытии Экспорт;​ 
-</​code>​ 
- 
-Процедуры - обработчики событий:​ 
- 
-<code 1c> 
-Процедура ПриНачалеРаботыСистемы() 
-  
- // ... ... ... Внимание!!! Пропущена часть кода!!! ... ... ... 
-  
- // МИКО / SIP Софтфон для 1С / НАЧАЛО 
- // установка глобальных переменных 
- Если РольДоступна("​ПолныеПрава"​) 
- ИЛИ РольДоступна("​МИКО_ИспользованиеСофтфона"​) Тогда 
- Попытка 
- MIKO_SIP_Softfon = Обработки.МИКО_SIP_Softfon_For_1С.Создать();​ 
- MIKO_SIP_Softfon.ПодключитьСофтФон();​ 
- Исключение 
- Сообщить("​Ошибка подключения ""​SIP Софтфон для 1С""​ (МИКО):",​ СтатусСообщения.ОченьВажное);​ 
- Сообщить(ОписаниеОшибки());​ 
- КонецПопытки; ​ 
- КонецЕсли; ​ 
- // МИКО / SIP Софтфон для 1С / КОНЕЦ 
-  
-КонецПроцедуры // ПриНачалеРаботыСистемы() 
-</​code>​ 
- 
-<code 1c> 
-Процедура ОбработкаВнешнегоСобытия(Источник,​ Событие,​ Данные) 
- 
-// ... ... ... Внимание!!! Пропущена часть кода!!! ... ... ... 
- 
-    // МИКО / SIP Софтфон для 1С / НАЧАЛО 
-    Если НЕ MIKO_SIP_Softfon = Неопределено ​ 
- И Источник = "​MIKO_SoftPhone"​ Тогда 
- MIKO_SIP_Softfon.ОбработкаВнешнегоСобытия_SIP(Источник,​ Событие,​ Данные);​ 
-    КонецЕсли; ​ 
-    // МИКО / SIP Софтфон для 1С / КОНЕЦ 
- 
-КонецПроцедуры // ОбработкаВнешнегоСобытия() 
-</​code>​ 
- 
-<code 1c> 
-Процедура ПередЗавершениемРаботыСистемы(Отказ) 
-  
- // ... ... ... Внимание!!! Пропущена часть кода!!! ... ... ... 
-  
- // МИКО / SIP Софтфон для 1С / НАЧАЛО 
- // Завершим работу компонента 
- Если НЕ MIKO_SIP_Softfon ​ = Неопределено Тогда 
- MIKO_SIP_Softfon.ОтключитьВК();​ 
- КонецЕсли;​ 
- // МИКО / SIP Софтфон для 1С / КОНЕЦ 
- 
-КонецПроцедуры 
-</​code>​ 
-===== Документ "​Событие"​ ===== 
- 
------------------------------------------------------------------------------------------------- 
-**Задача:​** необходимо хранить связку документа события с записью в истории звонков. При открытии документа события из истории,​ должен открываться документ сформированный ранее по этой записи. 
- 
-**Решение:​** для документа "​Событие"​ необходимо добавить новый реквизит:​ 
-  * Имя = "​**CRM_GUIDЗвонка**" ​ 
-  * Тип = **фиксированная строка 38** символов 
------------------------------------------------------------------------------------------------- 
- 
-**Задача:​** необходимо добавить возможность набрать номер контрагента,​ либо его контактного лица из формы документа. 
- 
-**Решение:​** необходимо модифицировать модуль формы документа:​ 
-<code 1c>// Обработчик события ПриОткрытии формы. 
-// 
-Процедура ПриОткрытии() 
-    ​ 
-    // ... ... ...  
-  
- мПоследнееЗначениеЭлементаПоискаПоСтрокеКонтрагент ​    = Контрагент;​ 
- мПоследнееЗначениеЭлементаПоискаПоСтрокеКонтактноеЛицо = КонтактноеЛицо;​ 
- мТекущаяДатаДокумента ​                                 = Дата; 
- // МИКО / SIP Софтфон для 1С / НАЧАЛО 
- Если НЕ MIKO_SIP_Softfon ​ = Неопределено ​ 
- И MIKO_SIP_Softfon.МИКО_ОбщийМодуль.ИспользоватьСофтФон() Тогда 
- МИКО_ОбщийМодуль = MIKO_SIP_Softfon.МИКО_ОбщийМодуль;​ 
- // добавляем кнопку вызова 
- МИКО_ОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.ДействияФормы.Кнопки,​ 
-                                                                     "​МИКО_ВыполнитьДействие", ​ 
-                                                                     "​кнМИКО_НабратьНомерВыбравИзСписка"​);​ 
- //​  ​ 
- Если ЭтоНовый() ​ 
- И ЗначениеЗаполнено(CRM_GUIDЗвонка) 
- И ОкончаниеСобытия <= НачалоСобытия Тогда 
- ОкончаниеСобытия = НачалоСобытия + 60; 
- КонецЕсли;​  ​ 
- КонецЕсли; ​ 
- // МИКО / SIP Софтфон для 1С / КОНЕЦ 
- Модифицированность = Ложь; 
- 
-КонецПроцедуры ​ // ПриОткрытии()</​code>​ 
- 
-добавить в форму обработчик нажатия кнопок:​ 
-<code 1c> 
-// Обработка нажатия программно добавленных кнопок 
-//  
-Процедура МИКО_ВыполнитьДействие(Кнопка) 
- ​ Действие = Кнопка.Имя;​ 
- Если НЕ MIKO_SIP_Softfon = Неопределено Тогда Возврат;​ КонецЕсли;​ 
-  
- Если Действие = "​кнМИКО_НабратьНомерВыбравИзСписка"​ Тогда 
- // Позвонить по телефону выбранному пользователем из списка,​ определенных у контрагента и контактного лица 
- СписокОбъектов = Новый Структура();​ 
- СписокОбъектов.Вставить("​Контрагент",​ Контрагент);​ 
- СписокОбъектов.Вставить("​КонтактноеЛицо",​ КонтактноеЛицо);​ 
- // Данные незарегистрированных контрагентов:​ 
- СписокОбъектов.Вставить("​Событие",​ Ссылка);​ 
-  
- MIKO_SIP_Softfon.ПозвонитьВыбравТелефон(СписокОбъектов);​ 
- КонецЕсли;​  
-КонецПроцедуры 
- 
-</​code>​ 
-Документ при открытии будет выглядеть следующим образом:​ 
-{{ :​sip:​dokument_sobytie_18_1.png?​nolink | Документ "​Соыбтие"​ на примере демонстрационной базы}} 
- 
-===== Контактная информация ===== 
- 
------------------------------------------------------------------------------------------------- 
-**Задача:​** необходимо,​ для поиска номеров в базе использовать запрос не по временной таблице,​ а непосредственно по регистру сведений "​КонтактнаяИнформация"​. ​ 
-**Решение:​** необходимо модифицировать регистр сведений **"​КонтактнаяИнформация"​**:​ 
-Добавить ресурсы:​ 
-  * "​**CRM_ПолеХраненияНомера**"​ (число длина 32) 
-  * "​**CRM_НомерТелефона**"​ (переменная строка 32) 
- 
-В модуле набора записей изменить процедуру:​ 
- 
-<code 1c> 
-Процедура ПередЗаписью(Отказ,​ Замещение) 
- Если ОбменДанными.Загрузка Тогда 
- Возврат;​ 
- КонецЕсли;​ 
- 
- Для каждого Запись Из ЭтотОбъект Цикл 
- Если НЕ ЗначениеЗаполнено(Запись.Объект) Тогда 
- Отказ = Истина;​ 
- СтрокаОтказа = "Не заполнен объект.";​ 
- Продолжить;​ 
- КонецЕсли; ​ 
- Если Запись.Объект.ЭтоГруппа Тогда 
- Отказ = Истина;​ 
- СтрокаОтказа = "​Нельзя использовать в качестве объекта контактной информации - группу.";​ 
- Прервать;​ 
- КонецЕсли;​ 
- // МИКО / SIP Софтфон для 1С / НАЧАЛО 
- Если НЕ MIKO_SIP_Softfon = Неопределено ​                       
-                     И НЕ MIKO_SIP_Softfon.МИКО_ОбщийМодуль = Неопределено 
-                     И Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда 
- МИКО_ПредставлениеНомера =   ​Запись.Поле1 
- +Запись.Поле2 
- +Запись.Поле3;​ 
- Если ЗначениеЗаполнено(Запись.Поле4) И НЕ ЗначениеЗаполнено(МИКО_ПредставлениеНомера) Тогда 
- Запись.CRM_ПолеХраненияНомера = MIKO_SIP_Softfon.МИКО_ОбщийМодуль.ПреобразоватьНомерДляСохранения(Запись.Поле4, ​ MIKO_SIP_Softfon.глКоличествоХранимыхЦифрТелефона);​ 
- Запись.CRM_НомерТелефона ​     = MIKO_SIP_Softfon.МИКО_ОбщийМодуль.УдалитьБуквыИзНомераТелефона ​  ​(Запись.Поле4);​ 
- Иначе 
- Запись.CRM_ПолеХраненияНомера = MIKO_SIP_Softfon.МИКО_ОбщийМодуль.ПреобразоватьНомерДляСохранения (МИКО_ПредставлениеНомера, ​ MIKO_SIP_Softfon.глКоличествоХранимыхЦифрТелефона);​ 
- Запись.CRM_НомерТелефона ​     = MIKO_SIP_Softfon.МИКО_ОбщийМодуль.УдалитьБуквыИзНомераТелефона ​   (МИКО_ПредставлениеНомера);​ 
- КонецЕсли;​ 
- КонецЕсли;  ​ 
- // МИКО / SIP Софтфон для 1С / КОНЕЦ 
- 
- КонецЦикла;​ 
-  
- Если Отказ Тогда 
- Сообщить(СтрокаОтказа);​ 
- КонецЕсли; ​ 
-  
-КонецПроцедуры 
-</​code>​ 
- 
-После этого, добавленные ранее ресурсы,​ будут заполняться надлежащим образом. 
-===== Справочник "​Контрагенты"​ ===== 
- 
------------------------------------------------------------------------------------------------- 
-**Задача:​** необходимо,​ добавить возможность произвести звонок из карточки контрагента. ​ 
- 
-**Решение:​** необходимо модифицировать форму элемента справочника "​Контрагенты":​ 
-<code 1c> 
-// Обработчик события ПриОткрытии формы. 
-// 
-Процедура ПриОткрытии() 
- 
- // ... ... ... Внимание!!! Отсутствует часть исходного кода!!! 
-  
- // Установить печатную форму по умолчанию. 
- РаботаСДиалогами.УстановитьКнопкуПечати(ЭтотОбъект,​ ЭтаФорма);​ 
- // МИКО / SIP Софтфон для 1С / НАЧАЛО 
- Если НЕ MIKO_SIP_Softfon ​ = Неопределено ​ 
- И MIKO_SIP_Softfon.МИКО_ОбщийМодуль.ИспользоватьСофтФон() Тогда 
- МИКО_ОбщийМодуль = MIKO_SIP_Softfon.МИКО_ОбщийМодуль;​ 
- // добавляем элементы управления на форму 
- // МИКО_ОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.КоманднаяПанельФормы.Кнопки, ​            // **Для БП 2.0**  
- МИКО_ОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.ДействияФормы.Кнопки,​ 
-                                                                    "​МИКО_ВыполнитьДействие", ​ 
-                                                                    "​кнМИКО_НабратьНомерВыбравИзСписка"​);​ 
-                // добавляем кнопку на панель действий контактной информации. НЕ ДЛЯ БП 2.0 
- МИКО_ОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки,​ // НЕ Для БП 2.0 
-                                                                    "​МИКО_ВыполнитьДействие", ​                                  // НЕ Для БП 2.0 
-                                                                    "​кнМИКО_НабратьНомерИзКИ"​); ​                                // НЕ Для БП 2.0 
- // МИКО_ОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.КоманднаяПанельКонтактныеЛица.Кнопки, ​   // **Для БП 2.0**                                                                
- МИКО_ОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.КоманднаяПанельКонтактныеЛицаКонтрагента.Кнопки,​ 
-                                                                    "​МИКО_ВыполнитьДействие", ​ 
-                                                                    "​кнМИКО_НабратьНомерВыбравКЛ"​);​ 
-  
- КонецЕсли; ​ 
- // МИКО / SIP Софтфон для 1С / КОНЕЦ 
-КонецПроцедуры 
-</​code>​ 
- 
-добавить обработчик нажатия кнопок:​ 
- 
-<code 1c> 
-// Набор номера по заданному алгоритму 
-//  
-Процедура МИКО_ВыполнитьДействие(Кнопка) 
- ​ Действие = Кнопка.Имя;​ 
- // Если НЕ MIKO_SIP_Softfon.глИспользоватьСофтФонMIKO_AjamТекущийПользователь Тогда Возврат;​ КонецЕсли;​ 
-  
- Если Действие = "​кнМИКО_НабратьНомерИзКИ"​ Тогда 
- // Позвонить по выбранному контакту ​ 
- ТекущаяСтрока = ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные;​ 
- Если НЕ ТекущаяСтрока = Неопределено Тогда 
- MIKO_SIP_Softfon.НабратьНомерКИ(ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные);​ 
- КонецЕсли; ​ 
- ИначеЕсли Действие = "​кнМИКО_НабратьНомерВыбравИзСписка" ​ ТОгда 
- // Позвонить по телефону,​ выбранному пользователем из списка телефонов определенных у контрагента и контактного лица 
- СписокОбъектов = Новый Структура();​ 
- СписокОбъектов.Вставить("​Контрагент",​ Ссылка);​ 
- СписокОбъектов.Вставить("​КонтактноеЛицо",​ ОсновноеКонтактноеЛицо);​ 
- Если НЕ Ссылка = ГоловнойКонтрагент Тогда 
- СписокОбъектов.Вставить("​КонтактноеЛицо",​ ГоловнойКонтрагент);​ 
- КонецЕсли; ​ 
-                                           ​ 
- MIKO_SIP_Softfon.ПозвонитьВыбравТелефон(СписокОбъектов);​ 
- ИначеЕсли Действие = "​кнМИКО_НабратьНомерВыбравКЛ"​ Тогда  
- // Позовонить выбранному контактному лицу 
- ТекущиеДанные = ЭлементыФормы.КонтактныеЛицаКонтрагента.ТекущиеДанные;​ 
- Если НЕ ТекущиеДанные = Неопределено Тогда 
- СписокОбъектов = Новый Структура();​ 
- СписокОбъектов.Вставить("​КонтактноеЛицо",​ ТекущиеДанные.Ссылка);​ 
- MIKO_SIP_Softfon.ПозвонитьВыбравТелефон(СписокОбъектов);​ 
- КонецЕсли;​ 
- ИначеЕсли Действие = "​УстановитьДоступностьКнопокСофтфона"​ Тогда  
- MIKO_SIP_Softfon.МИКО_ОбщийМодуль.УстановитьДоступностьКнопокСофтфона(ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные,​ 
-                                                                              ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки,​ 
-  ​             "​кнМИКО_НабратьНомерИзКИ"​);​ 
- КонецЕсли; ​ 
- 
-КонецПроцедуры 
-</​code>​ 
- 
-Кнопки должны быть доступны только для контактной информации с типом "​Телефон"​ 
-<code 1c> 
-// Обработчик события ПриАктивизацииСтроки элемента формы КонтактнаяИнформация. 
-// НЕ Для БП 2.0 
-Процедура КонтактнаяИнформацияПриАктивизацииСтроки(Элемент) 
-  
- УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПриАктивизацииСтрокиТаблицы(Элемент,​ ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки.УстановитьОсновным);​ 
- // МИКО / SIP Софтфон для 1С / НАЧАЛО 
- Если НЕ MIKO_SIP_Softfon = Неопределено ​ 
- И MIKO_SIP_Softfon.МИКО_ОбщийМодуль.ИспользоватьСофтФон() Тогда 
- МИКО_ВыполнитьДействие(Новый Структура("​Имя","​УстановитьДоступностьКнопокСофтфона"​));​ 
- КонецЕсли;​ 
- // МИКО / SIP Софтфон для 1С / КОНЕЦ 
-КонецПроцедуры 
-</​code>​ 
- 
-Форма элемента справочника примет следующий вид: 
-{{ :​doc:​panel1cut:​forma_kontragenta.png?​ |}} 
sip/panelobprilvstraivanie.txt · Последние изменения: 2014/11/14 22:32 (внешнее изменение)