Рекомендуемая версия панели телефонии: 1.4.26.25+
Рекомендуемая версия журнала звонков: 1.0.1.19+
Для начала следует разблокировать головной объект конфигурации для внесения изменений.
Порядок действий следующий:
Теперь конфигурация готова к внесению изменений.
Для завершения этапа встраивания журнала звонков необходимо внести изменения в общий модуль «ВариантыОтчетовПереопределяемый».
// МИКО / PT1C / Подсистема "Расширенный журнал звонков" / Начало Разделы.Добавить(Метаданные.Подсистемы.МИКО_Телефония); // МИКО / PT1C / Подсистема "Расширенный журнал звонков" / Конец
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) Если ЕстьМодульБСП() Тогда Попытка ОбщийМодуль_ВариантыОтчетовКлиент = Вычислить("ВариантыОтчетовКлиент"); Если ОбщийМодуль_ВариантыОтчетовКлиент <> Неопределено Тогда // МИКО / PT1C / Оставляем два параметра процедуры ОбщийМодуль_ВариантыОтчетовКлиент.ПоказатьПанельОтчетов("МИКО_Телефония", ПараметрыВыполненияКоманды); КонецЕсли; Исключение ЗаписатьОшибкуВЖурналРегистрации(""+ОписаниеОшибки()); КонецПопытки; Иначе ОткрытьФорму("Отчет.МИКО_стПанельОтчетов.Форма.ФормаОтчета"); КонецЕсли; КонецПроцедуры
Замените обработку МИКО_ПанельТелефонииДля1С на внешнюю, которая идет в поставке, она должна называться МИКО_ПанельТелефонииДля1С.
// PT1C / Панель телефонии Asterisk / Начало Перем сфпФормаТелефон Экспорт; // PT1C / Панель телефонии Asterisk / Конец
// PT1C / Панель телефонии Asterisk / Начало Попытка Отказ = Ложь; // получим форму - основной "модуль" панели телефонии сфпФормаТелефон = ПолучитьФорму("Обработка.МИКО_ПанельТелефонииДля1С.Форма.Форма"); Исключение сфпФормаТелефон = Неопределено; //Нет прав на обработку КонецПопытки; Если НЕ сфпФормаТелефон = Неопределено Тогда сфпФормаТелефон.ИнициализироватьПанельТелефонии(Истина, Отказ); КонецЕсли; // проверим успешность инициализации Если Отказ Тогда Сообщить("Не удалось запустить ""МИКО Панель телефонии Asterisk"""); КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец
// PT1C / Панель телефонии Asterisk / Начало Если Отказ = Ложь И сфпФормаТелефон <> Неопределено Тогда сфпФормаТелефон.ЗавершитьРаботу(); КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец
// PT1C / Начало pt1c_Элемент = Элементы.Вставить("PT1C_ОсновнойМенеджер", Тип("ПолеФормы"),,); pt1c_Элемент.ПутьКДанным = "Объект.PT1C_ОсновнойМенеджер"; pt1c_Элемент.Вид = ВидПоляФормы.ПолеВвода; pt1c_Элемент.Заголовок = "Ответственный менеджер"; // PT1C / Конец
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ПанельАктивна = Ложь; Попытка ФормаПанелиТелефонии = Вычислить("сфпФормаТелефон"); ПанельАктивна = ФормаПанелиТелефонии <> Неопределено; Исключение КонецПопытки; Если ФормаПанелиТелефонии = Неопределено Тогда Попытка ФормаПанелиТелефонии = Вычислить("сфпФормаТелефонВнешняяПанель"); ПанельАктивна = ФормаПанелиТелефонии <> Неопределено; Исключение КонецПопытки; КонецЕсли; Если ФормаПанелиТелефонии = Неопределено Тогда Попытка ФормаПанелиТелефонии = Вычислить("сфпПанельУправления"); ПанельАктивна = ФормаПанелиТелефонии <> Неопределено; Исключение КонецПопытки; КонецЕсли; Если ПанельАктивна Тогда СписокУчастников = ПолучитьСсылкуНаУчастникаИзДокумента(ПараметрКоманды); Если СписокУчастников <> Неопределено Тогда ФормаПанелиТелефонии.ПозвонитьВыбравТелефон(СписокУчастников); КонецЕсли; КонецЕсли; КонецПроцедуры // Для документов будет возвращено значение реквизита "Контрагент" // Для справочников - возвращается ссылка на элемент // В случае ошибки возвращается "Неопределено" // Функция ПолучитьСсылкуНаУчастникаИзДокумента(Знач Ссылка) Экспорт Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда МассивОбъектов = Новый Массив(1); МассивОбъектов[0] = Ссылка; Возврат МассивОбъектов; ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда МассивОбъектов = Новый Массив; ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "Контрагент"); ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "КонтактноеЛицо"); ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "Организация"); ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "Сотрудник"); Возврат МассивОбъектов; КонецЕсли; КонецФункции // ПолучитьСсылкуНаУчастникаИзДокумента() // Получате значение раквизита, если значение заполнено - добавляет его в массив. // Функция ДобавитьЗначениеРеквизитаВМассив(Знач Ссылка, Массив, ИмяРеквизита) Экспорт Если Ссылка.Метаданные().Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда Возврат Ложь; КонецЕсли; Если ЗначениеЗаполнено(Ссылка[ИмяРеквизита]) Тогда Массив.Добавить(Ссылка[ИмяРеквизита]); КонецЕсли; Возврат Истина; КонецФункции // ДобавитьЗначениеРеквизитаВМассив()
.
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ПанельАктивна = Ложь; Попытка ФормаПанелиТелефонии = Вычислить("сфпФормаТелефон"); ПанельАктивна = ФормаПанелиТелефонии <> Неопределено; Исключение КонецПопытки; Если ФормаПанелиТелефонии = Неопределено Тогда Попытка ФормаПанелиТелефонии = Вычислить("сфпФормаТелефонВнешняяПанель"); ПанельАктивна = ФормаПанелиТелефонии <> Неопределено; Исключение КонецПопытки; КонецЕсли; Если ФормаПанелиТелефонии = Неопределено Тогда Попытка ФормаПанелиТелефонии = Вычислить("сфпПанельУправления"); ПанельАктивна = ФормаПанелиТелефонии <> Неопределено; Исключение КонецПопытки; КонецЕсли; Если ПанельАктивна Тогда ДокументСобытиеНазвание = ФормаПанелиТелефонии.ИмяДокументСобытие(); ID_Звонок = ПолучитьИдентификаторЗвонка(ПараметрКоманды, ДокументСобытиеНазвание); Если ID_Звонок <> Неопределено Тогда ФормаПанелиТелефонии.ПрослушатьЗвонокПоИдентификатору(ID_Звонок); КонецЕсли; КонецЕсли; КонецПроцедуры Функция ПолучитьИдентификаторЗвонка(Ссылка, ДокументСобытиеНазвание) Возврат Ссылка.PT1C_ID_Звонок; КонецФункции // ПолучитьИдентификаторЗвонка()
На этом встраивание панели телефонии и журнала звонков в конфигурацию завершено. Теперь можно перейти к настройке продуктов в режиме 1С:Предприятие: