====== Интеграция панели телефонии и журнала звонков в "Бухгалтерия предприятия (ред. 3.0) / 1С-АРБИС:УФФ (ред. 4.0)" ======
[[astpanel:fastintegration|Обратно к перечню инструкций]]
Инструкции составлены для **конфигураций**:
* "Бухгалтерия предприятия, редакция **3.0 (3.0.59.54)** / 1С-АРБИС:Управление фирмой-франчайзи, редакция **4.0 (4.0.11.12)**"
Рекомендуемая версия **панели телефонии**: **1.4.26.25+**\\
Рекомендуемая версия **журнала звонков**: **1.0.1.19+**
===== Этап 1. Настройка правил поддержки =====
Перед началом выполнения работ обязательно сделайте **резервное копирование** конфигурации и данных!
Для начала следует разблокировать головной объект конфигурации для внесения изменений.
Порядок действий следующий:
- Убедитесь, что пользователи завершили работу с программой.
- Запустите программу в режиме //"Конфигуратор"//.
- Откройте окно настройки поддержки. {{ :doc:panel1ccrm20:support.png? |}}
- Включите возможность изменения конфигурации. На предупреждение программы ответьте утвердительно. {{ :astpanel:fastintegration:1f.png |}}
- В появившемся окне укажите, что объекты поставщика не редактируются. {{ :doc:panel1ccrm20:rules.png? |}}
- Затем для головного объекта конфигурации (//"УправлениеФирмойФранчайзи"//) установите правило поддержки на //"Объект поставщика редактируется с сохранением поддержки"//. {{ :astpanel:fastintegration:2f.png |}}
- Для общего модуля //"**ВариантыОтчетовПереопределяемый**"// также установите правило поддержки на //"Объект поставщика редактируется с сохранением поддержки"//. {{ :astpanel:fastintegration:3f.png |}}
- Закройте окно настройки поддержки
Теперь конфигурация готова к внесению изменений.
===== Этап 2. Встраивание журнала звонков =====
- Выполните действия **"Конфигурация" - "Сравнить и объеденить с конфигурацией из файла"** {{ :astpanel:fastintegration:4f.png |}}
- Выберите файл конфигурации "**Module_Statistic_Х_Х_Х_ХХ.protect.cf**";
- Снимите флажок со всех объектов конфигурации {{ :astpanel:fastintegration:5f.png |}}
- Меню "**Действия**" - "**Отметить по подсистемам файла**" {{ :astpanel:fastintegration:6f.png |}}
- Выберите **только** те подсистемы, которые указаны на скриншоте. Выполните действие "**Установить**" {{ :astpanel:fastintegration:7f.png |}}
- Выполните действие "**Выполнить**" {{ :astpanel:fastintegration:8f.png |}}
- В появившемся окне нажимаем "**Продолжить**". Сохраняем отчет сравнения/объединения нашей конфигурации с файлом. {{ :astpanel:fastintegration:9f.png |}}
- Сравнение и объединение будет завершено. {{ :astpanel:fastintegration:10f.png |}}
==== Изменение типовых объектов ====
Для завершения этапа встраивания журнала звонков необходимо внести изменения в **общий модуль "ВариантыОтчетовПереопределяемый"**.
- Открываем общий модуль "**ВариантыОтчетовПереопределяемый**" для редактирования
- Переходим в процедуру "**ОпределитьРазделыСВариантамиОтчетов**"
- В конец процедуры добавляем строку кода: // МИКО / PT1C / Подсистема "Расширенный журнал звонков" / Начало
Разделы.Добавить(Метаданные.Подсистемы.МИКО_Телефония);
// МИКО / PT1C / Подсистема "Расширенный журнал звонков" / Конец
- Перейдите в модуль команды **МИКО_стПанельОтчетовИсторияЗвонков**
- Перейдите в **процедуру** **ОбработкаКоманды**
- Внесите соответствующие изменения: &НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
Если ЕстьМодульБСП() Тогда
Попытка
ОбщийМодуль_ВариантыОтчетовКлиент = Вычислить("ВариантыОтчетовКлиент");
Если ОбщийМодуль_ВариантыОтчетовКлиент <> Неопределено Тогда
// МИКО / PT1C / Оставляем два параметра процедуры
ОбщийМодуль_ВариантыОтчетовКлиент.ПоказатьПанельОтчетов("МИКО_Телефония", ПараметрыВыполненияКоманды);
КонецЕсли;
Исключение
ЗаписатьОшибкуВЖурналРегистрации(""+ОписаниеОшибки());
КонецПопытки;
Иначе
ОткрытьФорму("Отчет.МИКО_стПанельОтчетов.Форма.ФормаОтчета");
КонецЕсли;
КонецПроцедуры
===== Этап 3. Встраивание панели телефонии =====
==== 1. Добавление обработки в подсистему МИКО_Телефония ====
Замените обработку МИКО_ПанельТелефонииДля1С на внешнюю, которая идет в поставке, она должна называться **МИКО_ПанельТелефонииДля1С**.{{ :astpanel:fastintegration:1231.png |}}
==== 2. Правка модуля управляемого приложения ====
- Откройте модуль управляемого приложения. {{ :doc:korenconf.png |}}
- Определите глобальную переменную в начале модуля до раздела процедур. // PT1C / Панель телефонии Asterisk / Начало
Перем сфпФормаТелефон Экспорт;
// PT1C / Панель телефонии Asterisk / Конец
- Перейдите к процедуре //"ПриНачалеРаботыСистемы"//. В конец процедуры вставьте код приведенный ниже.
// PT1C / Панель телефонии Asterisk / Начало
Попытка
Отказ = Ложь;
// получим форму - основной "модуль" панели телефонии
сфпФормаТелефон = ПолучитьФорму("Обработка.МИКО_ПанельТелефонииДля1С.Форма.Форма");
Исключение
сфпФормаТелефон = Неопределено; //Нет прав на обработку
КонецПопытки;
Если НЕ сфпФормаТелефон = Неопределено Тогда
сфпФормаТелефон.ИнициализироватьПанельТелефонии(Истина, Отказ);
КонецЕсли;
// проверим успешность инициализации
Если Отказ Тогда
Сообщить("Не удалось запустить ""МИКО Панель телефонии Asterisk""");
КонецЕсли;
// PT1C / Панель телефонии Asterisk / Конец
- Перейдите к процедуре //"ПередЗавершениемРаботыСистемы"// (создайте процедуру, если ее нет). В конец процедуры вставьте код приведенный ниже.
// PT1C / Панель телефонии Asterisk / Начало
Если Отказ = Ложь И сфпФормаТелефон <> Неопределено Тогда
сфпФормаТелефон.ЗавершитьРаботу();
КонецЕсли;
// PT1C / Панель телефонии Asterisk / Конец
===== Этап 4. Доработка справочника "Контрагенты" =====
- Добавьте в справочник реквизит **PT1C_ОсновнойМенеджер** (//синоним Основной менеджер//). Тип **СправочникСсылка.Пользователи**.
- В **форму элемента** справочника в **конец** процедуры **ПриСозданииНаСервере** добавьте фрагмент кода:
// PT1C / Начало
pt1c_Элемент = Элементы.Вставить("PT1C_ОсновнойМенеджер", Тип("ПолеФормы"),,);
pt1c_Элемент.ПутьКДанным = "Объект.PT1C_ОсновнойМенеджер";
pt1c_Элемент.Вид = ВидПоляФормы.ПолеВвода;
pt1c_Элемент.Заголовок = "Ответственный менеджер";
// PT1C / Конец
===== Этап 5. Редактирование команды "Позвонить" =====
- Откройте для редактирования в обработке **МИКО_ПанельТелефонииДля1С** команду **"Позвонить"** и замените модуль команды
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПанельАктивна = Ложь;
Попытка
ФормаПанелиТелефонии = Вычислить("сфпФормаТелефон");
ПанельАктивна = ФормаПанелиТелефонии <> Неопределено;
Исключение
КонецПопытки;
Если ФормаПанелиТелефонии = Неопределено Тогда
Попытка
ФормаПанелиТелефонии = Вычислить("сфпФормаТелефонВнешняяПанель");
ПанельАктивна = ФормаПанелиТелефонии <> Неопределено;
Исключение
КонецПопытки;
КонецЕсли;
Если ФормаПанелиТелефонии = Неопределено Тогда
Попытка
ФормаПанелиТелефонии = Вычислить("сфпПанельУправления");
ПанельАктивна = ФормаПанелиТелефонии <> Неопределено;
Исключение
КонецПопытки;
КонецЕсли;
Если ПанельАктивна Тогда
СписокУчастников = ПолучитьСсылкуНаУчастникаИзДокумента(ПараметрКоманды);
Если СписокУчастников <> Неопределено Тогда
ФормаПанелиТелефонии.ПозвонитьВыбравТелефон(СписокУчастников);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// Для документов будет возвращено значение реквизита "Контрагент"
// Для справочников - возвращается ссылка на элемент
// В случае ошибки возвращается "Неопределено"
//
Функция ПолучитьСсылкуНаУчастникаИзДокумента(Знач Ссылка) Экспорт
Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда
МассивОбъектов = Новый Массив(1);
МассивОбъектов[0] = Ссылка;
Возврат МассивОбъектов;
ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда
МассивОбъектов = Новый Массив;
ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "Контрагент");
ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "КонтактноеЛицо");
ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "Организация");
ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "Сотрудник");
Возврат МассивОбъектов;
КонецЕсли;
КонецФункции // ПолучитьСсылкуНаУчастникаИзДокумента()
// Получате значение раквизита, если значение заполнено - добавляет его в массив.
//
Функция ДобавитьЗначениеРеквизитаВМассив(Знач Ссылка, Массив, ИмяРеквизита) Экспорт
Если Ссылка.Метаданные().Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
Если ЗначениеЗаполнено(Ссылка[ИмяРеквизита]) Тогда
Массив.Добавить(Ссылка[ИмяРеквизита]);
КонецЕсли;
Возврат Истина;
КонецФункции // ДобавитьЗначениеРеквизитаВМассив()
.
- Свойство **"Тип параметра команды"** должно иметь составной тип данных:
* **СправочникСсылка.КонтактныеЛица**;
* **ДокументСсылка.АРБИС_ПутевойЛист**;
* **СправочникСсылка.Контрагенты**;
* **ДокументСсылка.АРБИС_Сделка**;
* **СправочникСсылка.Пользователи**;
* **СправочникСсылка.Организации**;
* **ДокументСсылка.АРБИС_Событие**.
===== Этап 6. Редактирование команды "Прослушать запись" =====
- Добавьте в документ "**АРБИС_Событие**" реквизит **PT1C_ID_Звонок** (//синоним id звонок//). Тип **Строка**, длина 32.
- Откройте для редактирования в обработке **МИКО_ПанельТелефонииДля1С** команду "**ПрослушатьЗапись**" и замените в модуле команды код
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПанельАктивна = Ложь;
Попытка
ФормаПанелиТелефонии = Вычислить("сфпФормаТелефон");
ПанельАктивна = ФормаПанелиТелефонии <> Неопределено;
Исключение
КонецПопытки;
Если ФормаПанелиТелефонии = Неопределено Тогда
Попытка
ФормаПанелиТелефонии = Вычислить("сфпФормаТелефонВнешняяПанель");
ПанельАктивна = ФормаПанелиТелефонии <> Неопределено;
Исключение
КонецПопытки;
КонецЕсли;
Если ФормаПанелиТелефонии = Неопределено Тогда
Попытка
ФормаПанелиТелефонии = Вычислить("сфпПанельУправления");
ПанельАктивна = ФормаПанелиТелефонии <> Неопределено;
Исключение
КонецПопытки;
КонецЕсли;
Если ПанельАктивна Тогда
ДокументСобытиеНазвание = ФормаПанелиТелефонии.ИмяДокументСобытие();
ID_Звонок = ПолучитьИдентификаторЗвонка(ПараметрКоманды, ДокументСобытиеНазвание);
Если ID_Звонок <> Неопределено Тогда
ФормаПанелиТелефонии.ПрослушатьЗвонокПоИдентификатору(ID_Звонок);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция ПолучитьИдентификаторЗвонка(Ссылка, ДокументСобытиеНазвание)
Возврат Ссылка.PT1C_ID_Звонок;
КонецФункции // ПолучитьИдентификаторЗвонка()
- "**Тип параметра команды**" должно иметь тип данных: **ДокументСсылка.АРБИС_Событие**.
===== Этап 7. Завершение этапа встраивания =====
==== Сохранение изменений ====
- Обновите конфигурацию базы данных.{{ :astpanel:fastintegration:13f.png |}}
- В отобразившемся окне нажмите **Принять** {{ :astpanel:fastintegration:14f.png |}}
==== Обновление конфигурации ====
- Запустите процесс обновления конфигурации. В конфигураторе перейдите в меню "**Сервис**" - "**Параметры**", вкладка "**Запуск 1С:Предприятие**"
- В поле "**Параметры запуска**" укажите строку "**ЗапуститьОбновлениеИнформационнойБазы**" {{ :astpanel:statistic:startupdate.png?450 |}}
- Запустите 1С:Предприятие из конфигуратора "**Отладка**" - "**Начать отладку**"
- Дождитесь завершения обновления
- Удалите из параметров запуска строку "**ЗапуститьОбновлениеИнформационнойБазы**". Перезапустите 1С.
==== Завершение настройки ====
Операции требовательны к ресурсам ПК. Лучше их выполнить в нерабочее время.
- Запустите **1С Предприятие под полными правами** в пользовательском режиме
- **"Все функции" - "Обработки" - "МИКО: Заполнить индекс телефонов"**
- Выполните действие "**Заполнить коды городов**"
- Выполните действие "**Перезаполнить индекс номеров**"
На этом встраивание панели телефонии и журнала звонков в конфигурацию завершено. Теперь можно перейти к настройке продуктов в режиме 1С:Предприятие:
*[[astpanel:enterprise:managed#pervyj_zapusk| Настройка панели телефонии]]
*[[astpanel:statistic:settings| Настройка журнала звонков]]
[[astpanel:fastintegration|Обратно к перечню инструкций]]