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

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

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


astpanel:fastintegration:upp13

Интеграция панели телефонии и журнала звонков в "Управление производственным предприятием, 1.3"

Обратно к перечню инструкций

Инструкции составлены для конфигурации:
  • Управление производственным предприятием, редакция 1.3 (1.3.92.3)

Рекомендуемая версия панели телефонии: 1.2.24.12+
Рекомендуемая версия журнала звонков: 1.0.1.15+

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

Перед началом выполнения работ обязательно сделайте резервное копирование конфигурации и данных!

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

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

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

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

Этап 2. Встраивание журнала звонков

  1. Выполните действия «Конфигурация» - «Сравнить и объеденить с конфигурацией из файла»
  2. Выберите файл конфигурации «Module_Statistic_Х_Х_Х_ХХ.protect.cf»;
  3. Снимите флажок со всех объектов конфигурации
  4. Меню «Действия» - «Отметить по подсистемам файла»
  5. Выберите только те подсистемы, которые указаны на скриншоте. Выполните действие «Установить»
  6. Выполните действие «Выполнить»
  7. В появившемся окне нажимаем «Продолжить». Сохраняем отчет сравнения/объединения нашей конфигурации с файлом.
  8. Сравнение и объединение будет завершено

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

1. Добавление обработки в подсистему МИКО_Телефония

Замените обработку МИКО_ПанельТелефонииДля1С на внешнюю, которая идет в поставке, она должна называться МИКО_ПанельТелефонииДля1С.

2. Редактирование роли

Переименуйте роль МИКО_Софтфон на МИКО_ИспользованиеСофтфона (Синоним: Использование панели телефонии Asterisk (МИКО)).

При настройке прав пользователей необходимо добавить эту роль тем, кто будет работать непосредственно с телефонией.

3. Правка модуля обычного приложения

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

4. Модернизация документа "Событие"

Задача: необходимо хранить связку документа события с записью в истории звонков. При открытии документа события из истории, должен открываться документ сформированный ранее по этой записи.

Решение: для документа «Событие» необходимо добавить новый реквизит:

  • Имя = «CRM_GUIDЗвонка»
  • Тип = Переменная строка 300 символов

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

Задача: необходимо добавить возможность прослушать запись разговора, связанного с документом «Событие», из формы документа. Кроме того необходимо добавить возможность набрать номер контрагента, либо его контактного лица из формы документа.

Решение: необходимо модифицировать модуль формы документа:

// Обработчик события ПриОткрытии формы.
//
Процедура ПриОткрытии()
 
    // ... ... ... 
 
	мПоследнееЗначениеЭлементаПоискаПоСтрокеКонтрагент     = Контрагент;
	мПоследнееЗначениеЭлементаПоискаПоСтрокеКонтактноеЛицо = КонтактноеЛицо;
	мТекущаяДатаДокумента                                  = Дата;
	// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} НАЧАЛО
	Если НЕ Miko_Ajam = Неопределено
		 И  НЕ Miko_Ajam.мОбщийМодуль = Неопределено Тогда
		мОбщийМодуль = Miko_Ajam.мОбщийМодуль;
		// добавляем кнопку вызова
		мОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.ДействияФормы.Кнопки,
														  "МИКО_ВыполнитьДействие", 
                                                          "кнМИКО_НабратьНомерВыбравИзСписка");
		// добавляем кнопку прослушивания записи разговора
		мОбщийМодуль.ДобавитьКнопкуПрослушиванияЗаписиНаПанельДействий(ЭлементыФормы.ДействияФормы.Кнопки,
                                                                       "МИКО_ВыполнитьДействие", 
                                                                       "кнМИКО_ПрослушатьЗапись");
	КонецЕсли; 
	ПодключитьОбработчикОжидания("МИКО_СформироватьСтрокуТипаВида", 1, Истина);
	// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} КОНЕЦ	
	Модифицированность = Ложь;
 
КонецПроцедуры  // ПриОткрытии()

добавить в форму обработчик нажатия кнопок:

// МИКО // Набор номера по заданному алгоритму
// 
Процедура МИКО_ВыполнитьДействие(Кнопка)
 	Действие = Кнопка.Имя;
	Если Miko_Ajam = Неопределено Тогда Возврат; КонецЕсли;
 
	Если Действие = "кнМИКО_НабратьНомерВыбравИзСписка" Тогда
		// Позвонить по телефону выбранному пользователем из списка, определенных у контрагента и контактного лица
		СписокОбъектов = Новый Структура();
		СписокОбъектов.Вставить("Контрагент", Контрагент);
		СписокОбъектов.Вставить("КонтактноеЛицо", КонтактноеЛицо);
		// Данные незарегистрированных контрагентов:
		СписокОбъектов.Вставить("Событие", Ссылка);
 
		Miko_Ajam.ПозвонитьВыбравТелефон(СписокОбъектов);
	ИначеЕсли Действие = "кнМИКО_ПрослушатьЗапись" Тогда
		Если НЕ ЗначениеЗаполнено(CRM_GUIDЗвонка) Тогда
			Сообщить("К событию не прикреплено записи разговора!");
			Возврат;
		КонецЕсли;
		// Прослушать запись разговора, прикрепленного к событию
		Miko_Ajam.ПрослушатьЗаписьРазговора(CRM_GUIDЗвонка);
	КонецЕсли;	
