====== Интеграция Ringophone в Управление производственным предприятием 1.3 в режиме обычного приложения ======
Ниже описан вариант интеграции как видим его мы. Вы не обязаны использовать наш пример и можете интегрировать так, как удобно для вашей компании.
===== Включить возможность изменения =====
Меню //Конфигурация->Поддержка->Настройка поддержки//. В открывшемся окне нажать кнопку //"Включить возможность изменения"//. В группе //"Объекты с правилом изменения разрешены"// выбрать //"Объект поставщика редактируется с сохранением поддержки"//.
{{ :ringophone:возможностьизменений_упп13.png |}}
===== Объединение с конфигурацией телефонии =====
Для упрощения интеграции в УПП 1.3 мы подготовили специальную выгрузку конфигурации. Она содержит справочники, общие модули и команды которые помогут в интеграции с RingoPhone.
Конфигурация была отправлена вам в письме при скачивании RingoPhone с нашего сайта.
Для объединения конфигураций выполните меню //Конфигурация->Сравнить//, объединить с конфигурацией из файла и выберите скаченный файл RingoPhone_Integration_OF.cf. \\
Согласитесь на возможность поставки на поддержку \\
{{ :ringophone:поставитьнаподдержку.png |}}
В открывшемся диалоге __уберите галочку в дереве //"УправлениеПроизводственнымПредприятием -> Свойства"//__ и нажмите кнопку "Выполнить". Наша конфигурация не изменяет элементов УПП, все наши элементы начинаются с ключевых слов "RingoPhone" и "Ринголайн" поэтому конфликтов быть не должно.
{{ :ringophone:объединениеконфигурацийупп13.png |}}
В настройках правил поддержки для //объектов с правилом "Изменения разрешены"//, выберите опцию //"Объект редактируется с сохранением поддержки"//
{{ :ringophone:настройкаправилподдержки.png |}}
После объединения необходимо сохранить {{:ringophone:1csave.png|}} и обновить {{:ringophone:1cupdate.png|}} конфигурацию.
===== Изменение конфигурации =====
Для совместной работы УПП и RingoPhone необходимо внести изменения в модули вашей базы.
В дереве конфигурации кликаем правой кнопкой мыши по //"УправлениеПроизводственнымПредприятием"// и в контекстном меню выбираем //"Открыть модуль обычного приложения"//. В открывшемся модуле ищем процедуру //"ПриНачалеРаботыСистемы"// и приводим к следующему виду.
Процедура ПриНачалеРаботыСистемы()
//******* код функции. Его оставляем без изменений *******
////////////////////////////////////////////////////////////////////////////////
// Ринголайн интеграция. Выполнение при запуске. Начало
РинголайнКлиент.ПриНачалеРаботыСистемы();
// Ринголайн интеграция. Выполнение при запуске. Начало
////////////////////////////////////////////////////////////////////////////////
КонецПроцедуры
Снова в дереве конфигурации кликаем правой кнопкой мыши по //"УправлениеПроизводственнымПредприятием"// и в контекстном меню выбираем //"Открыть модуль сеанса"//. В открывшемся модуле ищем процедуру //"УстановитьЗначениеПараметраСеанса"// и приводим к следующему виду.
Процедура УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры)
//******* код функции. Его оставляем без изменений *******
////////////////////////////////////////////////////////////////////////////////
// Ринголайн интеграция. Установка параметров сеанса. Начало
РинголайнСервер.УстановкаПараметровСеанса(ИмяПараметра,УстановленныеПараметры);
// Ринголайн интеграция. Установка параметров сеанса. Конец
////////////////////////////////////////////////////////////////////////////////
КонецПроцедуры
===== Добавление реквизитов в документ "Событие" =====
Будет удобно, если сотрудники смогут прослушивать записи разговора с клиентом прямо из документа события //"Телефонный звонок"//. Поэтому необходимо создать дополнительные реквизиты по которым можно будет сопоставить событие и запись разговора.
Необходимо в конфигурации открыть реквизиты документа //"Событие"// //Документы->Событие->Реквизиты// и добавить туда новые реквизиты:
* **РинголайнИДЗвонкаНаАТС**, с типом Строка длина 100
* **РинголайнЭлементЖурналаЗвонков**, с типом Строка длина 100
При создании документа из RingoPhone, он найдёт эти реквизиты в документе и запишет в них ссылку на историю с записью.
===== Добавление команд телефонии в документ "Событие" =====
На обычных формах 1с не позволяет разместить сторонние команды не изменив саму форму. Возможно после обновления на новую версию УПП, наши изменения затрутся и кнопки команд пропадут, тогда снова нужно повторить эту операцию.
В документе //"Событие"// мы разместим 2 команды: команду для совершения звонка из документа и команду для прослушивания записи.
Необходимо в конфигурации открыть модуль формы //Документы->Событие->Формы->ФормаДокумента//. Найти процедуру //"ПриОткрытии"// и привести к следующему виду
Процедура ПриОткрытии()
////////////////////////////////////////////////////////////////////////////////
// Ринголайн. Добавление кнопок на форму. Начало
RingoPhoneСерверИнтеграция.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭтаФорма.ЭлементыФормы.ДействияФормы.Кнопки,"РинголайнПозвонить","RingoPhone_ОбработчикКоманд");
RingoPhoneСерверИнтеграция.ДобавитьКнопкуПрослушатьНаПанельДействий(ЭтаФорма.ЭлементыФормы.ДействияФормы.Кнопки,"РинголайнПрослушать","RingoPhone_ОбработчикКоманд");
// Ринголайн. Добавление кнопок на форму. Конец
////////////////////////////////////////////////////////////////////////////////
//******* код функции. Его оставляем без изменений *******
КонецПроцедуры // ПриОткрытии()
После всех процедур и функций необходимо добавить новую процедуру
////////////////////////////////////////////////////////////////////////////////
// Ринголайн. Процедура обработки команд. Начало
Процедура RingoPhone_ОбработчикКоманд(Кнопка)
Действие = Кнопка.Имя;
Если Действие = "РинголайнПозвонить" Тогда
Открыт = RingoPhoneКлиент.ОткрытьТелефонСПодтверждением();
Если Открыт=Истина Тогда
ОбъектыСКонтактами = Новый Массив;
Если ЭтаФорма.ВидОбъекта = Перечисления.ВидыОбъектовСобытия.Контрагент Тогда
Если ЗначениеЗаполнено(ЭтаФорма.Контрагент)Тогда
ОбъектыСКонтактами.Добавить(ЭтаФорма.Контрагент);
КонецЕсли;
Если ЗначениеЗаполнено(ЭтаФорма.КонтактноеЛицо)Тогда
ОбъектыСКонтактами.Добавить(ЭтаФорма.КонтактноеЛицо);
КонецЕсли;
ИначеЕсли ЭтаФорма.ВидОбъекта = Перечисления.ВидыОбъектовСобытия.ПрочиеКонтактныеЛица Тогда
Если ЗначениеЗаполнено(ЭтаФорма.КонтактноеЛицоБезКонтрагента)Тогда
ОбъектыСКонтактами.Добавить(ЭтаФорма.КонтактноеЛицоБезКонтрагента);
КонецЕсли;
КонецЕсли;
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("МассивОбъектовСКонтактами",ОбъектыСКонтактами);
ОткрытьФорму("ОбщаяФорма.РинголайнВыбратьНомерИПозвонить",ПараметрыФормы,ЭтаФорма,Истина,ВариантОткрытияОкна.ОтдельноеОкно,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
ИначеЕсли Действие = "РинголайнПрослушать" Тогда
Если ЗначениеЗаполнено(ЭтаФорма.РинголайнЭлементЖурналаЗвонков) Тогда
ФайлЗаписи = RingoPhoneСерверИнтеграция.ПолучитьФайлЗаписиРазговора(ЭтаФорма.РинголайнЭлементЖурналаЗвонков);
Если ЗначениеЗаполнено(ФайлЗаписи) Тогда
Файл = Новый Файл(ФайлЗаписи);
Если Файл.Существует() Тогда
ЗапуститьПриложение(ФайлЗаписи);
Иначе
РинголайнОбщее.СообщитьПользователю("Файл записи не найден или удалён");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// Ринголайн. Процедура обработки команд. Конец
////////////////////////////////////////////////////////////////////////////////
Теперь при открытии события //"Телефонный звонок"//, вы будете видеть кнопки для совершения звонка и прослушивания записи из документа //"Телефонный звонок"//.
{{ :ringophone:командывдокументетелефонныйзвонокут10.png |}}
===== Добавление команды "Позвонить" на форму заказа и контрагента =====
Как и в случае с документом //"Событие"// вам придётся вставить код в сам модуль формы и повторить эту операцию если при обновлении модуль формы перезапишется.
Необходимо в конфигурации открыть модуль формы //Справочники->Контрагенты->Формы->ФормаЭлемента//. Найти процедуру //"ПриОткрытии"// и привести к следующему виду
Процедура ПриОткрытии()
////////////////////////////////////////////////////////////////////////////////
// Ринголайн. Добавление кнопок на форму. Начало
RingoPhoneСерверИнтеграция.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭтаФорма.ЭлементыФормы.ДействияФормы.Кнопки,"РинголайнПозвонить","RingoPhone_ОбработчикКоманд");
// Ринголайн. Добавление кнопок на форму. Конец
////////////////////////////////////////////////////////////////////////////////
//******* код функции. Его оставляем без изменений *******
КонецПроцедуры // ПриОткрытии()
После всех процедур и функций необходимо добавить новую процедуру
////////////////////////////////////////////////////////////////////////////////
// Ринголайн. Процедура обработки команд. Начало
Процедура RingoPhone_ОбработчикКоманд(Кнопка)
Действие = Кнопка.Имя;
Если Действие = "РинголайнПозвонить" Тогда
Открыт = RingoPhoneКлиент.ОткрытьТелефонСПодтверждением();
Если Открыт=Истина Тогда
ОбъектыСКонтактами = Новый Массив;
ОбъектыСКонтактами.Добавить(ЭтаФорма.Ссылка);
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("МассивОбъектовСКонтактами",ОбъектыСКонтактами);
ОткрытьФорму("ОбщаяФорма.РинголайнВыбратьНомерИПозвонить",ПараметрыФормы,ЭтаФорма,Истина,ВариантОткрытияОкна.ОтдельноеОкно,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// Ринголайн. Процедура обработки команд. Конец
////////////////////////////////////////////////////////////////////////////////
Таким же образом добавляем команду на форму документа //"ЗаказПокупателя"//. \\
Открываем в конфигурации модуль формы документа //Документы->ЗаказПокупателя->Формы->ФормаДокумента//. Ищем процедуру //"ПриОткрытии"// и приводим к следующему виду
Процедура ПриОткрытии()
////////////////////////////////////////////////////////////////////////////////
// Ринголайн. Добавление кнопок на форму. Начало
RingoPhoneСерверИнтеграция.ДобавитьКнопкуЗвонкаНаПанельДействий(ЭтаФорма.ЭлементыФормы.ДействияФормы.Кнопки,"РинголайнПозвонить","RingoPhone_ОбработчикКоманд");
// Ринголайн. Добавление кнопок на форму. Конец
////////////////////////////////////////////////////////////////////////////////
//******* код функции. Его оставляем без изменений *******
КонецПроцедуры // ПриОткрытии()
После всех процедур и функций добавляем новую процедуру
////////////////////////////////////////////////////////////////////////////////
// Ринголайн. Процедура обработки команд. Начало
Процедура RingoPhone_ОбработчикКоманд(Кнопка)
Действие = Кнопка.Имя;
Если Действие = "РинголайнПозвонить" Тогда
Открыт = RingoPhoneКлиент.ОткрытьТелефонСПодтверждением();
Если Открыт=Истина Тогда
ОбъектыСКонтактами = Новый Массив;
Если ЗначениеЗаполнено(ЭтаФорма.Контрагент)Тогда
ОбъектыСКонтактами.Добавить(ЭтаФорма.Контрагент);
КонецЕсли;
Если ЗначениеЗаполнено(ЭтаФорма.КонтактноеЛицоКонтрагента)Тогда
ОбъектыСКонтактами.Добавить(ЭтаФорма.КонтактноеЛицоКонтрагента);
КонецЕсли;
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("МассивОбъектовСКонтактами",ОбъектыСКонтактами);
ОткрытьФорму("ОбщаяФорма.РинголайнВыбратьНомерИПозвонить",ПараметрыФормы,ЭтаФорма,Истина,ВариантОткрытияОкна.ОтдельноеОкно,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// Ринголайн. Процедура обработки команд. Конец
////////////////////////////////////////////////////////////////////////////////
Теперь на форме документа //"Заказ покупателя"// и форме справочника //"Контрагент"// можно увидеть команду //"Позвонить"//
{{ :ringophone:командавдокументезаказут10.png |}}
===== Первый запуск =====
Первый запуск необходимо выполнить от пользователя с полными правами. При запуске должен открыться //мастер установки "Ринголайн"//. Следуйте инструкциям мастера установки. После окончания работы мастера установки можете сразу настроить телефоны, а можете вернуться к этому позже. \\
===== Настройка прав =====
Для работы с телефонией, необходимо выдать роли пользователям.
* роль //**"РинголайнПользователь"**// - позволяет запускать телефон, просматривать собственные звонки и прослушивать записи разговоров.
* роль //**"РинголайнПросмотрЗвонков"**// - позволяет просматривать звонки всех пользователей.
* роль //**"РинголайнАдминистратор"**// - позволяет централизованно настраивать и перенастраивать все телефоны.
В Управлении производственным предприятием есть возможность администрирования пользователей. Назначим роли пользователем через неё.
Открываем меню //Пользователи->Администрирование пользователей// и в открывшейся схеме кликаем 2 раза по блоку Профили. Откроется окно "Профили полномочий пользователей".
{{ :ringophone:администрированиепользователейупп.png |}}
В вашей конфигурации могут быть настроены другие профили, поэтому мы рассмотрим на примере демонстрационной базы.
В демонстрационной базе мы назначим роль //"РинголайнПользователь"// для профиля //Продажи->Менеджер по продажам//. Все сотрудники обладающие профилем //"менеджер по продажам"// смогут запускать и использовать телефон. \\
Откроем в дереве //Продажи->Менеджер по продажам//, в правой части окна, в разделе "Роли профиля" нажимаем кнопку изменить, ставим галочку для роли //"РинголайнПользователь"// и нажимаем //"Ок"//.
{{ :ringophone:профилипользователейупп.png |}}
Таким же образом назначим для профиля //Продажи->Старшие менеджеры по продажам// 2 роли: //"РинголайнПросмотрЗвонков"// и //"РинголайнПользователь"//. Эти сотрудники смогут просматривать все звонки совершённые из 1с и использовать телефон.