Это старая версия документа!
Прежде всего рекомендую ознакомиться со способами подключения внешнего компонента:
Для начала работы с компонентом необходимо произвести его установку. Пример процедуры может выглядеть следующим
&НаКлиенте // Процедура должна вызываться лишь один раз при первичной установке компонента, либо при обновлении его версии Процедура УстановитьКомпонент() АдресАрхиваКомпонента = "Обработка.МИКО_ПанельТелефонииДляCRM.Макет.AddInWindows32"; Попытка УстановитьВнешнююКомпоненту(АдресАрхиваКомпонента); Исключение Сообщить("Не удалось устанвить внешнюю компоненту."); КонецПопытки; КонецПроцедуры
в этом случае компонент, упакованный в ZIP архив расположен в макете обработки. Далеев режиме 1С предприятия необходимо инициализировать вызов этой процедуры:
В случае успешной установки компонента, в каталоге %APPDATA%\1C\1Cv82\ExtCompT (для windows 7) будет распакован файл компонента. Рядом с распакованным файлом в файл registry.xml будут дописаны сведения об установленном компоненте. Пример registry.xml файла:
<?xml version="1.0" encoding="UTF-8"?> <registry xmlns="http://v8.1c.ru/8.2/addin/registry"> <component path="MIKO_phone_IP.dll" type="native"/> <component path="MIKO_phone_IP_v_2_0.dll" type="native"/> <component path="MIKO_ajamV009.dll" type="native"/> </registry>
Для дальнейшей работы с компонентом, имеет смысл определить переменную модуля:
&НаКлиенте Перем Компонент;
Пример процедуры инициализации компонента:
&НаКлиенте Процедура Инициализаровать() АдресАрхиваКомпонента = "Обработка.МИКО_ПанельТелефонииДляCRM.Макет.AddInWindows32"; Если ПодключитьВнешнююКомпоненту(ПутьКМакету,"Comp",ТипВнешнейКомпоненты.Native) Тогда Компонент = Новый ("AddIn.Comp.MikoAjam"); Иначе СообщитьОтладочнуюИнформацию("Не удалось подключить внешнюю компоненту",""); КонецЕсли; КонецПроцедуры
Далее пример авторизации: * см. также...
&НаКлиенте Процедура Login() Если Компонент = Неопределено Тогда Сообщить("Компонент не подключен, сначала инициализируйте его!"); Возврат; КонецЕсли; Компонент.Хост = "test.ru"; Компонент.Порт = "4443"; result=""; // результат выполнения Попытка Компонент.Login("МенеджерЛогин","МенеджерПароль",result); Исключение Сообщить("Ошибка при авторизации: " + result); КонецПопытки; КонецПроцедуры
&НаКлиенте Процедура Logoff(Команда) Если Компонент = Неопределено Тогда Сообщить("Компонент не подключен"); Возврат; КонецЕсли; Попытка Результат = ""; Компонент.Logoff(Результат); Исключение Сообщить("Исключение при отключении..."); КонецПопытки; Сообщить("Результат " + Результат); КонецПроцедуры
Пример процедуры для проверки соединения с Asterisk:
&НаКлиенте Процедура Ping(Команда) Если Компонент = Неопределено Тогда Сообщить("Компонент не подключен!"); Возврат; КонецЕсли; Попытка respose =""; Результат=Компонент.Ping(respose); // Результат - возвращается значение типа булево Исключение Сообщить("Исключение при пинге"); КонецПопытки; КонецПроцедуры
Процедура CommandНажатие(Элемент) Command = ПрозвольнаяКоманда; // Command: Asterisk команда CLI интерфейса. (Не команда шелла!) ActionID = "110"; // ActionID: Необязательный ID команды, который будет возвращен в ответе. Если Компонент = Неопределено Тогда Сообщить("Компонент не подключен"); Возврат; КонецЕсли; Попытка //Результат=Компонент.command(Command,ActionID); Результат=""; Компонент.doc:1cami:api:Command(Command,ActionID,Результат); Исключение Сообщить("Исключение при отправке произвольной комманды "+ИнформацияОбОшибке()); КонецПопытки; Сообщить("Результат комманды "+Результат); КонецПроцедуры