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

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

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


Action unknown: addtobook
astpanel:designer:ut3kz

Интеграция в конфигурацию "УТ 3.1 для Казахстана)"

Руководство составлено для «Управление торговлей для Казахстана, редакция 3.1 (3.1.1.11)» и панели телефонии Asterisk 1.4.26.10 Обязательно перед работами создайте РЕЗЕРВНУЮ КОПИЮ информационной базы.

Этап 1. Настройка правил поддержки

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

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

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

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

Этап 2. Встраивание панели телефонии

Необходимо встроить внешнюю обработку (панель телефонии) в конфигурации, настроить права доступа и ее автоматический запуск в фоновом режиме.

Изменение типовых объектов

Для работы панели телефонии в фоне и ее автоматического запуска внесем изменения в модуль управляемого приложения.

  1. Откройте модуль управляемого приложения.
  2. Определите глобальную переменную в начале модуля до раздела процедур.
    // PT1C / Панель телефонии Asterisk / Начало
    Перем сфпФормаТелефон Экспорт;
    // PT1C / Панель телефонии Asterisk / Конец 
  3. Перейдите к процедуре «ПриНачалеРаботыСистемы». В конец процедуры вставьте код приведенный ниже.
            // PT1C / Панель телефонии Asterisk / Начало
    	Попытка
    		Отказ = Ложь;
    		// получим форму - основной "модуль" панели телефонии
    		сфпФормаТелефон = ПолучитьФорму("Обработка.МИКО_ПанельТелефонииДля1С.Форма.Форма");
    	Исключение
    		сфпФормаТелефон = Неопределено; //Нет прав на обработку
    	КонецПопытки;
     
    	Если НЕ сфпФормаТелефон = Неопределено Тогда
    		сфпФормаТелефон.ИнициализироватьПанельТелефонии(Истина, Отказ);
    	КонецЕсли; 
    	// проверим успешность инициализации
    	Если Отказ Тогда
    		Сообщить("Не удалось запустить ""МИКО Панель телефонии Asterisk""");
    	КонецЕсли;
            // PT1C / Панель телефонии Asterisk / Конец
  4. Перейдите к процедуре «ПриЗавершенииРаботыСистемы» (создайте процедуру, если ее нет). В конец процедуры вставьте код приведенный ниже.
    	// PT1C / Панель телефонии Asterisk / Начало
    	Если сфпФормаТелефон <> Неопределено Тогда
    		сфпФормаТелефон.ЗавершитьРаботу(Истина);
    	КонецЕсли;
    	// PT1C / Панель телефонии Asterisk / Конец

Добавление обработки и подсистемы в конфигурацию

  • Вставьте внешнюю обработку, которая идет в поставке, в конфигурацию, она должна называться МИКО_ПанельТелефонииДля1С.
  • Добавьте в обработку МИКО_ПанельТелефонииДля1С команду «Открыть»
  • Установите для созданной команды свойство «Группа» в значение «Панель навигации.Важное».
  • Далее требуется описать обработчик команды «Открыть».
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
	Если сфпФормаТелефон <> Неопределено Тогда		
		Если сфпФормаТелефон.Открыта() Тогда
			сфпФормаТелефон.Активизировать(); 
		Иначе
			сфпФормаТелефон.Открыть();
		КонецЕсли;		
	КонецЕсли;	
КонецПроцедуры
  • Создайте новую подсистему «МИКО_ПанельТелефонии» и включите в ее состав обработку МИКО_ПанельТелефонииДля1С.
  • В командном интерфейсе выполнить настройку - отключить стандартную команду запуска обрабокти

Настройка ролей

  1. Добавьте в конфигурацию новую роль МИКО_Софтфон.
  2. Снимите все отметки о правах выставляемые по умолчанию.
  3. Для обработки МИКО_ПанельТелефонииДля1С а также для команды «Открыть» отметьте все доступные права.  Права на обработку. Права на команду "Открыть"
  4. Для подсистемы МИКО_ПанельТелефонии отметьте все доступные права.
  5. Добавьте роль в состав подсистемы МИКО_ПанельТелефонии.

Добавление конфигурации в список поддерживаемых

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

