Работа с внешними компонентами Native

Я бы добавил, что метод ПодключитьВнешнююКомпоненту лучше использовать всегда, независимо от типа клиента.

1. Допустим ВК у нас расположена в определенном каталоге на диске :

// подключаем компонент Попытка ПодключитьВнешнююКомпоненту("D:\MIKO_phone_IP.dll", "Comp", ТипВнешнейКомпоненты.Native); // Создаем объект компонента, обратите внимание на использование // конструкции «Новый ()» ОбъектКомпоненты = Новый("AddIn.Comp.MIKO_phone_IP"); Компонент.Host= "sip.host.com"; Компонент.Port = "5038"; Комопнент.LogIn(); Исключение Сообщить("Исключение при инициализации"); КонецПопытки;

Возможно использование в «Толстом Клиенте (обычное приложение)»;

Это самый простой пример работы с компонентой Native. Следует обратить внимание на то, что компонент этого типа не требует регистрацию в системе, что значительно упрощает администрирование.

2. Рассмотренный выше пример совсем не жизненный. Чаще всего компонент располагают в макете. Макет должен содержать zip архив c файлами компонента и файлом MANIFEST.xml
Пример файла манифеста:

  • MIKO_phone_IP.dll (компонент native)
  • MANIFEST.xml
  • 1CEAdnWebFF.xpi (zip архив — расширение для Mozilla FF, содержит компонент native)
ПутьКМакету = "Обработка.МИКО_ПанельТелефонии.Макет.AddInWindows32"; Если ПодключитьВнешнююКомпоненту(ПутьКМакету,"Component") Тогда Компонент = Новый ("AddIn.Component.MIKO_phone_IP"); КонецЕсли;

3. При работе в тонком и web клиенте обязательно использования метода УстановитьВнешнююКомпоненту().
Цитата с ИТС:

В момент установки внешние компоненты устанавливаются в каталог %APPDATA%\1C\1Cv82\ExtCompT. Каталог установки внешних компонент не считается кешем и не очищается при вызове «1С:Предприятия» с ключом командной строки ClearCache. Использование метода УстановитьВнешнююКомпоненту() для тонкого клиента является обязательным.

пояснение:
%APPDATA%\1C\1Cv82\ExtCompT — каталог установки компонентов для Толстого, Тонкого клиентов.
%APPDATA%\Roaming\Mozilla\Extensions — каталог (в моем случае) расширений для Mozilla FF/
При использовании метода УстановитьВнешнююКомпоненту(), в зависимости от используемого клиента, в соответствующий каталог будут распакованы расширения.

Пример процедуры установки внешнего компонента:

&НаКлиенте // Процедура должна вызываться лишь один раз Процедура УстановитьКомпонент(Команда) Попытка УстановитьВнешнююКомпоненту(АдресАрхиваКомпонента); Исключение Сообщить("Не удалось устанвить внешнюю компоненту."); КонецПопытки; КонецПроцедуры

УстановитьВнешнююКомпоненту — метод должен вызываться лишь при первичной установке компонента и в случае, когда необходимо обновить установленную версию компонента.

В случае тонкого и толстого клиента:
Достаточно повторно выполнить операцию установки внешней компоненты с помощью метода УстановитьВнешнююКомпоненту().

  • Необходимо удалить плагин через механизм работы с дополнениями веб-браузера (Mozilla FF)
  • Воспользоваться методом УстановитьВнешнююКомпоненту
&НаКлиенте Процедура Инициализаровать(Команда) Попытка ПодключитьВнешнююКомпоненту("ОбщийМакет.MIKO_phone_IP","Comp" ,ТипВнешнейКомпоненты.Native); Компонент = Новый ("AddIn.Comp.MIKO_phone_IP"); Исключение Сообщить("Исключение при инициализации. "); КонецПопытки; КонецПроцедуры

Если компонент не был установлен, то будет вызвано исключение.

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

&НаКлиенте Перем АдресАрхиваКомпонента; &НаКлиенте Перем Компонент; &НаКлиенте Процедура ПриОткрытии(Отказ) // адрес, содержит строку (навигационную ссылку на двоичные данные zip архива во // временном хранилище) АдресАрхиваКомпонента = ПолучитьАдресАрхиваВоВременномХранилище(); КонецПроцедуры // ПриОткрытии() &НаСервере // методы ПодключитьВнешнююКомпоненту,УстановитьВнешнююКомпоненту, могут принимать в // качестве первого параметра строку в формате "навигационная ссылка" // (URL к внешней компоненте, упакованной в ZIP-архив, в формате, аналогичном // ПолучитьНавигационнуюСсылку). Функция ПолучитьАдресАрхиваВоВременномХранилище() ОбъектОбработки = РеквизитФормыВЗначение("ОбработкаОбъект"); СсылкаНаАрхив = ПоместитьВоВременноеХранилище(ОбъектОбработки.ПолучитьМакет("MIKO_phone_IP"), Новый УникальныйИдентификатор); Возврат СсылкаНаАрхив; КонецФункции // ПолучитьАдресАрхиваВоВременномХранилище() &НаКлиенте // Процедура должна вызываться лишь один раз, в случае, если компонент еще не установлен // или нуждается в обновлении Процедура УстановитьКомпонент(Команда) Попытка УстановитьВнешнююКомпоненту(АдресАрхиваКомпонента); Исключение Сообщить("Не удалось устанвить внешнюю компоненту."); КонецПопытки; КонецПроцедуры // УстановитьКомпонент() &НаКлиенте // основная процедура инициализации комопнента Процедура Инициализаровать(Команда) Попытка ПодключитьВнешнююКомпоненту(АдресАрхиваКомпонента,"Comp" ,ТипВнешнейКомпоненты.Native); Компонент = Новый ("AddIn.Comp.MIKO_phone_IP"); Исключение Сообщить("Исключение при инициализации. Возможно компонент еще не был установлен."); КонецПопытки; КонецПроцедуры
Средний рейтинг
0 из 5 звезд. 0 голосов.

От Admin.news