Внимание!
Эта wiki об устаревших версиях
Документация к актуальной версии интеграции 1С и телефонии доступна по ссылке

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

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


astpanel:designer:crm

Доработка 1С:CRM

Обращаем внимание, что версия платформы 1С:Предприятие должна быть НЕ НИЖЕ 8.2.15!!!

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

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

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

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

Для начала следует разблокировать корневой объект конфигурации для внесения изменений.

Порядок действий следующий:

  1. Сперва убедитесь, что все пользователи завершили свою работу с программой. После чего запустите программу в режиме «Конфигуратор».
  2. Откройте окно настройки поддержки.
  3. Включите возможность изменения конфигурации. На предупреждение программы ответьте утвердительно.
  4. В появившемся окне укажите, что объекты поставщика не редактируются.
  5. Затем для корневого объекта конфигурации установите правило поддержки «Объект поставщика редактируется с сохранением поддержки».

Теперь конфигурация готова к внесению изменений.

2013/08/06 13:54 · nb

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

Необходимо добавить обработку «МИКО_ПанельТелефонииДля1С».

  1. В дереве метаданных находим ветку «Обработки».
  2. Правой кнопкой мыши открываем контекстное меню, выбираем «Вставить внешнюю обработку,отчет…». Добавление обработки телефонии
  3. Выбираем файл «МИКО_ПанельТелефонииДля1С.epf» из каталога дистрибутива.

Этап 3. Внесение изменений в глобальный модуль

Внесем доработки в «Модуль обычного приложения».

  1. В дереве объектом метаданных находим корневой узел.
  2. Правой кнопкой мыши открываем контекстное меню, выбираем «Открыть модуль обычного приложения».

Находим процедуру «ПриНачалеРаботыСистемы» и заменяем фрагмент исходного кода кода:

ИначеЕсли ТекАТС = Перечисления.CRM_ИспользуемыйСофтФон.СофтФонЛайт Тогда
 
		// {{doc:panel1ccrm:{ СофтФон, Лайт }}} НАЧАЛО Код встраивания в произвольную конфигурацию
		Попытка
			РарусСофтФонЛайт = Обработки.CRM_СофтФон.Создать();
			РарусСофтФонЛайт.ПодключитьСофтФон();

Следующим фрагментом:

ИначеЕсли ТекАТС = Перечисления.CRM_ИспользуемыйСофтФон.СофтФонЛайт Тогда
 
		// {{doc:panel1ccrm:{ СофтФон, Лайт }}} НАЧАЛО Код встраивания в произвольную конфигурацию
		Попытка
			// PT1C / Панель телефонии Asterisk / НАЧАЛО
			// РарусСофтФонЛайт = Обработки.CRM_СофтФон.Создать();
			РарусСофтФонЛайт = Обработки.МИКО_ПанельТелефонииДля1С.Создать();
			// PT1C / Панель телефонии Asterisk / КОНЕЦ
			РарусСофтФонЛайт.ПодключитьСофтФон();

Далее находим процедуру «ОбработкаВнешнегоСобытия(Источник, Событие, Данные)» в конце процедуры, перед надписью «КонецПроцедуры» вставляем следующий код:

// Процедура выполняет обработку внешнего события
//
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
 
	// *** *** *** //
 
	// PT1C / Панель телефонии Asterisk / Начало 
	Если Источник = "MikoAjamEvent" 
         ИЛИ Источник = "MIKO_SoftPhone"
	 ИЛИ Источник = "hWindow" Тогда
            РарусСофтФонЛайт.ОбработкаВнешнегоСобытияАстериск(Источник, Событие, Данные);
	КонецЕсли;
	// PT1C / Панель телефонии Asterisk / Конец
КонецПроцедуры

Переходим к процедуре «ПередЗавершениемРаботыСистемы(Отказ)«. Перед «КонецПроцедуры» вставляем фрагмент код:

// Процедура перед завершением работы системы
//
Процедура ПередЗавершениемРаботыСистемы(Отказ)
 
	// *** *** *** 
	// {{{ CRM Коммуникатор }}} КОНЕЦ
 
	// PT1C / Панель телефонии Asterisk / Начало
	Если Не Отказ И НЕ РарусСофтФонЛайт  = Неопределено Тогда
		РарусСофтФонЛайт.ОтключитьВК();
	КонецЕсли;
	// PT1C / Панель телефонии Asterisk / Конец
 
КонецПроцедуры
 

Регистр сведений "Контактная информация"

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

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

Этап 4. Документ "Событие"

Для возможности прослушивать запись разговора, прикрепленного к документу, необходимо модифицировать форму документа «CRM_ФормаДокумента»:

Процедура ДействияФормыCLON(Кнопка)
	// PT1C / Панель телефонии Asterisk / Начало
	Если НЕ РарусСофтФонЛайт = Неопределено
		 И ТипЗнч(РарусСофтФонЛайт) = Тип("ОбработкаОбъект.МИКО_ПанельТелефонииДля1С") Тогда
		РарусСофтФонЛайт.ПрослушатьЗаписьРазговора(CRM_GUIDЗвонка);
		Возврат;
	КонецЕсли; 
	// PT1C / Панель телефонии Asterisk / Конец
	// *** // *** // *** //		
КонецПроцедуры	

Дополнительно необходимо внести изменения в обработку установки видимости / доступности элементов формы

Процедура ВидимостьЭлементовФормы()
 
	// *** пропущена часть исходного теста *** //
	// {{{ CLON Система записи телефонных разговоров }}} НАЧАЛО
 
	// PT1C / Панель телефонии Asterisk / Начало
	//ЭлементыФормы.кнПрослушатьЗаписьТелРазговора.Видимость   = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "CLONПодключена");
	//ЭлементыФормы.кнПрослушатьЗаписьТелРазговора.Доступность = CRMПолучитьЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.CLONВозможноПрослушиваниеФайловЗаписи, Ложь, глЗначениеПеременной("глТекущийПользователь"));
	ЭлементыФормы.кнПрослушатьЗаписьТелРазговора.Видимость   = Истина;
	ЭлементыФормы.кнПрослушатьЗаписьТелРазговора.Доступность = CRMПолучитьЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.CLONВозможноПрослушиваниеФайловЗаписи, Ложь, глЗначениеПеременной("глТекущийПользователь"));
	// PT1C / Панель телефонии Asterisk / Конец
	// {{{ CLON Система записи телефонных разговоров }}} КОНЕЦ
 
КонецПроцедуры

В дальнейшем, если пользователю разрешено прослушивать записи следует назначить ему дополнительную настройку: Разрешить прослушивание разговора

Этап 5. Печатная форма

Для возможности отправить факсов сформированную печатную форму в текущий разговор, необходимо модифицировать общую печатную форму CRM_ПечатнаяФормаДокументов.

Процедура ПриОткрытии()
	// PT1C / Панель телефонии Asterisk / Начало
	PT1C_ОправитьФаксом = ЭлементыФормы.ДействияФормы.Кнопки.Вставить(7,"PT1C_ОправитьФаксом",ТипКнопкиКоманднойПанели.Действие,	"Отправить факсом текущий документ",Новый Действие("PT1C_ДействияФормы_ОправитьФаксом"));
	PT1C_ОправитьФаксом.Имя 			= "PT1C_ОправитьФаксом";
	PT1C_ОправитьФаксом.Подсказка 		= "Отправляет текущий документ факсом";
	PT1C_ОправитьФаксом.Доступность 	= Истина;
	PT1C_ОправитьФаксом.ИзменяетДанные	= Ложь;
	PT1C_ОправитьФаксом.Пояснение 		= "Отправить в ттекущий разговор факсимильное сообщение";
	PT1C_ОправитьФаксом.Картинка 		= БиблиотекаКартинок.CRM_ФаксКоммуникатор;
	// PT1C / Панель телефонии Asterisk / Конец
	// Сформеруем заголовок формы
 
Конецпроцедуры	
 
//обработчик нажатия на кнопку отправки табличного документа в текущий разговор
Процедура PT1C_ДействияФормы_ОправитьФаксом(Кнопка)
	Если НЕ РарусСофтФонЛайт = Неопределено
		 И ТипЗнч(РарусСофтФонЛайт) = Тип("ОбработкаОбъект.МИКО_ПанельТелефонииДля1С") Тогда
		РарусСофтФонЛайт.ОтправитьФаксомТабДок(ЭлементыФормы.ТабличныйДокумент);
	КонецЕсли; 
КонецПроцедуры

Этап 6. Создание роли "Телефония"

Завершаем встраивание телефонии МИКО в 1С:CRM созданием роли «МИКО_ИспользованиеСофтфона». Это необходимо сделать для настройки прав доступа пользователей, которые будут пользоваться телефонией.

  1. В дереве конфигурации находим папку «Общее» , далее «Роли» и по кнопке добавить создаем новую роль «МИКО_ИспользованиеСофтфона».
  2. В столбце «Объекты» находим обработку «МИКО_ПанельТелефонииДля1C» и в правом столбце «Права» выставляем галочки «Использовать» и «Просмотр» .
Для роли установите синоним «Использование панели телефонии Asterisk (МИКО)».

Этап 7. Права доступа "Телефония"

Перед выполнением этого шага обязательно выполните этап №6 и сохраните изменения «Конфигурация» - «Обновить конфигурацию базы данных».

Обязательно укажите для пользователя роль «Использование панели телефонии Asterisk (МИКО)». Иначе первый запуск произвести невозможно.

Если, по какой то причине, необходимо прекратить запуск панели телефонии для пользователя, то просто отключите для него роль «Использование панели телефонии Asterisk (МИКО)».

На этом доработка завершена.

Коментарии

astpanel/designer/crm.txt · Последние изменения: 2016/10/25 09:42 — apor