КонецПроцедуры
 
Процедура МИКО_СформироватьСтрокуТипаВида() Экспорт
	// актуально для УТ 10.3.34.2
	СформироватьСтрокуТипаВида();	
КонецПроцедуры // МИКО_СформироватьСтрокуТипаВида()

Документ при открытии будет выглядеть следующим образом:

5. Данные незарегистрированных контрагентов

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

В стандартном исполнении регистр не позволяет сохранить сведения по коду страны. Исправим это.

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

Функцию заполнения ресурса воздет на себя панель телефонии (поддерживается в версии 1.2.24.7+).

6. Модернизация справочника "Контрагенты"

Звонок из карточки Контрагента

Задача: необходимо, добавить возможность произвести звонок из карточки контрагента

Решение: необходимо модифицировать форму элемента справочника «Контрагенты»:

// Обработчик события ПриОткрытии формы.
//
Процедура ПриОткрытии()
 
	// ... ... ... Внимание!!! Отсутствует часть исходного кода!!!
 
	// Установить печатную форму по умолчанию.
	РаботаСДиалогами.УстановитьКнопкуПечати(ЭтотОбъект, ЭтаФорма);
	// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} НАЧАЛО
	Если НЕ Miko_Ajam = Неопределено 
		 И НЕ Miko_Ajam.мОбщийМодуль = Неопределено Тогда
		мОбщийМодуль = Miko_Ajam.мОбщийМодуль;
		// добавляем элементы управления на форму
 
		мОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.ДействияФормы.Кнопки,
                                                          "МИКО_ВыполнитьДействие", 
                                                          "кнМИКО_НабратьНомерВыбравИзСписка");
		мОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки,
                                                          "МИКО_ВыполнитьДействие",
                                                          "кнМИКО_НабратьНомерИзКИ");
		мОбщийМодуль.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭлементыФормы.КоманднаяПанельКонтактныеЛицаКонтрагента.Кнопки,
                                                          "МИКО_ВыполнитьДействие", 
                                                          "кнМИКО_НабратьНомерВыбравКЛ");
	КонецЕсли; 
	// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} КОНЕЦ	
КонецПроцедуры

добавить обработчик нажатия кнопок:

// МИКО // Набор номера по заданному алгоритму
// Параметры 
//   Кнопка - элемент управления формы с типом "КнопкаКоманднойПанели"
Процедура МИКО_ВыполнитьДействие(Кнопка)
 	Действие = Кнопка.Имя;
	Если Miko_Ajam = Неопределено Тогда Возврат; КонецЕсли;
 
	Если Действие = "кнМИКО_НабратьНомерИзКИ" Тогда
		// Позвонить по выбранному контакту 
		ТекущаяСтрока = ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные;
		Если НЕ ТекущаяСтрока = Неопределено Тогда
			Miko_Ajam.НабратьНомерКИ(ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные);
		КонецЕсли; 
	ИначеЕсли Действие = "кнМИКО_НабратьНомерВыбравИзСписка"  ТОгда
		// Позвонить по телефону, выбранному пользователем из списка телефонов определенных у контрагента и контактного лица
		СписокОбъектов = Новый Структура();
		СписокОбъектов.Вставить("Контрагент", Ссылка);
		СписокОбъектов.Вставить("КонтактноеЛицо", ОсновноеКонтактноеЛицо);
		Если НЕ Ссылка = ГоловнойКонтрагент Тогда
			СписокОбъектов.Вставить("КонтактноеЛицо", ГоловнойКонтрагент);
		КонецЕсли; 
 
		Miko_Ajam.ПозвонитьВыбравТелефон(СписокОбъектов);
	ИначеЕсли Действие = "кнМИКО_НабратьНомерВыбравКЛ" Тогда	
		// Позовонить выбранному контактному лицу
		ТекущиеДанные = ЭлементыФормы.КонтактныеЛицаКонтрагента.ТекущиеДанные;
		Если НЕ ТекущиеДанные = Неопределено Тогда
			СписокОбъектов = Новый Структура();
			СписокОбъектов.Вставить("КонтактноеЛицо", ТекущиеДанные.Ссылка);
			Miko_Ajam.ПозвонитьВыбравТелефон(СписокОбъектов);
		КонецЕсли;
	ИначеЕсли Действие = "УстановитьДоступностьКнопокСофтфона" Тогда	
		Miko_Ajam.мОбщийМодуль.УстановитьДоступностьКнопокСофтфона(ЭлементыФормы.КонтактнаяИнформация.ТекущиеДанные,
                                                                              ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки,
								              "кнМИКО_НабратьНомерИзКИ");
	КонецЕсли; 
 
