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

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

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


astpanel:designer:arbis

Интеграция в конфигурацию "Бухгалтерия предприятия (ред. 3.0) / 1С-АРБИС:УФФ (ред. 4.0)"

Руководство составлено для «Бухгалтерия предприятия, редакция 3.0 (3.0.59.54) / 1С-АРБИС:Управление фирмой-франчайзи, редакция 4.0 (4.0.11.12)» и Панели телефонии МИКО 1.4.26.25+.

Обязательно перед работами создайте РЕЗЕРВНУЮ КОПИЮ информационной базы.

Этап 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. Добавьте в справочник реквизит PT1C_ОсновнойМенеджер (синоним Основной менеджер). Тип СправочникСсылка.Пользователи.
  2. В форму элемента справочника в конец процедуры ПриСозданииНаСервере добавьте фрагмент кода:
    	// PT1C / Начало
    	pt1c_Элемент = Элементы.Вставить("PT1C_ОсновнойМенеджер", Тип("ПолеФормы"),,);
    	pt1c_Элемент.ПутьКДанным = "Объект.PT1C_ОсновнойМенеджер";
    	pt1c_Элемент.Вид = ВидПоляФормы.ПолеВвода;
    	pt1c_Элемент.Заголовок   = "Ответственный менеджер";
    	// PT1C / Конец

Этап 4. Добавление кнопки "Прослушать запись" в документ "АРБИС_Событие"

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

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

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

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

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

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

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

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

    .

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

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

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

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

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

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

astpanel/designer/arbis.txt · Последние изменения: 2018/08/10 14:14 — tpor