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

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

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


Action unknown: addtobook
astpanel:designer:alfa5

Интеграция с Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ. Редакция 5

Обращаем внимание, что версия платформы 1С:Предприятие должна быть НЕ НИЖЕ 8.2.15!!!
Инструкция составлена для конфигурации Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ редакции 5.0.06.07. Для прочих редакций схема встраивания может отличаться

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

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

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

Этап 1. Предварительная настройка

Сначала необходимо выполнить настройки в режиме 1С:Предприятие по инструкции.

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

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

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

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

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

2013/08/06 13:54 · nb

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

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

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

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

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

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

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

В актуальных релизах Альфа-авто 5.1.19+ инициализацию панели телефонии перенесли в общий модуль ЛицензированиеКлиентСобытия процедуру ПослеСтартаСистемыЗащитыОбычноеПриложение(). Создание обработки панели телефонии необходимо выполнять в указанной процедуре.
ИначеЕсли ТекАТС = Перечисления.CRM_ИспользуемыйСофтФон.СофтФонПроф Тогда
			Попытка
				РарусСофтФонПроф = Обработки.CRM_СофтФонПроф.Создать();
				РарусСофтФонПроф.ПодключитьСофтФон();

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

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

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

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

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

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

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

Этап 6. Общий модуль "сфпСофтФонПроСервер"

Данный этап требуется выполнить для релиза 5.1.15.15+. Для прочих релизов может быть неактуально

Необходимо скорректировать функцию, возвращающую признак использования софтфона в конфигурации. Перейдем в общий модуль сфпСофтФонПроСервер, найдем функцию сфпИспользоватьСофтФон. Если код функции в точности соответствует коду:

Функция сфпИспользоватьСофтФон() Экспорт
	Возврат (Константы.CRM_ИспользуемыйСофтФон.Получить() = Перечисления.CRM_ИспользуемыйСофтФон.СофтФон3);
КонецФункции // сфпИспользоватьСофтФон()

то заменим его на код ниже:

Функция сфпИспользоватьСофтФон() Экспорт
	// МИКО / Панель телефонии Asterisk / НАЧАЛО
	//Возврат (Константы.CRM_ИспользуемыйСофтФон.Получить() = Перечисления.CRM_ИспользуемыйСофтФон.СофтФон3);
	Возврат (Константы.CRM_ИспользуемыйСофтФон.Получить() = Перечисления.CRM_ИспользуемыйСофтФон.СофтФон3) ИЛИ
			(Константы.CRM_ИспользуемыйСофтФон.Получить() = Перечисления.CRM_ИспользуемыйСофтФон.СофтФонПроф);
	// МИКО / Панель телефонии Asterisk / КОНЕЦ
КонецФункции // сфпИспользоватьСофтФон()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Коментарии

astpanel/designer/alfa5.txt · Последние изменения: 2020/07/28 13:44 — imal