Здесь показаны различия между двумя версиями данной страницы.
astpanel:fastintegration:arbis [2018/05/14 14:48] tpor создано |
astpanel:fastintegration:arbis [2018/05/14 15:24] (текущий) tpor |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Интеграция панели телефонии и журнала звонков в УТ 11 ====== | + | ====== Интеграция панели телефонии и журнала звонков в "Бухгалтерия предприятия (ред. 3.0) / 1С-АРБИС:УФФ (ред. 4.0)" ====== |
[[astpanel:fastintegration|Обратно к перечню инструкций]] | [[astpanel:fastintegration|Обратно к перечню инструкций]] | ||
Строка 5: | Строка 5: | ||
<note tip> | <note tip> | ||
Инструкции составлены для **конфигураций**: | Инструкции составлены для **конфигураций**: | ||
- | * Управление торговлей, редакция **11.2** | + | * "Бухгалтерия предприятия, редакция **3.0 (3.0.59.54)** / 1С-АРБИС:Управление фирмой-франчайзи, редакция **4.0 (4.0.11.12)**" |
- | * Управление торговлей, редакция **11.3** | + | |
- | * Управление торговлей, редакция **11.4.3.126** | + | |
- | Рекомендуемая версия **панели телефонии**: **1.4.26.20+**\\ | + | Рекомендуемая версия **панели телефонии**: **1.4.26.25+**\\ |
- | Рекомендуемая версия **журнала звонков**: **1.0.1.15+** | + | Рекомендуемая версия **журнала звонков**: **1.0.1.19+** |
</note> | </note> | ||
Строка 25: | Строка 23: | ||
- Включите возможность изменения конфигурации. На предупреждение программы ответьте утвердительно. {{ :astpanel:fastintegration:1f.png |}} | - Включите возможность изменения конфигурации. На предупреждение программы ответьте утвердительно. {{ :astpanel:fastintegration:1f.png |}} | ||
- В появившемся окне укажите, что объекты поставщика не редактируются. {{ :doc:panel1ccrm20:rules.png? |}} | - В появившемся окне укажите, что объекты поставщика не редактируются. {{ :doc:panel1ccrm20:rules.png? |}} | ||
- | - Затем для головного объекта конфигурации (//"УправлениеТорговлей"//) установите правило поддержки на //"Объект поставщика редактируется с сохранением поддержки"//. {{ :astpanel:fastintegration:2f.png |}} | + | - Затем для головного объекта конфигурации (//"УправлениеФирмойФранчайзи"//) установите правило поддержки на //"Объект поставщика редактируется с сохранением поддержки"//. {{ :astpanel:fastintegration:2f.png |}} |
- Для общего модуля //"**ВариантыОтчетовПереопределяемый**"// также установите правило поддержки на //"Объект поставщика редактируется с сохранением поддержки"//. {{ :astpanel:fastintegration:3f.png |}} | - Для общего модуля //"**ВариантыОтчетовПереопределяемый**"// также установите правило поддержки на //"Объект поставщика редактируется с сохранением поддержки"//. {{ :astpanel:fastintegration:3f.png |}} | ||
- Закройте окно настройки поддержки | - Закройте окно настройки поддержки | ||
Строка 51: | Строка 49: | ||
Разделы.Добавить(Метаданные.Подсистемы.МИКО_Телефония); | Разделы.Добавить(Метаданные.Подсистемы.МИКО_Телефония); | ||
// МИКО / PT1C / Подсистема "Расширенный журнал звонков" / Конец</code> | // МИКО / PT1C / Подсистема "Расширенный журнал звонков" / Конец</code> | ||
- | + | - Перейдите в модуль команды **МИКО_стПанельОтчетовИсторияЗвонков** | |
- | <note warning>**ВНИМАНИЕ**! Для конфигурации **Управление торговлей, редакция 11 (11.4.3.126)+** необходимо модернизировать модуль команды **МИКО_стПанельОтчетовИсторияЗвонков**. Порядок действий описан ниже. </note> | + | |
- | + | ||
- | - Для конфигурации **Управление торговлей, редакция 11 (11.4.3.126)+** перейдите в модуль команды **МИКО_стПанельОтчетовИсторияЗвонков** | + | |
- Перейдите в **процедуру** **ОбработкаКоманды** | - Перейдите в **процедуру** **ОбработкаКоманды** | ||
- Внесите соответствующие изменения: <code>&НаКлиенте | - Внесите соответствующие изменения: <code>&НаКлиенте | ||
Строка 83: | Строка 78: | ||
==== 2. Правка модуля управляемого приложения ==== | ==== 2. Правка модуля управляемого приложения ==== | ||
- | - Откройте модуль управляемого приложения. {{ :astpanel:fastintegration:12f.png |}} | + | - Откройте модуль управляемого приложения. {{ :doc:korenconf.png |}} |
- Определите глобальную переменную в начале модуля до раздела процедур. <code 1c>// PT1C / Панель телефонии Asterisk / Начало | - Определите глобальную переменную в начале модуля до раздела процедур. <code 1c>// PT1C / Панель телефонии Asterisk / Начало | ||
Перем сфпФормаТелефон Экспорт; | Перем сфпФормаТелефон Экспорт; | ||
Строка 96: | Строка 91: | ||
сфпФормаТелефон = Неопределено; //Нет прав на обработку | сфпФормаТелефон = Неопределено; //Нет прав на обработку | ||
КонецПопытки; | КонецПопытки; | ||
- | + | ||
Если НЕ сфпФормаТелефон = Неопределено Тогда | Если НЕ сфпФормаТелефон = Неопределено Тогда | ||
сфпФормаТелефон.ИнициализироватьПанельТелефонии(Истина, Отказ); | сфпФормаТелефон.ИнициализироватьПанельТелефонии(Истина, Отказ); | ||
Строка 107: | Строка 102: | ||
</code> | </code> | ||
- | - Перейдите к процедуре //"ПриЗавершенииРаботыСистемы"// (создайте процедуру, если ее нет). В конец процедуры вставьте код приведенный ниже.<code 1c> | + | - Перейдите к процедуре //"ПередЗавершениемРаботыСистемы"// (создайте процедуру, если ее нет). В конец процедуры вставьте код приведенный ниже. <code 1c> |
// PT1C / Панель телефонии Asterisk / Начало | // PT1C / Панель телефонии Asterisk / Начало | ||
- | Если сфпФормаТелефон <> Неопределено Тогда | + | Если Отказ = Ложь И сфпФормаТелефон <> Неопределено Тогда |
- | сфпФормаТелефон.ЗавершитьРаботу(Истина); | + | сфпФормаТелефон.ЗавершитьРаботу(); |
КонецЕсли; | КонецЕсли; | ||
- | // PT1C / Панель телефонии Asterisk / Конец | + | // PT1C / Панель телефонии Asterisk / Конец |
</code> | </code> | ||
- | ===== Этап 4. Завершение этапа встраивания ===== | + | ===== Этап 4. Доработка справочника "Контрагенты" ===== |
+ | - Добавьте в справочник реквизит **PT1C_ОсновнойМенеджер** (//синоним Основной менеджер//). Тип **СправочникСсылка.Пользователи**. | ||
+ | - В **форму элемента** справочника в **конец** процедуры **ПриСозданииНаСервере** добавьте фрагмент кода: <code> | ||
+ | // PT1C / Начало | ||
+ | pt1c_Элемент = Элементы.Вставить("PT1C_ОсновнойМенеджер", Тип("ПолеФормы"),,); | ||
+ | pt1c_Элемент.ПутьКДанным = "Объект.PT1C_ОсновнойМенеджер"; | ||
+ | pt1c_Элемент.Вид = ВидПоляФормы.ПолеВвода; | ||
+ | pt1c_Элемент.Заголовок = "Ответственный менеджер"; | ||
+ | // PT1C / Конец | ||
+ | </code> | ||
+ | |||
+ | ===== Этап 5. Редактирование команды "Позвонить" ===== | ||
+ | |||
+ | - Откройте для редактирования в обработке **МИКО_ПанельТелефонииДля1С** команду **"Позвонить"** и замените модуль команды <code 1c> | ||
+ | &НаКлиенте | ||
+ | Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) | ||
+ | |||
+ | ПанельАктивна = Ложь; | ||
+ | Попытка | ||
+ | ФормаПанелиТелефонии = Вычислить("сфпФормаТелефон"); | ||
+ | ПанельАктивна = ФормаПанелиТелефонии <> Неопределено; | ||
+ | Исключение | ||
+ | КонецПопытки; | ||
+ | |||
+ | Если ФормаПанелиТелефонии = Неопределено Тогда | ||
+ | Попытка | ||
+ | ФормаПанелиТелефонии = Вычислить("сфпФормаТелефонВнешняяПанель"); | ||
+ | ПанельАктивна = ФормаПанелиТелефонии <> Неопределено; | ||
+ | Исключение | ||
+ | КонецПопытки; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Если ФормаПанелиТелефонии = Неопределено Тогда | ||
+ | Попытка | ||
+ | ФормаПанелиТелефонии = Вычислить("сфпПанельУправления"); | ||
+ | ПанельАктивна = ФормаПанелиТелефонии <> Неопределено; | ||
+ | Исключение | ||
+ | КонецПопытки; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Если ПанельАктивна Тогда | ||
+ | |||
+ | СписокУчастников = ПолучитьСсылкуНаУчастникаИзДокумента(ПараметрКоманды); | ||
+ | Если СписокУчастников <> Неопределено Тогда | ||
+ | ФормаПанелиТелефонии.ПозвонитьВыбравТелефон(СписокУчастников); | ||
+ | КонецЕсли; | ||
+ | |||
+ | КонецЕсли; | ||
+ | КонецПроцедуры | ||
+ | |||
+ | // Для документов будет возвращено значение реквизита "Контрагент" | ||
+ | // Для справочников - возвращается ссылка на элемент | ||
+ | // В случае ошибки возвращается "Неопределено" | ||
+ | // | ||
+ | Функция ПолучитьСсылкуНаУчастникаИзДокумента(Знач Ссылка) Экспорт | ||
+ | |||
+ | Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда | ||
+ | МассивОбъектов = Новый Массив(1); | ||
+ | МассивОбъектов[0] = Ссылка; | ||
+ | |||
+ | Возврат МассивОбъектов; | ||
+ | ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда | ||
+ | МассивОбъектов = Новый Массив; | ||
+ | ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "Контрагент"); | ||
+ | ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "КонтактноеЛицо"); | ||
+ | ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "Организация"); | ||
+ | ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "Сотрудник"); | ||
+ | Возврат МассивОбъектов; | ||
+ | КонецЕсли; | ||
+ | |||
+ | КонецФункции // ПолучитьСсылкуНаУчастникаИзДокумента() | ||
+ | |||
+ | // Получате значение раквизита, если значение заполнено - добавляет его в массив. | ||
+ | // | ||
+ | Функция ДобавитьЗначениеРеквизитаВМассив(Знач Ссылка, Массив, ИмяРеквизита) Экспорт | ||
+ | Если Ссылка.Метаданные().Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда | ||
+ | Возврат Ложь; | ||
+ | КонецЕсли; | ||
+ | Если ЗначениеЗаполнено(Ссылка[ИмяРеквизита]) Тогда | ||
+ | Массив.Добавить(Ссылка[ИмяРеквизита]); | ||
+ | КонецЕсли; | ||
+ | |||
+ | Возврат Истина; | ||
+ | КонецФункции // ДобавитьЗначениеРеквизитаВМассив() | ||
+ | </code>. | ||
+ | - Свойство **"Тип параметра команды"** должно иметь составной тип данных: | ||
+ | |||
+ | * **СправочникСсылка.КонтактныеЛица**; | ||
+ | * **ДокументСсылка.АРБИС_ПутевойЛист**; | ||
+ | * **СправочникСсылка.Контрагенты**; | ||
+ | * **ДокументСсылка.АРБИС_Сделка**; | ||
+ | * **СправочникСсылка.Пользователи**; | ||
+ | * **СправочникСсылка.Организации**; | ||
+ | * **ДокументСсылка.АРБИС_Событие**. | ||
+ | |||
+ | ===== Этап 6. Редактирование команды "Прослушать запись" ===== | ||
+ | |||
+ | - Добавьте в документ "**АРБИС_Событие**" реквизит **PT1C_ID_Звонок** (//синоним id звонок//). Тип **Строка**, длина 32. | ||
+ | - Откройте для редактирования в обработке **МИКО_ПанельТелефонииДля1С** команду "**ПрослушатьЗапись**" и замените в модуле команды код <code 1c> | ||
+ | |||
+ | &НаКлиенте | ||
+ | Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) | ||
+ | |||
+ | ПанельАктивна = Ложь; | ||
+ | Попытка | ||
+ | ФормаПанелиТелефонии = Вычислить("сфпФормаТелефон"); | ||
+ | ПанельАктивна = ФормаПанелиТелефонии <> Неопределено; | ||
+ | Исключение | ||
+ | КонецПопытки; | ||
+ | |||
+ | Если ФормаПанелиТелефонии = Неопределено Тогда | ||
+ | Попытка | ||
+ | ФормаПанелиТелефонии = Вычислить("сфпФормаТелефонВнешняяПанель"); | ||
+ | ПанельАктивна = ФормаПанелиТелефонии <> Неопределено; | ||
+ | Исключение | ||
+ | КонецПопытки; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Если ФормаПанелиТелефонии = Неопределено Тогда | ||
+ | Попытка | ||
+ | ФормаПанелиТелефонии = Вычислить("сфпПанельУправления"); | ||
+ | ПанельАктивна = ФормаПанелиТелефонии <> Неопределено; | ||
+ | Исключение | ||
+ | КонецПопытки; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Если ПанельАктивна Тогда | ||
+ | |||
+ | ДокументСобытиеНазвание = ФормаПанелиТелефонии.ИмяДокументСобытие(); | ||
+ | |||
+ | ID_Звонок = ПолучитьИдентификаторЗвонка(ПараметрКоманды, ДокументСобытиеНазвание); | ||
+ | Если ID_Звонок <> Неопределено Тогда | ||
+ | ФормаПанелиТелефонии.ПрослушатьЗвонокПоИдентификатору(ID_Звонок); | ||
+ | КонецЕсли; | ||
+ | |||
+ | КонецЕсли; | ||
+ | КонецПроцедуры | ||
+ | |||
+ | Функция ПолучитьИдентификаторЗвонка(Ссылка, ДокументСобытиеНазвание) | ||
+ | |||
+ | Возврат Ссылка.PT1C_ID_Звонок; | ||
+ | |||
+ | КонецФункции // ПолучитьИдентификаторЗвонка() | ||
+ | </code> | ||
+ | - "**Тип параметра команды**" должно иметь тип данных: **ДокументСсылка.АРБИС_Событие**. | ||
+ | |||
+ | ===== Этап 7. Завершение этапа встраивания ===== | ||
==== Сохранение изменений ==== | ==== Сохранение изменений ==== |