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

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

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


Action unknown: addtobook
astpanel:fastintegration:arbis

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

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

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

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

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

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

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

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

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

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

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

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

Изменение типовых объектов

Для завершения этапа встраивания журнала звонков необходимо внести изменения в общий модуль «ВариантыОтчетовПереопределяемый».

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

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

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

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

2. Правка модуля управляемого приложения

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

Этап 4. Доработка справочника "Контрагенты"

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

Этап 5. Редактирование команды "Позвонить"

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

    .

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

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

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

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

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

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

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

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

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

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

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

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

astpanel/fastintegration/arbis.txt · Последние изменения: 2018/05/14 15:24 — tpor