КонецПроцедуры

Кнопки должны быть доступны только для контактной информации с типом «Телефон»

// Обработчик события ПриАктивизацииСтроки элемента формы КонтактнаяИнформация.
//
Процедура КонтактнаяИнформацияПриАктивизацииСтроки(Элемент)
 
	УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПриАктивизацииСтрокиТаблицы(Элемент, ЭлементыФормы.КоманднаяПанельКонтактнаяИнформация.Кнопки.УстановитьОсновным);
	// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} НАЧАЛО
	Если НЕ Miko_Ajam = Неопределено
		 И  НЕ Miko_Ajam.мОбщийМодуль = Неопределено Тогда
		МИКО_ВыполнитьДействие(Новый Структура("Имя","УстановитьДоступностьКнопокСофтфона"));
	КонецЕсли;
	// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} КОНЕЦ		
КонецПроцедуры

Форма элемента справочника примет следующий вид:

7. Модернизация общей формы печати документов

Отправка факсом текущего документа

Задача: необходимо, добавить возможность отправки сформированной печатной формы в виде факсимильного сообщения в текущий вызов.

Решение: необходимо модифицировать общую форму «ПечатьДокументов»:

// Обработчик "ПриОткрытии" формы печати
// 
Процедура ПриОткрытии()
 
	ЭлементыФормы.ПолеТабличногоДокумента.ВставитьОбласть(ПечатныйДокумент.Область());
 
	ЭлементыФормы.ПолеТабличногоДокумента.ОтображатьЗаголовки = Ложь;
	ЭлементыФормы.ПолеТабличногоДокумента.ОтображатьСетку     = Ложь;
	ЭлементыФормы.ПолеТабличногоДокумента.Защита              = Защита;
	ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр      = Истина;
	ЭлементыФормы.ПолеТабличногоДокумента.ИмяПараметровПечати = ПечатныйДокумент.ИмяПараметровПечати;
	ЭлементыФормы.ПолеТабличногоДокумента.ПовторятьПриПечатиСтроки = ПечатныйДокумент.ПовторятьПриПечатиСтроки;
	// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} НАЧАЛО
	Если НЕ Miko_Ajam = Неопределено 
		И НЕ Miko_Ajam.мОбщийМодуль = Неопределено Тогда
		мОбщийМодуль = Miko_Ajam.мОбщийМодуль;
		// добавляем элементы управления на форму
		мОбщийМодуль.ДобавитьКнопкуОтправкиФаксаНаПанельДействий(ЭлементыФормы.КоманднаяПанельФормы.Кнопки, 
                                                                          "МИКО_ВыполнитьДействие", 
                                                                          "кнМИКО_ОтправитьФакс");
	КонецЕсли; 
	// {{doc:panel1cut:{ МИКО Панель телефонии Asterisk }}} КОНЕЦ		
КонецПроцедуры

добавить обработчик нажатия кнопки:

// Набор номера по заданному алгоритму
// Параметры 
//   Кнопка - элемент управления формы с типом "КнопкаКоманднойПанели"
Процедура МИКО_ВыполнитьДействие(Кнопка)
 	Действие = Кнопка.Имя;
	Если Miko_Ajam = Неопределено Тогда Возврат; КонецЕсли;
 
	Если Действие = "кнМИКО_ОтправитьФакс" Тогда
		// Обработчик нажатия на кнопку отправки табличного документа в текущий разговор
		Miko_Ajam.ОтправитьФаксомТабДок(ЭлементыФормы.ПолеТабличногоДокумента);
	КонецЕсли; 
 
КонецПроцедуры

Общая печатная форма примет вид:

Этап 4. Завершение этапа встраивания

Сохранение изменений

  1. Обновите конфигурацию базы данных.
  2. В отобразившемся окне нажмите Принять

Обновление конфигурации

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

Завершение настройки

Операции требовательны к ресурсам ПК. Лучше их выполнить в нерабочее время.
  1. Запустите 1С Предприятие под полными правами в пользовательском режиме
  2. «Все функции» - «Обработки» - «МИКО: Заполнить индекс телефонов»
  3. Выполните действие «Заполнить коды городов»
  4. Выполните действие «Перезаполнить индекс номеров»

На этом встраивание панели телефонии и журнала звонков в конфигурацию завершено. Теперь можно перейти к настройке продуктов в режиме 1С:Предприятие:

Обратно к перечню инструкций

astpanel/fastintegration/upp13.txt · Последние изменения: 2018/08/31 14:02 — tpor