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

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


sip:panelobprilvstraivanie

Настройка и подключение "SIP Софтфон для 1С" в режиме "Конфигуратор"

Эта инструкция предназначена для версии 2.2.1.12 и выше. Инструкция к прошлым версиям...

Панель телефонии может работать в безинтеграцонном режиме. В этом разделе будут описаны достоинства и недостатки данного режима работы. Кроме того, будет описан способ интеграции панели на примере конфигурации УТ 10.3, что позволит использовать функционал панели в полной мере.

Достоинства безинтеграционного режима работы:

  • Не требуется изменение конфигурации. Панель может быть запущена через главное меню “Файл -Открыть”. При этом доступен практически весь функционал панели.

Особенности и ограничения:

  • Для определения контрагента по номеру телефона используется временная таблица контактной информации, эта таблица обновляется с периодичностью, указанной в настройках панели. Врменная таблица - своего рода кэш контактной информации.
  • При формировании докумнта “Событие” средстави панели телефонии не сохраняется связка звонка и события, т.е. каждый раз будет создаваться новый документ “Событие”.
  • Нет возможности набирать номер телефона контрагента из его карточки.
  • Нет возможности отправки факса в текущий разговор средствами стандартной общей формы печати.
  • Пользователю необходим расширенный набор прав: разрешить открытие внешних обработок.
Обращаем Ваше внимание, что версия платформы 1С:Предприятие должна быть НЕ НИЖЕ 8.2.15!!!

Самостоятельное встраивание телефонии должно производиться сотрудником строго по данной инструкции! Исполнитель инструкции должен четко понимать, что делает.

Для интеграции обработки софтфона «МИКО_SIP_Softfon_For_1С» в типовую конфигурацию 1С:Управление торговлей 10.3 необходимо выполнить ряд простых действий, описанных ниже.

Перед началом интеграции настоятельно рекомендуем делать РЕЗЕРВНУЮ КОПИЮ вашей конфигурации!!! При несоблюдении данной рекомендации, а так же нарушения последовательности данной инструкции, наша компания не несет ответственность за сохранность Ваших данных.
Все шаги в рамках данной инструкции должны быть выполнены последовательно!

Этап 1. Включение возможности изменения конфигурации

Открываем 1С:Предприятие в режиме «Конфигуратор». Пользователь должен обладать «Полными правами». Первое, что нужно сделать – включить возможность изменения конфигурации. Для этого открываем меню в заданной последовательности

  • «Конфигурация» - «Поддержка» - «Настройка поддержки…».

 Включение возможности изменения конфигурации

Далее настраиваем параметры поддержки конфигурации, как показано на рисунке. Настройка поддержки

Этап 2. Добавление обработки телефонии

Второе – необходимо добавить обработку «МИКО_SIP_Softfon_For_1С».

В дереве конфигурации находим узел «Обработки» и правой кнопкой мыши открываем контекстное меню, выбираем

  • «Вставить внешнюю обработку,отчет…»

 Добавление обработки телефонии

Выбираем обработку «МИКО_SIP_Softfon_For_1С.epf» из каталога дистрибутива.

После добавления обработки в дерево метаданных работа «без интеграционной» версии невозможна!

Задача: Автооткрытие панели

Далее будет описан пример интеграции панели, в котором будет предложен вариант преодоления ограничений.

Обязательно перед началом работ выполняйте резервное копирование информационной базы!

Задача: Необходимо открывать форму панели телефонии автоматически при старте 1С.

Решение:

  1. Добавим в дерево метаданных обработку «МИКО_SIP_Softfon_For_1С»
  2. Добавим в дерево метаданных новую роль:
    • Имя «МИКО_ИспользованиеСофтфона».
    • Синоним «Использование SIP Софтфона для 1С (МИКО)«.

Установить право «Администрирование данных». Эта роль необходима для возможности сохранения / восстановления настроек панели телефонии.

Установить право на чтение и использование обработки «МИКО_SIP_Softfon_For_1С».

  1. Модифицировать модуль обычного приложения

Раздел определения переменных:

Перем глОбщиеЗначения Экспорт;
// SP1C / SIP Софтфон для 1С / НАЧАЛО
// Обработка управления звонками
Перем MIKO_SIP_Softfon Экспорт;
// Эта переменная будет в дальнейшем использоваться для совершения звонков из документов и справочников // 
// SP1C / SIP Софтфон для 1С / КОНЕЦ
Перем глЗапрашиватьПодтверждениеПриЗакрытии Экспорт;

Процедуры - обработчики событий:

Процедура ПриНачалеРаботыСистемы()
 
	// ... ... ... Внимание!!! Пропущена часть кода!!! ... ... ...
 
	#Если ТолстыйКлиентОбычноеПриложение Тогда
	// SP1C / SIP Софтфон для 1С / НАЧАЛО
	// установка глобальных переменных
	Если РольДоступна("ПолныеПрава")
		 ИЛИ РольДоступна("МИКО_ИспользованиеСофтфона") Тогда
		Попытка
			MIKO_SIP_Softfon = Обработки.МИКО_SIP_Softfon_For_1С.Создать();
			MIKO_SIP_Softfon.ПодключитьСофтФон();
		Исключение
			Сообщить("Ошибка подключения ""SIP Софтфон для 1С"" (МИКО):", СтатусСообщения.ОченьВажное);
			Сообщить(ОписаниеОшибки());
		КонецПопытки; 
	КонецЕсли; 
	// SP1C / SIP Софтфон для 1С / КОНЕЦ
	#КонецЕсли
 
КонецПроцедуры // ПриНачалеРаботыСистемы()
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
 
// ... ... ... Внимание!!! Пропущена часть кода!!! ... ... ...
 
    // SP1C / SIP Софтфон для 1С / НАЧАЛО
    Если НЕ MIKO_SIP_Softfon = Неопределено 
		 И Источник = "MIKO_SoftPhone" Тогда
		MIKO_SIP_Softfon.ОбработкаВнешнегоСобытия_SIP(Источник, Событие, Данные);
    КонецЕсли; 
    // SP1C / SIP Софтфон для 1С / КОНЕЦ
 
КонецПроцедуры // ОбработкаВнешнегоСобытия()
Процедура ПередЗавершениемРаботыСистемы(Отказ)
 
	// ... ... ... Внимание!!! Пропущена часть кода!!! ... ... ...
 
	// SP1C / SIP Софтфон для 1С / НАЧАЛО
	// Завершим работу компонента
	Если НЕ Отказ И НЕ MIKO_SIP_Softfon  = Неопределено Тогда
		MIKO_SIP_Softfon.ОтключитьВК();
	КонецЕсли;
	// SP1C / SIP Софтфон для 1С / КОНЕЦ	
 
КонецПроцедуры

Документ "Событие"


Задача: необходимо хранить связку документа события с записью в истории звонков. При открытии документа события из истории, должен открываться документ сформированный ранее по этой записи.

Решение: для документа «Событие» необходимо добавить новый реквизит:

  • Имя = «CRM_GUIDЗвонка»
  • Тип = фиксированная строка 38 символов

————————————————————————————————

Задача: необходимо добавить возможность набрать номер контрагента, либо его контактного лица из формы документа.

Решение: необходимо модифицировать модуль формы документа:

// Обработчик события ПриОткрытии формы.
//
Процедура ПриОткрытии()
 
    // ... ... ... 
 
	мПоследнееЗначениеЭлементаПоискаПоСтрокеКонтрагент     = Контрагент;
	мПоследнееЗначениеЭлементаПоискаПоСтрокеКонтактноеЛицо = КонтактноеЛицо;
	мТекущаяДатаДокумента                                  = Дата;
	// SP1C / SIP Софтфон для 1С / НАЧАЛО
	Если НЕ MIKO_SIP_Softfon  = Неопределено
		 И НЕ MIKO_SIP_Softfon.мОбщийМодуль = Неопределено
		 И MIKO_SIP_Softfon.мОбщийМодуль.ИспользоватьСофтФон() Тогда
		мОбщийМодуль = MIKO_SIP_Softfon.мОбщийМодуль;
		// добавляем кнопку вызова
		мОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.ДействияФормы.Кнопки,
                                                                     "МИКО_ВыполнитьДействие", 
                                                                     "кнМИКО_НабратьНомерВыбравИзСписка");
		//															 
		Если ЭтоНовый() 
			 И ОкончаниеСобытия <= НачалоСобытия Тогда
			ОкончаниеСобытия = НачалоСобытия + 60;
		КонецЕсли; 															 
	КонецЕсли; 
	// SP1C / SIP Софтфон для 1С / КОНЕЦ
 
	Модифицированность = Ложь;
 
КонецПроцедуры  // ПриОткрытии()

добавить в форму обработчик нажатия кнопок:

