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

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

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


astpanel:designer:bp3

Интеграция в конфигурацию "Бухгалтерия предприятия, ред. 3.0"

Руководство составлено для «Бухгалтерия предприятия, редакция 3.0 (3.0.54.20)» и панели телефонии МИКО 1.4.26.25+. Обязательно перед работами создайте РЕЗЕРВНУЮ КОПИЮ информационной базы.
ВНИМАНИЕ! Для конфигурации БП, ред. 3.0 в режиме 1С:Предприятие для настройки «Открыть в начале разговора» можно установить только значение «Клиент», т.е при входящем / исходящем звонке будет открываться карточка Клиента.

Этап 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. Добавление кнопки "Позвонить" на закладку контактной информации справочников

Перейдите в общий модуль «УправлениеКонтактнойИнформациейКлиент», процедуру «ПозвонитьПоТелефону», пример:

Процедура ПозвонитьПоТелефону(НомерТелефона)
 
	НомерТелефона = СтроковыеФункцииКлиентСервер.ЗаменитьОдниСимволыДругими("()_- ", НомерТелефона, "");
	// PT1C / Панель телефонии Asterisk / Начало
	Если НЕ сфпФормаТелефон = Неопределено Тогда
		сфпФормаТелефон.НабратьНомерКИ(, НомерТелефона);
		Возврат;
	КонецЕсли;
	// PT1C / Панель телефонии Asterisk / Конец
	// по умолчанию используем "tel"
	ИмяПротокола = "tel";
	// *** *** ***
	// ВНИМАНИЕ! ПРОПУЩЕНА ЧАСТЬ ИСХОДНОГО КОДА
	// *** *** ***
 
КонецПроцедуры

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

astpanel/designer/bp3.txt · Последние изменения: 2018/09/11 13:05 — tpor