Внимание!
Эта wiki об устаревших версиях
Документация к актуальной версии интеграции 1С и телефонии доступна по ссылке

Инструменты пользователя

Инструменты сайта


doc:1cajam:thin

Это старая версия документа!


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

Прежде всего рекомендую ознакомиться со способами подключения внешнего компонента:

Установка

Для начала работы с компонентом необходимо произвести его установку. Пример процедуры может выглядеть следующим

        &НаКлиенте
	// Процедура должна вызываться лишь один раз при первичной установке компонента, либо при обновлении его версии
	Процедура УстановитьКомпонент()
	   АдресАрхиваКомпонента = "Обработка.МИКО_ПанельТелефонииДля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");
	   Иначе
		СообщитьОтладочнуюИнформацию("Не удалось подключить внешнюю компоненту","");
   	   КонецЕсли;
	КонецПроцедуры 

Авторизация на сервере Asterisk

Далее пример авторизации: * см. также...

        &НаКлиенте
	Процедура Login()
		Если Компонент = Неопределено Тогда
			Сообщить("Компонент не подключен, сначала инициализируйте его!");
			Возврат;
		КонецЕсли; 
		Компонент.Хост = "test.ru";
		Компонент.Порт = "4443";
		result=""; // результат выполнения		
		Попытка
			Компонент.Login("МенеджерЛогин","МенеджерПароль",result);	
		Исключение
			Сообщить("Ошибка при авторизации: " + result);
		КонецПопытки; 
	КонецПроцедуры

Отключение от cервера Asterisk

	&НаКлиенте
	Процедура Logoff(Команда)
		Если Компонент = Неопределено Тогда
			Сообщить("Компонент не подключен");
			Возврат;
		КонецЕсли; 
 
		Попытка
			Результат = "";
			Компонент.Logoff(Результат);
		Исключение
			Сообщить("Исключение при отключении...");
		КонецПопытки; 
 
		Сообщить("Результат " + Результат);
	КонецПроцедуры

Пинг

Пример процедуры для проверки соединения с Asterisk:

	&НаКлиенте	
	Процедура Ping(Команда)
		Если Компонент = Неопределено Тогда
			Сообщить("Компонент не подключен!");
			Возврат;
		КонецЕсли; 
		Попытка
			respose ="";
			Результат=Компонент.Ping(respose);
			// Результат - возвращается значение типа булево
		Исключение
			Сообщить("Исключение при пинге");
		КонецПопытки; 
	КонецПроцедуры

Выполнение произвольной команды Asterisk (Command)

Описание Command

	Процедура CommandНажатие(Элемент)
		Command	 =	ПрозвольнаяКоманда; //	Command: Asterisk команда CLI интерфейса. (Не команда шелла!)
		ActionID =	"110";  	    //	ActionID: Необязательный ID команды, который будет возвращен в ответе.
 
		Если Компонент = Неопределено Тогда
			Сообщить("Компонент не подключен");
			Возврат;
		КонецЕсли; 
 
		Попытка
			//Результат=Компонент.command(Command,ActionID);
			Результат="";
			Компонент.doc:1cami:api:Command(Command,ActionID,Результат);
		Исключение
			Сообщить("Исключение при отправке произвольной комманды "+ИнформацияОбОшибке());
		КонецПопытки; 
 
		Сообщить("Результат комманды "+Результат);
 
	КонецПроцедуры
doc/1cajam/thin.1324196767.txt.gz · Последние изменения: 2014/11/14 22:32 (внешнее изменение)