// SP1C / Обработка нажатия программно добавленных кнопок
// 
Процедура МИКО_ВыполнитьДействие(Кнопка)
 	Действие = Кнопка.Имя;
	Если НЕ MIKO_SIP_Softfon = Неопределено Тогда Возврат; КонецЕсли;
 
	Если Действие = "кнМИКО_НабратьНомерВыбравИзСписка" Тогда
		// Позвонить по телефону выбранному пользователем из списка, определенных у контрагента и контактного лица
		СписокОбъектов = Новый Структура();
		СписокОбъектов.Вставить("Контрагент", Контрагент);
		СписокОбъектов.Вставить("КонтактноеЛицо", КонтактноеЛицо);
		// Данные незарегистрированных контрагентов:
		СписокОбъектов.Вставить("Событие", Ссылка);
 
		MIKO_SIP_Softfon.ПозвонитьВыбравТелефон(СписокОбъектов);
	КонецЕсли;	
КонецПроцедуры

Документ при открытии будет выглядеть следующим образом:  Документ "Соыбтие" на примере демонстрационной базы

Контактная информация


Задача: необходимо, для поиска номеров в базе использовать запрос не по временной таблице, а непосредственно по регистру сведений «КонтактнаяИнформация». Решение: необходимо модифицировать регистр сведений «КонтактнаяИнформация»: Добавить ресурсы:

  • «CRM_ПолеХраненияНомера» (число длина 32)
  • «CRM_НомерТелефона» (переменная строка 32)

В модуле набора записей изменить процедуру:

Процедура ПередЗаписью(Отказ, Замещение)
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
 
	Для каждого Запись Из ЭтотОбъект Цикл
		Если НЕ ЗначениеЗаполнено(Запись.Объект) Тогда
			Отказ = Истина;
			СтрокаОтказа = "Не заполнен объект.";
			Продолжить;
		КонецЕсли; 
		Если Запись.Объект.ЭтоГруппа Тогда
			Отказ = Истина;
			СтрокаОтказа = "Нельзя использовать в качестве объекта контактной информации - группу.";
			Прервать;
		КонецЕсли;
		// SP1C / SIP Софтфон для 1С / НАЧАЛО
		Если НЕ MIKO_SIP_Softfon = Неопределено                       
			И НЕ MIKO_SIP_Softfon.мОбработкаДанных = Неопределено
			И Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
 
			ПредставлениеНомера =   Запись.Поле1 + Запись.Поле2 +Запись.Поле3;
			глКоличествоХранимыхЦифрТелефона = MIKO_SIP_Softfon.ГлобальныеПеременные.глКоличествоХранимыхЦифрТелефона;
			мОбработкаДанных = MIKO_SIP_Softfon.мОбработкаДанных;
			Если ЗначениеЗаполнено(Запись.Поле4) И НЕ ЗначениеЗаполнено(ПредставлениеНомера) Тогда
				Запись.CRM_ПолеХраненияНомера = мОбработкаДанных.ПреобразоватьНомерДляСохранения(Запись.Поле4,  глКоличествоХранимыхЦифрТелефона);
				Запись.CRM_НомерТелефона      = мОбработкаДанных.УбратьИзНомераТелефонаВсеБуквы(Запись.Поле4);
			Иначе
				Запись.CRM_ПолеХраненияНомера = мОбработкаДанных.ПреобразоватьНомерДляСохранения(ПредставлениеНомера,  глКоличествоХранимыхЦифрТелефона);
				Запись.CRM_НомерТелефона      = мОбработкаДанных.УбратьИзНомераТелефонаВсеБуквы(ПредставлениеНомера);
			КонецЕсли;
		КонецЕсли;  
		// SP1C / SIP Софтфон для 1С / КОНЕЦ  
	КонецЦикла;
 
	Если Отказ Тогда
		Сообщить(СтрокаОтказа);
	КонецЕсли; 
 
КонецПроцедуры

После этого, добавленные ранее ресурсы, будут заполняться надлежащим образом.

Справочник "Контрагенты"


Задача: необходимо, добавить возможность произвести звонок из карточки контрагента.

Решение: необходимо модифицировать форму элемента справочника «Контрагенты»:

