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

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

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


Action unknown: addtobook
astpanel:designer:ara20

Интеграция в конфигурацию "Комплексная автоматизация, ред. 2.0"

Встраивать панель телефонии стало проще! Доработка конфигурации с минимальными изменениями! Встраивание панели телефонии с помощью механизма расширений описано здесь.
  • Руководство составлено для «Комплексной автоматизации, редакции 2.0.2.90»;
  • Требуется панель телефонии версии 1.4.26.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, шаги описанные ниже являются опциональными.
2013/08/06 17:12 · nb

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

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

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

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

    .

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

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

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

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

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

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

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

  1. Откройте окно настройки поддержки и установите правило поддержки на «Объект поставщика редактируется с сохранением поддержки» для объекта:
    • ОбщийМодуль.УправлениеКонтактнойИнформациейКлиент.
  2. Откройте модуль «УправлениеКонтактнойИнформациейКлиент».
  3. В начале процедуры «ПозвонитьПоТелефону» добавьте код:
    // PT1C / Панель телефонии Asterisk / Начало
    Если НЕ сфпФормаТелефон = Неопределено Тогда
    	сфпФормаТелефон.НабратьНомерКИ(, НомерТелефона);
    	Возврат;
    КонецЕсли;
    // PT1C / Панель телефонии Asterisk / Конец

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

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

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

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

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

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

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

astpanel/designer/ara20.txt · Последние изменения: 2016/12/12 14:43 — tpor