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

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

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


sip:sip:paneldocunf

ИНТЕГРАЦИЯ СОФТФОНА С КОНФИГУРАЦИЯМИ БЕЗ CRM

Руководство составлено для SIP софтфона версии 2.X.14.2 и может быть не актуальным для других версий.
Прежде чем приступить к выполнению действий из данного руководства, сделайте РЕЗЕРВНУЮ КОПИЮ информационной базы. Руководство содержит подробные пошаговые инструкции. Однако, если Вы не уверены в том, что делаете, то доверьте эту работу специалистам. Наша компания не несет ответственности за потерю данных вызванную неверными действиями пользователей.

Данное практическое руководство демонстрирует процесс встраивания софтфона в конфигурацию не имеющую встроенного блока CRM. Инструкция одинаково подходит для:

  • «1С:Управление небольшой фирмой, редакция 1.4»;
  • «1С:Управление торговлей, редакция 11.1».

Что дает интеграция в сравнении с без интеграционным режимом работы?

  1. Ведется журналирование входящих и исходящих звонков.
  2. Не нужно выполнять каких-либо дополнительных действий при запуске системы. Софтфон начинает работу сразу после запуска 1С в свернутом виде.
  3. Работа продолжается даже после закрытия окна софтфона. Если поступит входящий звонок, окно софтфона отобразиться на экране.
  4. Сделать звонок можно не только из окна софтфона, но и кнопками «Позвонить», расположенными в карточках контрагентов и различных документах.

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

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

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

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

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

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

Необходимо встроить внешнюю обработку (софтфон) в конфигурации, настроить права доступа и автоматический запуск в фоновом режиме.

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

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

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

Добавление обработки и подсистемы в конфигурацию

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

Настройка ролей

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

Этап 3. Создание журнала звонков

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

Создайте новый регистр СофтФон_ИсторияЗвонков. В параметре Периодичность укажите значение В пределах секунды.

Структура регистра показана на рисунке слева.

  • Измерение Пользователь. Тип СправочникСсылка.Пользователи. Индексировать.
  • Ресурс НомерТелефона. Тип Строка, длина 20, допустимая длина Переменная.
  • Ресурс Входящий. Тип Булево.
  • Ресурс Аккаунт. Тип Строка, длина 25, допустимая длина Переменная.
  • Ресурс Продолжительность. Тип Число, длина 6, точность 0, неотрицательное Истина.
  • Реквизит id. Тип Строка, длина 36, допустимая длина Фиксированная.

Настройте ранее созданную роль «МИКО_ИспользованиеСофтфона» для чтения и записи в регистр. Однако, интерактивное редактирование записей следует запретить. Также следует создать форму записи регистра и установить ее свойство «Доступность» в «Ложь». В противном случае пользователи с полными правами смогут изменять записи журнала звонков.

Этап 4. Добавление кнопки "Позвонить" в командную область форм справочников и документов

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

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

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

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

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

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

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

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

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

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

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

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

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

Этап 6. Добавление кнопки "Позвонить" на боковую панель контактной информации

Только для «1С:Управление небольшой фирмой»

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

К сожалению, конфигурация УНФ, актуальной на момент на писания статьи версии 1.4.9.19, имеет структуру не позволяющую реализовать данный механизм «красиво» с минимальными изменениями. Дальнейшая инструкция может показаться не логичной, т.к. механизмы конфигурации используются не по их прямому назначению. Результат не приносит ощутимой пользы в дополнение к предыдущему и потому не рекомендуется для повторения в реальных информационных базах. Инструкция создана исключительно для демонстрации возможностей по интеграции.

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

  1. Откройте окно настройки поддержки и установите правило поддержки на «Объект поставщика редактируется с сохранением поддержки» для объектов:
    • ОбщийМодуль.ДополнительныеОтчетыИОбработки;
    • ОбщийМодуль.ИнформационныйЦентрКлиент.
  2. Откройте модуль «ДополнительныеОтчетыИОбработки» и перейдите к процедуре «ПриСозданииНаСервере».
  3. Добавьте в конец процедуры код приведенный ниже.
    Процедура ПриСозданииНаСервере(ЭтаФорма) Экспорт
     
    	...
     
    	// SP1C / Добавим кнопку в панель контактной информации / Начало
    	МИКО_Софтфон.ДобавитьКнопкиНаПанельКИ(ЭтаФорма);
    	// SP1C / Добавим кнопку в панель контактной информации / Конец
     
    КонецПроцедуры
  4. Откройте модуль «ИнформационныйЦентрКлиент» и перейдите к процедуре «НажатиеНаИнформационнуюСсылку».
  5. Измените текст процедуры как показано ниже.
    Процедура НажатиеНаИнформационнуюСсылку(Форма, Элемент) Экспорт
     
    	// SP1C / Выполним набор номера при нажатии на кнопку в панели контактной информации / Начало
    	Если НЕ сфпФормаТелефон = Неопределено И Найти(Элемент.Имя, "Позвонить") Тогда
    		ИмяЭлементаПолеТелефон = СтрЗаменить(Элемент.Имя, "Позвонить", "");
    		ПолеТелефон = Форма.Элементы[ИмяЭлементаПолеТелефон];
    		НомерТелефона = ПолеТелефон.ТекстРедактирования;
     
    		сфпФормаТелефон.НабратьНомерКИ(, НомерТелефона);
     
    		Возврат;
    	КонецЕсли;
    	// SP1C / Выполним набор номера при нажатии на кнопку в панели контактной информации / Конец
     
    	Гиперссылка = Форма.ИнформационныеСсылки.НайтиПоЗначению(Элемент.Имя);
     
    	...
     
    КонецПроцедуры

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

sip/sip/paneldocunf.txt · Последние изменения: 2014/11/14 22:32 (внешнее изменение)