официальный партнёр 1С по деловому софту
Закрыть
Логин:
Пароль:
Забыли свой пароль?
  Войти
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
 
8(495)229-30-42

Работа с ActiveX. ПолеHTMLДокумента.

1С Предприятие может работать с ActiveX компонентами, но для их использования необходимо исхитриться: [spoiler]
Первое, что необходимо сделать, это добавить на форму элемент "ПолеHTMLДокумента"  и связать его данные со строковым реквизитом формы:

Реквизит Поле html Документа

Далее, при создании формы на сервере необходимо выполнить:

&НаСервере
// предварительная инициализация компонент в поле html документа
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Софтфон = 
   "<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" 
        |""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">
   |<HTML style=""font-family:arial; font-size:11px;"">
   |<meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8""/>
   |<OBJECT id=AMIX classid=""CLSID:D40101B0-FF12-4455-B9C9-9B2FE14F98AE"" width=""98%"" height=""98%"">
   |<PARAM NAME=""Host"" VALUE=""****""/>
   |<PARAM NAME=""User"" VALUE=""******""/>
   |<PARAM NAME=""Secret"" VALUE=""*******""/>
   |<PARAM NAME=""Visible"" VALUE=""true""/>
   |<PARAM NAME=""Language"" VALUE=""1""/>
   |</OBJECT>
   |</HTML>";
   
КонецПроцедуры



Дальнейшая работа с компонентом может быть в следующем виде:

&НаКлиенте
// лишь когда документ будет сформирован возможна работа с компонентом
Процедура СофтфонДокументСформирован(Элемент)
   ПодключитьВК();
КонецПроцедуры

&НаКлиенте
// процедура подключения внешней компоненты ActiveX
Процедура ПодключитьВК()
   ТестОшибки = "";
   Попытка
      // получаем компоненту с поля html документа
      ЭлементВК_AMIX = Элементы.Софтфон.Документ.GetElementById("AMIX");
   Исключение
      БылаОшибка = истина;
      ТестОшибки = ИнформацияОбОшибке();
   КонецПопытки;
   
   Если БылаОшибка ИЛИ ЭлементВК_AMIX = Неопределено Тогда
      Сообщить("Не загружен объект AMIX! "+ ТестОшибки);
      Возврат;
   КонецЕсли;
   
   // получим COM объект:
   AMIXClient         = ЭлементВК_AMIX.ContentDocument;
   
   // Остальная работа как с обычным COM объектом
   AMIXClient.Host    = "sip.ru";         
   AMIXClient.Username   = "test";            
   AMIXClient.Secret    = "Secret";   
   AMIXClient.Port    = "5038";
   
   Если НЕ AMIXClient.Login() тогда
      Сообщение = Новый СообщениеПользователю;
      Сообщение.Текст = "Невозможно подключиться к астериск. Сервер не отвечает.";
      Сообщение.Сообщить();
   Иначе
      Сообщение = Новый СообщениеПользователю;
      Сообщение.Текст = "Подключение к серверу: "+AMIXClient.Host+" выполнено! Пользователь: myasterisk.";
      Сообщение.Сообщить();
   КонецЕсли;
КонецПроцедуры


Стоит отметить, что при работе с управляемым интерфейсом эта возможность официально 1С не поддерживается.
Фирма 1с рекомендует использовать технологии на базе технологии Native.