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

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

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


astpanel:designer:unf

Это старая версия документа!


ИНТЕГРАЦИЯ С УНФ 1.5

Что дает интеграция в сравнении с без интеграционным режимом работы?

  1. Не нужно выполнять каких-либо дополнительных действий при запуске системы. Панель телефонии начинает работу сразу после запуска 1С в свернутом виде.
  2. Работа продолжается даже после закрытия окна панели. Если поступит входящий звонок, панель отобразиться на экране.
  3. Сделать звонок можно не только из панели телефонии, но и кнопками «Позвонить», расположенными в карточках контрагентов и различных документах.

Этап 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. Добавьте роль в состав подсистемы МИКО_ПанельТелефонии.
  6. Обновите конфигурацию базы данных.
Далее можно переходить к настройке в режиме 1С:Предприятие 8, шаги описанные ниже являются опциональными.

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

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

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

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

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

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

  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. Добавление кнопки "Позвонить" на боковую панель контактной информации

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

К сожалению, конфигурация УНФ, актуальной на момент на писания статьи версии 1.4.6.19, имеет структуру не позволяющую реализовать данный механизм «красиво» с минимальными изменениями. Дальнейшая инструкция может показаться не логичной, т.к. механизмы конфигурации используются не по их прямому назначению. Результат не приносит ощутимой пользы в дополнение к предыдущему и потому не рекомендуется для повторения в реальных информационных базах. Инструкция создана исключительно для демонстрации возможностей по интеграции.

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

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

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

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

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

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

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

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

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

Данная команда будет доступна только для пользователей с полными правами. Вы можете оставить так или предусмотреть для этого отдельную роль. Не стоит добавлять доступ к этой команде в роль «МИКО_Софтфон», т.к. в этом случае все пользователи софтфона получат доступ к записям других сотрудников.

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

astpanel/designer/unf.1447853408.txt.gz · Последние изменения: 2015/11/18 13:30 — imal