====== Интеграция панели телефонии и журнала звонков в "Комплексная автоматизация, ред. 1.1" ======
[[astpanel:fastintegration|Обратно к перечню инструкций]]
Инструкции составлены для **конфигурации**:
* Комплексная автоматизация, редакция 1.1 (1.1.86.2)
Рекомендуемая версия **панели телефонии**: **1.2.24.12+**\\
Рекомендуемая версия **журнала звонков**: **1.0.1.15+**
===== Этап 1. Настройка правил поддержки =====
Перед началом выполнения работ обязательно сделайте **резервное копирование** конфигурации и данных!
Для начала следует разблокировать головной объект конфигурации для внесения изменений.
Порядок действий следующий:
- Убедитесь, что пользователи завершили работу с программой.
- Запустите программу в режиме //"Конфигуратор"//.
- Откройте окно настройки поддержки. {{ :doc:panel1ccrm20:support.png? |}}
- Включите возможность изменения конфигурации. На предупреждение программы ответьте утвердительно. {{ :astpanel:fastintegration:1f.png |}}
- В появившемся окне укажите, что объекты поставщика не редактируются. {{ :doc:panel1ccrm20:rules.png? |}}
- Затем для головного объекта конфигурации (//"КомплекснаяАвтоматизация"//) установите правило поддержки на //"Объект поставщика редактируется с сохранением поддержки"//. {{ :astpanel:fastintegration:2f.png |}}
- Для документа //"**Событие**"// и //"**ФормаДокумента**"// документа также установите правило поддержки на //"Объект поставщика редактируется с сохранением поддержки"//.
- Для //"**ФормаЭлемента**"// справочника //"**Контрагенты**"// установите правило поддержки на //"Объект поставщика редактируется с сохранением поддержки"//.
- Для общей формы //"**ПечатьДокументов**"// установите правило поддержки на //"Объект поставщика редактируется с сохранением поддержки"//.
- Для регистра сведений //"**ДанныеНезарегистрированныхКонтрагентов**"// установите правило поддержки на //"Объект поставщика редактируется с сохранением поддержки"//.
- Закройте окно настройки поддержки
Теперь конфигурация готова к внесению изменений.
===== Этап 2. Встраивание журнала звонков =====
- Выполните действия **"Конфигурация" - "Сравнить и объеденить с конфигурацией из файла"** {{ :astpanel:fastintegration:4f.png |}}
- Выберите файл конфигурации "**Module_Statistic_Х_Х_Х_ХХ.protect.cf**";
- Снимите флажок со всех объектов конфигурации {{ :astpanel:fastintegration:5f.png |}}
- Меню "**Действия**" - "**Отметить по подсистемам файла**" {{ :astpanel:fastintegration:6f.png |}}
- Выберите **только** те подсистемы, которые указаны на скриншоте. Выполните действие "**Установить**" {{ :astpanel:fastintegration:of.png |}}
- Выполните действие "**Выполнить**" {{ :astpanel:fastintegration:8f.png |}}
- В появившемся окне нажимаем "**Продолжить**". Сохраняем отчет сравнения/объединения нашей конфигурации с файлом. {{ :astpanel:fastintegration:9f.png |}}
- Сравнение и объединение будет завершено. {{ :astpanel:fastintegration:10f.png |}}
===== Этап 3. Встраивание панели телефонии =====
==== 1. Добавление обработки в подсистему МИКО_Телефония ====
Замените обработку МИКО_ПанельТелефонииДля1С на внешнюю, которая идет в поставке, она должна называться **МИКО_ПанельТелефонииДля1С**.{{ :astpanel:fastintegration:1231.png |}}
==== 2. Редактирование роли ====
Переименуйте роль **МИКО_Софтфон** на **МИКО_ИспользованиеСофтфона** (//Синоним: Использование панели телефонии Asterisk (МИКО)//).
При настройке прав пользователей необходимо добавить эту роль тем, кто будет работать непосредственно с телефонией.
==== 3. Правка модуля обычного приложения ====
- Откройте модуль обычного приложения.
- Определите глобальную переменную в начале модуля до раздела процедур.
// {{doc:panel1cut:{ Панель телефонии Asterisk, МИКО }}} НАЧАЛО
Перем Miko_Ajam Экспорт;// МИКО обработка управления звонками
// {{doc:panel1cut:{ Панель телефонии Asterisk, МИКО }}} КОНЕЦ
- Перейдите к процедуре «ПриНачалеРаботыСистемы». В конец процедуры вставьте код приведенный ниже. Процедура ПриНачалеРаботыСистемы()
// ... ... ... Внимание!!! Пропущена часть кода!!! ... ... ...
// {{doc:panel1cut:{ Панель телефонии Asterisk, МИКО }}} НАЧАЛО
// установка глобадьных переменных
Если РольДоступна("ПолныеПрава")
ИЛИ РольДоступна("МИКО_ИспользованиеСофтфона") Тогда
Попытка
Miko_Ajam = Обработки.МИКО_ПанельТелефонииДля1С.Создать();
Miko_Ajam.ПодключитьСофтФон();
Исключение
Сообщить("Ошибка подключения СофтФона (МИКО):", СтатусСообщения.ОченьВажное);
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
// {{doc:panel1cut:{ Панель телефонии Asterisk, МИКО }}} КОНЕЦ
КонецПроцедуры // ПриНачалеРаботыСистемы()
- Перейдите к процедуре «ОбработкаВнешнегоСобытия». В конец процедуры вставьте код приведенный ниже.
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
// ... ... ... Внимание!!! Пропущена часть кода!!! ... ... ...
// {{doc:panel1cut:{ Панель телефонии Asterisk, МИКО }}} НАЧАЛО
Если (Источник = "MikoAjamEvent"
ИЛИ Источник = "MIKO_SoftPhone"
ИЛИ Источник = "hWindow")
И НЕ Miko_Ajam = Неопределено Тогда
Miko_Ajam.ОбработкаВнешнегоСобытияАстериск(Источник, Событие, Данные);
КонецЕсли;
// {{doc:panel1cut:{ Панель телефонии Asterisk, МИКО }}} КОНЕЦ
КонецПроцедуры // ОбработкаВнешнегоСобытия()
- Перейдите к процедуре «ПередЗавершениемРаботыСистемы». В конец процедуры вставьте код приведенный ниже.Процедура ПередЗавершениемРаботыСистемы(Отказ)
// ... ... ... Внимание!!! Пропущена часть кода!!! ... ... ...
// {{doc:panel1cut:{ МИКО }}} НАЧАЛО Панель телефонии Asterisk
// Завершим работу Панель телефонии Asterisk перед выходом из предприятия
Если НЕ Отказ И НЕ Miko_Ajam = Неопределено Тогда
Miko_Ajam.ОтключитьВК();
КонецЕсли;
// {{doc:panel1cut:{ МИКО }}} КОНЕЦ Панель телефонии Asterisk
КонецПроцедуры
==== 4. Модернизация документа "Событие" ====
**Задача:** необходимо хранить связку документа события с записью в истории звонков. При открытии документа события из истории, должен открываться документ сформированный ранее по этой записи.
**Решение:** для документа "Событие" необходимо добавить новый реквизит:
* Имя = "**CRM_GUIDЗвонка**"
* Тип = **Переменная строка 300** символов
=== Прослушать запись разговора из документа "Событие" ===
**Задача:** необходимо добавить возможность прослушать запись разговора, связанного с документом "Событие", из формы документа. Кроме того необходимо добавить возможность набрать номер контрагента, либо его контактного лица из формы документа.
**Решение:** необходимо модифицировать** модуль формы документа**:
// Обработчик события ПриОткрытии формы.
//
Процедура ПриОткрытии()
// ... ... ...
мПоследнееЗначениеЭлементаПоискаПоСтрокеКонтрагент = Контрагент;
мПоследнееЗначениеЭлементаПоискаПоСтрокеКонтактноеЛицо = КонтактноеЛицо;
мТекущаяДатаДокумента = Дата;
// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} НАЧАЛО
Если НЕ Miko_Ajam = Неопределено
И НЕ Miko_Ajam.мОбщийМодуль = Неопределено Тогда
мОбщийМодуль = Miko_Ajam.мОбщийМодуль;
// добавляем кнопку вызова
мОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.ДействияФормы.Кнопки,
"МИКО_ВыполнитьДействие",
"кнМИКО_НабратьНомерВыбравИзСписка");
// добавляем кнопку прослушивания записи разговора
мОбщийМодуль.ДобавитьКнопкуПрослушиванияЗаписиНаПанельДействий(ЭлементыФормы.ДействияФормы.Кнопки,
"МИКО_ВыполнитьДействие",
"кнМИКО_ПрослушатьЗапись");
КонецЕсли;
ПодключитьОбработчикОжидания("МИКО_СформироватьСтрокуТипаВида", 1, Истина);
// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} КОНЕЦ
Модифицированность = Ложь;
КонецПроцедуры // ПриОткрытии()
добавить в форму обработчик нажатия кнопок:
// МИКО // Набор номера по заданному алгоритму
//
Процедура МИКО_ВыполнитьДействие(Кнопка)
Действие = Кнопка.Имя;
Если Miko_Ajam = Неопределено Тогда Возврат; КонецЕсли;
Если Действие = "кнМИКО_НабратьНомерВыбравИзСписка" Тогда
// Позвонить по телефону выбранному пользователем из списка, определенных у контрагента и контактного лица
СписокОбъектов = Новый Структура();
СписокОбъектов.Вставить("Контрагент", Контрагент);
СписокОбъектов.Вставить("КонтактноеЛицо", КонтактноеЛицо);
// Данные незарегистрированных контрагентов:
СписокОбъектов.Вставить("Событие", Ссылка);
Miko_Ajam.ПозвонитьВыбравТелефон(СписокОбъектов);
ИначеЕсли Действие = "кнМИКО_ПрослушатьЗапись" Тогда
Если НЕ ЗначениеЗаполнено(CRM_GUIDЗвонка) Тогда
Сообщить("К событию не прикреплено записи разговора!");
Возврат;
КонецЕсли;
// Прослушать запись разговора, прикрепленного к событию
Miko_Ajam.ПрослушатьЗаписьРазговора(CRM_GUIDЗвонка);
КонецЕсли;
КонецПроцедуры
Процедура МИКО_СформироватьСтрокуТипаВида() Экспорт
// актуально для УТ 10.3.34.2
СформироватьСтрокуТипаВида();
КонецПроцедуры // МИКО_СформироватьСтрокуТипаВида()
Документ при открытии будет выглядеть следующим образом:
{{ :doc:panel1cut:dokument_sobytie.jpg? |}}
==== 5. Модернизация справочника "Контрагенты" ====
=== Звонок из карточки Контрагента ===
**Задача:** необходимо, добавить возможность произвести звонок из карточки контрагента.
**Решение:** необходимо модифицировать форму элемента справочника "Контрагенты":
// Обработчик события ПриОткрытии формы.
//
Процедура ПриОткрытии()
// ... ... ... Внимание!!! Отсутствует часть исходного кода!!!
// Установить печатную форму по умолчанию.
РаботаСДиалогами.УстановитьКнопкуПечати(ЭтотОбъект, ЭтаФорма);
// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} НАЧАЛО
Если НЕ Miko_Ajam = Неопределено
И НЕ Miko_Ajam.мОбщийМодуль = Неопределено Тогда
мОбщийМодуль = Miko_Ajam.мОбщийМодуль;
// добавляем элементы управления на форму
мОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.ДействияФормы.Кнопки,
"МИКО_ВыполнитьДействие",
"кнМИКО_НабратьНомерВыбравИзСписка");
мОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки,
"МИКО_ВыполнитьДействие",
"кнМИКО_НабратьНомерИзКИ");
мОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.КоманднаяПанельКонтактныеЛицаКонтрагента.Кнопки,
"МИКО_ВыполнитьДействие",
"кнМИКО_НабратьНомерВыбравКЛ");
КонецЕсли;
// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} КОНЕЦ
КонецПроцедуры
добавить обработчик нажатия кнопок:
// МИКО // Набор номера по заданному алгоритму
// Параметры
// Кнопка - элемент управления формы с типом "КнопкаКоманднойПанели"
Процедура МИКО_ВыполнитьДействие(Кнопка)
Действие = Кнопка.Имя;
Если Miko_Ajam = Неопределено Тогда Возврат; КонецЕсли;
Если Действие = "кнМИКО_НабратьНомерИзКИ" Тогда
// Позвонить по выбранному контакту
ТекущаяСтрока = ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные;
Если НЕ ТекущаяСтрока = Неопределено Тогда
Miko_Ajam.НабратьНомерКИ(ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные);
КонецЕсли;
ИначеЕсли Действие = "кнМИКО_НабратьНомерВыбравИзСписка" ТОгда
// Позвонить по телефону, выбранному пользователем из списка телефонов определенных у контрагента и контактного лица
СписокОбъектов = Новый Структура();
СписокОбъектов.Вставить("Контрагент", Ссылка);
СписокОбъектов.Вставить("КонтактноеЛицо", ОсновноеКонтактноеЛицо);
Если НЕ Ссылка = ГоловнойКонтрагент Тогда
СписокОбъектов.Вставить("КонтактноеЛицо", ГоловнойКонтрагент);
КонецЕсли;
Miko_Ajam.ПозвонитьВыбравТелефон(СписокОбъектов);
ИначеЕсли Действие = "кнМИКО_НабратьНомерВыбравКЛ" Тогда
// Позовонить выбранному контактному лицу
ТекущиеДанные = ЭлементыФормы.КонтактныеЛицаКонтрагента.ТекущиеДанные;
Если НЕ ТекущиеДанные = Неопределено Тогда
СписокОбъектов = Новый Структура();
СписокОбъектов.Вставить("КонтактноеЛицо", ТекущиеДанные.Ссылка);
Miko_Ajam.ПозвонитьВыбравТелефон(СписокОбъектов);
КонецЕсли;
ИначеЕсли Действие = "УстановитьДоступностьКнопокСофтфона" Тогда
Miko_Ajam.мОбщийМодуль.УстановитьДоступностьКнопокСофтфона(ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные,
ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки,
"кнМИКО_НабратьНомерИзКИ");
КонецЕсли;
КонецПроцедуры
Кнопки должны быть доступны только для контактной информации с типом "Телефон"
// Обработчик события ПриАктивизацииСтроки элемента формы КонтактнаяИнформация.
//
Процедура КонтактнаяИнформацияПриАктивизацииСтроки(Элемент)
УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПриАктивизацииСтрокиТаблицы(Элемент, ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки.УстановитьОсновным);
// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} НАЧАЛО
Если НЕ Miko_Ajam = Неопределено
И НЕ Miko_Ajam.мОбщийМодуль = Неопределено Тогда
МИКО_ВыполнитьДействие(Новый Структура("Имя","УстановитьДоступностьКнопокСофтфона"));
КонецЕсли;
// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} КОНЕЦ
КонецПроцедуры
Форма элемента справочника примет следующий вид:
{{ :doc:panel1cut:forma_kontragenta.png? |}}
==== 6. Данные незарегистрированных контрагентов ====
В некоторых случаях удобно не регистрировать нового клиента, а сохранить его просто в документе "Событие". \\
В этом случае данные будут сохранены в регистре сведений "**ДанныеНезарегистрированныхКонтрагентов**".
В стандартном исполнении регистр не позволяет сохранить сведения по коду страны. Исправим это.
- Добавим в регистр новый **ресурс**: "**МИКО_КодСтраны**"
- Тип значения: "**строка**"
- Полнотекстовый поиск: "**Не использовать**"
- Длинна: **"10", переменная** {{ :astpanel:designer:miko_code_contry.png | Свойства ресурса регистра сведений ДанныеНезарегистрированныхКонтрагентов}}
Функцию заполнения ресурса воздет на себя панель телефонии (**поддерживается в версии 1.2.24.7+**).
==== 7. Модернизация общей формы печати документов ====
=== Отправка факсом текущего документа ===
**Задача:** необходимо, добавить возможность отправки сформированной печатной формы в виде факсимильного сообщения в текущий вызов.
**Решение:** необходимо модифицировать общую форму "ПечатьДокументов":
// Обработчик "ПриОткрытии" формы печати
//
Процедура ПриОткрытии()
ЭлементыФормы.ПолеТабличногоДокумента.ВставитьОбласть(ПечатныйДокумент.Область());
ЭлементыФормы.ПолеТабличногоДокумента.ОтображатьЗаголовки = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.ОтображатьСетку = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.Защита = Защита;
ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр = Истина;
ЭлементыФормы.ПолеТабличногоДокумента.ИмяПараметровПечати = ПечатныйДокумент.ИмяПараметровПечати;
ЭлементыФормы.ПолеТабличногоДокумента.ПовторятьПриПечатиСтроки = ПечатныйДокумент.ПовторятьПриПечатиСтроки;
// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} НАЧАЛО
Если НЕ Miko_Ajam = Неопределено
И НЕ Miko_Ajam.мОбщийМодуль = Неопределено Тогда
мОбщийМодуль = Miko_Ajam.мОбщийМодуль;
// добавляем элементы управления на форму
мОбщийМодуль.ДобавитьКнопкуОтправкиФаксаНаПанельДействий(ЭлементыФормы.КоманднаяПанельФормы.Кнопки,
"МИКО_ВыполнитьДействие",
"кнМИКО_ОтправитьФакс");
КонецЕсли;
// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} КОНЕЦ
КонецПроцедуры
добавить обработчик нажатия кнопки:
// Набор номера по заданному алгоритму
// Параметры
// Кнопка - элемент управления формы с типом "КнопкаКоманднойПанели"
Процедура МИКО_ВыполнитьДействие(Кнопка)
Действие = Кнопка.Имя;
Если Miko_Ajam = Неопределено Тогда Возврат; КонецЕсли;
Если Действие = "кнМИКО_ОтправитьФакс" Тогда
// Обработчик нажатия на кнопку отправки табличного документа в текущий разговор
Miko_Ajam.ОтправитьФаксомТабДок(ЭлементыФормы.ПолеТабличногоДокумента);
КонецЕсли;
КонецПроцедуры
Общая печатная форма примет вид:
{{ :doc:panel1cut:obschaja_forma_pechati_dokumentov.png? |}}
===== Этап 4. Завершение этапа встраивания =====
==== Сохранение изменений ====
- Обновите конфигурацию базы данных.{{ :astpanel:fastintegration:13f.png |}}
- В отобразившемся окне нажмите **Принять** {{ :astpanel:fastintegration:14f.png |}}
==== Обновление конфигурации ====
- Запустите процесс обновления конфигурации. В конфигураторе перейдите в меню "**Сервис**" - "**Параметры**", вкладка "**Запуск 1С:Предприятие**"
- В поле "**Параметры запуска**" укажите строку "**ЗапуститьОбновлениеИнформационнойБазы**" {{ :astpanel:statistic:startupdate.png?450 |}}
- Запустите 1С:Предприятие из конфигуратора "**Отладка**" - "**Начать отладку**"
- Дождитесь завершения обновления
- Удалите из параметров запуска строку "**ЗапуститьОбновлениеИнформационнойБазы**". Перезапустите 1С.
==== Завершение настройки ====
Операции требовательны к ресурсам ПК. Лучше их выполнить в нерабочее время.
- Запустите **1С Предприятие под полными правами** в пользовательском режиме
- **"Все функции" - "Обработки" - "МИКО: Заполнить индекс телефонов"**
- Выполните действие "**Заполнить коды городов**"
- Выполните действие "**Перезаполнить индекс номеров**"
На этом встраивание панели телефонии и журнала звонков в конфигурацию завершено. Теперь можно перейти к настройке продуктов в режиме 1С:Предприятие:
*[[astpanel:enterprise:ordinary#startovyj_pomoschnik| Настройка панели телефонии]]
*[[astpanel:statistic:settings| Настройка журнала звонков]]
[[astpanel:fastintegration|Обратно к перечню инструкций]]