Функция ОпределитьПараметрыКонфигурации() Экспорт
	// *** *** ***
	// ВНИМАНИЕ ПРОПУЩЕНА ЧАСТЬ ИСХОДНОГО КОДА
	// *** *** ***
	ИначеЕсли ТекущаяКонфигурация = "УправлениеТорговлей"
		  //Для Казахстана /Начало
		  ИЛИ ТекущаяКонфигурация = "УправлениеТорговлейДляКазахстана"
		  //Для Казахстана /Конец	  
		  ИЛИ ТекущаяКонфигурация = "УправлениеТорговлейБазовая"
		  ИЛИ ТекущаяКонфигурация = "УправлениеТорговлей_CRM_2"
		  ИЛИ ТекущаяКонфигурация = "УправлениеПредприятием"
		  ИЛИ ТекущаяКонфигурация = "УправлениеПредприятием_CRM"
		  ИЛИ ТекущаяКонфигурация = "УправлениеТорговлейДляУкраины" Тогда
		ТекущаяКонфигурация = ?(ТекущаяКонфигурация = "УправлениеТорговлейБазовая","УправлениеТорговлей",ТекущаяКонфигурация);
 
		ЭтоУТ11 	= (ТекущаяКонфигурация = "УправлениеТорговлей" 
						//Для Казахстана /Начало
						ИЛИ ТекущаяКонфигурация = "УправлениеТорговлейДляКазахстана"
						//Для Казахстана /Конец	 
				   		ИЛИ ТекущаяКонфигурация = "УправлениеТорговлейДляУкраины"
				   		ИЛИ ТекущаяКонфигурация = "УправлениеПредприятием");
	// *** *** ***
	// ВНИМАНИЕ ПРОПУЩЕНА ЧАСТЬ ИСХОДНОГО КОДА
	// *** *** ***
 
КонецФункции

Перейдите к функции «ПоддерживаемыеКонфигурации» и добавьте строку, как показано ниже:

Функция ПоддерживаемыеКонфигурации() Экспорт
 
	// *** *** ***
	// ВНИМАНИЕ ПРОПУЩЕНА ЧАСТЬ ИСХОДНОГО КОДА
	// *** *** ***
	//Для Казахстана
	Результат.Добавить("УправлениеТорговлейДляКазахстана", "Управление торговлей для Казахстана, редакция 3.1");
 
	Возврат Результат;
КонецФункции

Обновите конфигурацию базы данных.

Далее можно переходить к настройке в режиме 1С:Предприятие 8, шаги описанные ниже являются опциональными.

Этап 3. Добавление кнопки "Позвонить"

Для автоматизации набора номера телефона добавим кнопку «Позвонить» в область команд форм некоторых справочников и документов.

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

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

    .

  2. Установите свойство «Группа» в значение «Командная панель формы.Важное».
  3. Свойство «Тип параметра команды» должно иметь составной тип данных:
    • СправочникСсылка.Партнеры;
    • СправочникСсылка.Контрагенты;
    • СправочникСсылка.КонтактныеЛицаПартнеров;
    • ДокументСсылка.ТелефонныйЗвонок;
    • ДокументСсылка.ЗаказКлиента;

Для ранее созданной роли «МИКО_Софтфон» добавьте права на доступ к команде «Позвонить».

Вы может указать и другие типы объектов, в которых будет отображена команда «Позвонить». Основным критерием для выбора таких объектов является наличие табличной части «КонтактнаяИнформация», если это справочник, или реквизита «Контрагент», если это документ. В ином случае может потребоваться изменение текста модуля команды.

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

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

Обновите конфигурацию базы данных и запустите программу в режиме «Предприятие». Результат работы показан на рисунке ниже.

Этап 4. Добавление кнопки "Позвонить" на закладку контактной информации справочников