// Обработчик события ПриОткрытии формы.
//
Процедура ПриОткрытии()
 
	// ... ... ... Внимание!!! Отсутствует часть исходного кода!!!
 
	// Установить печатную форму по умолчанию.
	РаботаСДиалогами.УстановитьКнопкуПечати(ЭтотОбъект, ЭтаФорма);
	// SP1C / SIP Софтфон для 1С / НАЧАЛО
	Если НЕ MIKO_SIP_Softfon  = Неопределено
		 И НЕ MIKO_SIP_Softfon.мОбщийМодуль = Неопределено
		 И MIKO_SIP_Softfon.мОбщийМодуль.ИспользоватьСофтФон() Тогда
		мОбщийМодуль = MIKO_SIP_Softfon.мОбщийМодуль;
		// добавляем элементы управления на форму
		// МИКО_ОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.КоманднаяПанельФормы.Кнопки,             // **Для БП 2.0**		
		мОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.ДействияФормы.Кнопки,
                                                                    "МИКО_ВыполнитьДействие", 
                                                                    "кнМИКО_НабратьНомерВыбравИзСписка");
                // добавляем кнопку на панель действий контактной информации. НЕ ДЛЯ БП 2.0
		мОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки, // НЕ Для БП 2.0
                                                                    "МИКО_ВыполнитьДействие",                                   // НЕ Для БП 2.0
                                                                    "кнМИКО_НабратьНомерИзКИ");                                 // НЕ Для БП 2.0
		// МИКО_ОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.КоманднаяПанельКонтактныеЛица.Кнопки,    // **Для БП 2.0**                                                               
		мОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.КоманднаяПанельКонтактныеЛицаКонтрагента.Кнопки,
                                                                    "МИКО_ВыполнитьДействие", 
                                                                    "кнМИКО_НабратьНомерВыбравКЛ");
	КонецЕсли; 
	// SP1C / SIP Софтфон для 1С / КОНЕЦ
КонецПроцедуры

добавить обработчик нажатия кнопок:

// SP1C / Набор номера по заданному алгоритму
// 
Процедура МИКО_ВыполнитьДействие(Кнопка)
 	Действие = Кнопка.Имя;
	// Если НЕ MIKO_SIP_Softfon.глИспользоватьСофтФонMIKO_AjamТекущийПользователь Тогда Возврат; КонецЕсли;
 
	Если Действие = "кнМИКО_НабратьНомерИзКИ" Тогда
		// Позвонить по выбранному контакту 
		ТекущаяСтрока = ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные;
		Если НЕ ТекущаяСтрока = Неопределено Тогда
			MIKO_SIP_Softfon.НабратьНомерКИ(ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные);
		КонецЕсли; 
	ИначеЕсли Действие = "кнМИКО_НабратьНомерВыбравИзСписка"  ТОгда
		// Позвонить по телефону, выбранному пользователем из списка телефонов определенных у контрагента и контактного лица
		СписокОбъектов = Новый Структура();
		СписокОбъектов.Вставить("Контрагент", Ссылка);
		СписокОбъектов.Вставить("КонтактноеЛицо", ОсновноеКонтактноеЛицо);
		Если НЕ Ссылка = ГоловнойКонтрагент Тогда
			СписокОбъектов.Вставить("КонтактноеЛицо", ГоловнойКонтрагент);
		КонецЕсли; 
 
		MIKO_SIP_Softfon.ПозвонитьВыбравТелефон(СписокОбъектов);
	ИначеЕсли Действие = "кнМИКО_НабратьНомерВыбравКЛ" Тогда	
		// Позовонить выбранному контактному лицу
		ТекущиеДанные = ЭлементыФормы.КонтактныеЛицаКонтрагента.ТекущиеДанные;
		Если НЕ ТекущиеДанные = Неопределено Тогда
			СписокОбъектов = Новый Структура();
			СписокОбъектов.Вставить("КонтактноеЛицо", ТекущиеДанные.Ссылка);
			MIKO_SIP_Softfon.ПозвонитьВыбравТелефон(СписокОбъектов);
		КонецЕсли;
	ИначеЕсли Действие = "УстановитьДоступностьКнопокСофтфона" Тогда	
		MIKO_SIP_Softfon.мОбщийМодуль.УстановитьДоступностьКнопокСофтфона(ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные,
                                                                              ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки,
								              "кнМИКО_НабратьНомерИзКИ");
	КонецЕсли; 
 
КонецПроцедуры

Кнопки должны быть доступны только для контактной информации с типом «Телефон»

// Обработчик события ПриАктивизацииСтроки элемента формы КонтактнаяИнформация.
// НЕ Для БП 2.0
Процедура КонтактнаяИнформацияПриАктивизацииСтроки(Элемент)
 
	УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПриАктивизацииСтрокиТаблицы(Элемент, ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки.УстановитьОсновным);
	// SP1C / SIP Софтфон для 1С / НАЧАЛО
	Если НЕ MIKO_SIP_Softfon = Неопределено 
		И MIKO_SIP_Softfon.мОбщийМодуль.ИспользоватьСофтФон() Тогда
		МИКО_ВыполнитьДействие(Новый Структура("Имя","УстановитьДоступностьКнопокСофтфона"));
	КонецЕсли;
	// SP1C / SIP Софтфон для 1С / КОНЕЦ	
КонецПроцедуры

Форма элемента справочника примет следующий вид:

sip/panelobprilvstraivanie.txt · Последние изменения: 2014/11/14 22:32 (внешнее изменение)