====== Интеграция 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с и использовать телефон.