Это старая версия документа!
Панель телефонии может работать в безинтеграцонном режиме. В этом разделе будут описаны достоинства и недостатки данного режима работы. Кроме того, будет описан способ интеграции панели на примере конфигурации УТ 10.3, что позволит использовать функционал панели в полной мере.
Самостоятельное встраивание телефонии должно производиться сотрудником строго по данной инструкции! Исполнитель инструкции должен четко понимать, что делает.
Для интеграции обработки софтфона «МИКО_SIP_Softfon_For_1С» в типовую конфигурацию 1С:Управление торговлей 10.3 необходимо выполнить ряд простых действий, описанных ниже.
Открываем 1С:Предприятие в режиме «Конфигуратор». Пользователь должен обладать «Полными правами». Первое, что нужно сделать – включить возможность изменения конфигурации. Для этого открываем меню в заданной последовательности
Далее настраиваем параметры поддержки конфигурации, как показано на рисунке.
Второе – необходимо добавить обработку «МИКО_SIP_Softfon_For_1С».
В дереве конфигурации находим узел «Обработки» и правой кнопкой мыши открываем контекстное меню, выбираем «Вставить внешнюю обработку,отчет…».
Задача: необходимо, для поиска номеров в базе использовать запрос не по временной таблице, а непосредственно по регистру сведений «КонтактнаяИнформация».
Решение: необходимо модифицировать регистр сведений «КонтактнаяИнформация»: Добавить ресурсы:
В модуле набора записей изменить процедуру:
Процедура ПередЗаписью(Отказ, Замещение) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; Для каждого Запись Из ЭтотОбъект Цикл Если НЕ ЗначениеЗаполнено(Запись.Объект) Тогда Отказ = Истина; СтрокаОтказа = "Не заполнен объект."; Продолжить; КонецЕсли; Если Запись.Объект.ЭтоГруппа Тогда Отказ = Истина; СтрокаОтказа = "Нельзя использовать в качестве объекта контактной информации - группу."; Прервать; КонецЕсли; // МИКО / 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С / КОНЕЦ КонецЦикла; Если Отказ Тогда Сообщить(СтрокаОтказа); КонецЕсли; КонецПроцедуры
После этого, добавленные ранее ресурсы, будут заполняться надлежащим образом.
Задача: необходимо, добавить возможность произвести звонок из карточки контрагента.
Решение: необходимо модифицировать форму элемента справочника «Контрагенты»:
// Обработчик события ПриОткрытии формы. // Процедура ПриОткрытии() // ... ... ... Внимание!!! Отсутствует часть исходного кода!!! // Установить печатную форму по умолчанию. РаботаСДиалогами.УстановитьКнопкуПечати(ЭтотОбъект, ЭтаФорма); // МИКО / 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С / КОНЕЦ КонецПроцедуры
добавить обработчик нажатия кнопок:
// Набор номера по заданному алгоритму // Процедура МИКО_ВыполнитьДействие(Кнопка) Действие = Кнопка.Имя; // Если НЕ MIKO_SIP_Softfon.глИспользоватьСофтФонMIKO_AjamТекущийПользователь Тогда Возврат; КонецЕсли; Если Действие = "кнМИКО_НабратьНомерИзКИ" Тогда // Позвонить по выбранному контакту ТекущаяСтрока = ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные; Если НЕ ТекущаяСтрока = Неопределено Тогда MIKO_SIP_Softfon.НабратьНомерКИ(ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные); КонецЕсли; ИначеЕсли Действие = "кнМИКО_НабратьНомерВыбравИзСписка" ТОгда // Позвонить по телефону, выбранному пользователем из списка телефонов определенных у контрагента и контактного лица СписокОбъектов = Новый Структура(); СписокОбъектов.Вставить("Контрагент", Ссылка); СписокОбъектов.Вставить("КонтактноеЛицо", ОсновноеКонтактноеЛицо); Если НЕ Ссылка = ГоловнойКонтрагент Тогда СписокОбъектов.Вставить("КонтактноеЛицо", ГоловнойКонтрагент); КонецЕсли; MIKO_SIP_Softfon.ПозвонитьВыбравТелефон(СписокОбъектов); ИначеЕсли Действие = "кнМИКО_НабратьНомерВыбравКЛ" Тогда // Позовонить выбранному контактному лицу ТекущиеДанные = ЭлементыФормы.КонтактныеЛицаКонтрагента.ТекущиеДанные; Если НЕ ТекущиеДанные = Неопределено Тогда СписокОбъектов = Новый Структура(); СписокОбъектов.Вставить("КонтактноеЛицо", ТекущиеДанные.Ссылка); MIKO_SIP_Softfon.ПозвонитьВыбравТелефон(СписокОбъектов); КонецЕсли; ИначеЕсли Действие = "УстановитьДоступностьКнопокСофтфона" Тогда MIKO_SIP_Softfon.МИКО_ОбщийМодуль.УстановитьДоступностьКнопокСофтфона(ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные, ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки, "кнМИКО_НабратьНомерИзКИ"); КонецЕсли; КонецПроцедуры
Кнопки должны быть доступны только для контактной информации с типом «Телефон»
// Обработчик события ПриАктивизацииСтроки элемента формы КонтактнаяИнформация. // НЕ Для БП 2.0 Процедура КонтактнаяИнформацияПриАктивизацииСтроки(Элемент) УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПриАктивизацииСтрокиТаблицы(Элемент, ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки.УстановитьОсновным); // МИКО / SIP Софтфон для 1С / НАЧАЛО Если НЕ MIKO_SIP_Softfon = Неопределено И MIKO_SIP_Softfon.МИКО_ОбщийМодуль.ИспользоватьСофтФон() Тогда МИКО_ВыполнитьДействие(Новый Структура("Имя","УстановитьДоступностьКнопокСофтфона")); КонецЕсли; // МИКО / SIP Софтфон для 1С / КОНЕЦ КонецПроцедуры