В формах некоторых справочников (например, «Контрагент») присутствует закладка «Контактная информация». Для полей адреса и электронной почты уже разработан механизм добавляющий кнопку с соответствующим действием. Добавим для поля телефон аналогичную кнопку с действием «Позвонить».

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

  1. Откройте окно настройки поддержки и установите правило поддержки на «Объект поставщика редактируется с сохранением поддержки» для объектов:
    • ОбщийМодуль.УправлениеКонтактнойИнформацией;
    • ОбщийМодуль.УправлениеКонтактнойИнформациейКлиент.
  2. Откройте модуль «УправлениеКонтактнойИнформацией» и перейдите к функции «Действие».
  3. Измените текст функции как показано ниже.
    Функция Действие(Форма, Тип, ИмяРеквизита, ГруппаДействий, КоличествоАдресов, ЕстьКомментарий = Ложь)
     
     
            МожноСоздаватьДействие = Истина;
    	Если Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда
    		Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда
    			МодульРаботаСПочтовымиСообщениями = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениями");
    			Если НЕ МодульРаботаСПочтовымиСообщениями.ДоступнаОтправкаПисем() Тогда
    				МожноСоздаватьДействие = Ложь;
    			КонецЕсли;
    		Иначе
    			МожноСоздаватьДействие = Ложь;
    		КонецЕсли;
    	КонецЕсли;
     
    	Если МожноСоздаватьДействие И ((Тип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница
    		// PT1C / Панель телефонии Asterisk / Начало
    		Или Тип = Перечисления.ТипыКонтактнойИнформации.Телефон
    		// PT1C / Панель телефонии Asterisk / Конец
    		Или Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
    		Или (Тип = Перечисления.ТипыКонтактнойИнформации.Адрес И КоличествоАдресов > 1)) Тогда
     
    		// Есть действие
    		...
     
    		Если Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
     
    			...
     
    		ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница Тогда
     
    			...
     
    		ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда
     
    			...
    		// PT1C / Панель телефонии Asterisk / Начало
    		ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
     
    			Элемент.Заголовок = НСтр("ru='Позвонить'");
    			Команда.Подсказка = НСтр("ru='Позвонить'");
    			Команда.Картинка = БиблиотекаКартинок.МИКО_Телефон;
     
    		// PT1C / Панель телефонии Asterisk / Конец
    		КонецЕсли;
     
    		...
     
    	Иначе
     
    		...
     
    	КонецЕсли;
     
    	Возврат Элемент;
     
    КонецФункции
  4. Откройте модуль «УправлениеКонтактнойИнформациейКлиент» и перейдите к функции «ПодключаемаяКоманда».
  5. Измените текст процедуры как показано ниже.
    Функция ПодключаемаяКоманда(Форма, Знач ИмяКоманды) Экспорт
     
    	...
     
    	Если КомандаКонтекстногоМеню Тогда
     
    		...
     
    	ИначеЕсли ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда
     
    			...
     
    	ИначеЕсли ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда
     
    			...
     
    	ИначеЕсли ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.ВебСтраница") Тогда
     
    			...
     
    	// PT1C / Панель телефонии Asterisk / Начало
    	ИначеЕсли ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон") Тогда
     
    		ПозвонитьПоТелефону(Форма, ИмяРеквизита);
    	// PT1C / Панель телефонии Asterisk / Конец	
     
    	КонецЕсли;
     
    	Возврат Неопределено;
    КонецФункции
  6. Затем добавьте в этот модуль процедуру «ПозвонитьПоТелефону» с текстом, расположенным по данной ссылке.

Этап 5. Добавление кнопки "Прослушать запись" в документ "Телефонный звонок"

По завершению работы помощника первоначальной настройки для документа будет создано свойство «ID_Звонок», назначение которого - хранить ссылку на запись.

Порядок действий:

  1. Добавьте в обработку МИКО_ПанельТелефонииДля1С команду «ПрослушатьЗапись» и поместите в модуль команды
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
     
    	Если сфпФормаТелефон <> Неопределено Тогда
     
    		ID_Звонок = ПолучитьИдентификаторЗвонка(ПараметрКоманды);
    		Если ID_Звонок <> Неопределено Тогда
    			сфпФормаТелефон.ПрослушатьЗвонокПоИдентификатору(ID_Звонок);
    		КонецЕсли;
     
    	КонецЕсли;
     
    КонецПроцедуры
     
    Функция ПолучитьИдентификаторЗвонка(Ссылка)
     
    	Запрос = Новый Запрос;
    	Запрос.Текст = 
    		"ВЫБРАТЬ
    		|	СобытиеДополнительныеРеквизиты.Значение,
    		|	СобытиеДополнительныеРеквизиты.ТекстоваяСтрока
    		|ИЗ
    		|	Документ.ТелефонныйЗвонок.ДополнительныеРеквизиты КАК СобытиеДополнительныеРеквизиты
    		|ГДЕ
    		|	СобытиеДополнительныеРеквизиты.Ссылка = &ДокументСсылка
    		|	И СобытиеДополнительныеРеквизиты.Свойство В
    		|			(ВЫБРАТЬ
    		|				ДополнительныеРеквизитыИСведения.Ссылка
    		|			ИЗ
    		|				ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
    		|			ГДЕ
    		|				ДополнительныеРеквизитыИСведения.Наименование = &НаименованиеДопСвойства)";
     
    	Запрос.УстановитьПараметр("НаименованиеДопСвойства", "ID_Звонок");
    	Запрос.УстановитьПараметр("ДокументСсылка", Ссылка);
     
    	РезультатЗапроса = Запрос.Выполнить();
    	Если Не РезультатЗапроса.Пустой() Тогда
    		Выборка = РезультатЗапроса.Выбрать();
    		Выборка.Следующий();
     
    		Возврат Выборка.Значение;
    	КонецЕсли;
     
    КонецФункции // ПолучитьИдентификаторЗвонка()
  2. «Группа» в значение «Командная панель формы.Важное».
  3. «Тип параметра команды» должно иметь тип данных: ДокументСсылка.Телефонный звонок.
  4. «Отображение» в значение «Картинка и текст», «Картинка» в значение «МИКО_ЗаписьРазговора».
  5. Раскройте дерево конфигурации на группе «Общие картинки» и добавьте в нее новый элемент «МИКО_ЗаписьРазговора».
  6. Загрузите в созданный объект изображение для кнопки «Прослушать запись» ().
  7. Задайте картинку для команды

Данная команда будет доступна только для пользователей с полными правами.

Обновите конфигурацию базы данных и запустите программу в режиме «Предприятие». Результат работы показан на рисунке ниже.

astpanel/designer/ut3kz.txt · Последние изменения: 2016/04/20 14:35 — icvet