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

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

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


astpanel:designer:itil

ИНТЕГРАЦИЯ ПАНЕЛИ ТЕЛЕФОНИИ В КОНФИГУРАЦИЮ ITIL

Обратно, к списку конфигураций...

  • Руководство составлено для 1С:ITIL. Управление информационными технологиями предприятия. КОРП, редакция 1.1.
  • Требуется панель телефонии версии 1.4.26.3 и выше.
Сделайте РЕЗЕРВНУЮ КОПИЮ информационной базы.

Настройка поддержки

Необходимо включить возможность изменения конфигурации.

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

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

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

Создание новых объектов

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

Настройка прав доступа

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

Изменение общих модулей

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

Изменение общих форм

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

Изменение общих команд

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

Добавление картинок

В общие картинки добавить

  1. Картинку с именем «МИКО_ЗаписьРазговора»
  2. Картинку с именем «МИКО_Телефон»
  3. Картинку с именем «МИКО_ОтправитьФакс»

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

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

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

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

Обратно, к списку конфигураций...

Первый запуск

  1. Необходимо запустить 1С под учетной записью администратора 1С.
  2. Перейдите в раздел «Администрирование» - «Пользователи и Роли»
  3. Перейти к справочнику «Пользователи»
  4. В карточке пользователя перейдите к настройкам пользователя.
  5. Включите опции:
  • «Использовать СофтФон»
  • «Панель телефонии Asterisk (МИКО)»
  • «Использовать внутреннюю панель СофтФон»
  1. Перейдите в раздел «Администрирование»
  2. Перейдите по ссылке «Форма настроек СофтФон», необходимо включить использование Софтфон:

Перейти к инструкции по настройке в режиме предприятия

Коментарии

astpanel/designer/itil.txt · Последние изменения: 2015/11/11 12:53 — imal