Возможности новой платформы 1С 8.2 все продолжают радовать, многие начали переводить свои конфигурации с 8.1 (а может и 7.7) на управляемые формы для использования в тонком и веб-клиентах, но уже существует множество визуальных компонент для 1С, которые используются в промышленной эксплуатации.
И так...
Как известно, MS Internet Explorer прекрасно работает с ActiveX-объектами, чем мы и воспользуемся.
Публикация компоненты.
1. На веб-сервере выкладываем файлы компоненты и html-страницу для инициализации объекта компоненты. (примеры файлов приложены к статье)
<object id="vk"
classid="http://s0740/components/Dushelov.VectorDrawing1C.dll#Душелов.VectorDrawing"
width="100%" height="100%">
</object>
Где id - имя элемента, по которому потом будет получен объект компоненты,
и classid - идентификатор класса компоненты в формате "<полный путь к файлу компоненты на веб-сервере>#<имя класса компоненты>
2. На клиентских машинах данный веб-сервер добавляем в список "надежных узлов"
(В IE - меню "Сервис" - "Свойства обозревателя" - закладка "Безопасность" - зона "Надежные узлы")
и проверяем уровень безопасности для этой зоны (должно быть разрешено использование ActiveX)
+ для компонент на .Net Framework'е выставляем нужные разрешения:
Жмем mmc, выбираем оснастку .NET 2.0 Framework Configuration - C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorcfg.msc (если ее нет, то скачиваем из файлов статьи), выбираем в дереве "Runtime security policy", жмем Adjust Zone Security и дальше выбираем Full Trust (возможно и с меньшим доверием будет работать) для зоны, в которую внесен сайт с нашим ActiveX.
3. После проделанных действий на клиентской машине можно открыть страницу инициализации компоненты и на ней должен появиться объект компоненты.
Использование на форме тонкого клиента
Контейнером для компоненты будем использовать элемент формы с типом "Поле HTML-документа", в котором открываем страницу инициализации компоненты
Пример:
Элементы.ВК.Документ.URL = "http://s0740/components/vector.html";
После загрузки страницы ищем элемент по идентифиатору, написанному выше, получаем объект и подписываем нужные события компоненты.
(вот с событиями только 1 нюанс - русские названия событий IE не видит, как побороть - пока не знаю)
Пример:
ЭлементВК = Элементы.ВК.Документ.getElementById("vk");
Если ЭлементВК = Неопределено Тогда
Сообщить("Не найден объект компоненты!");
Возврат;
КонецЕсли;
Элементы.ВК.ТолькоПросмотр = Ложь;
ОбъектВК = ЭлементВК.contentDocument;
ДобавитьОбработчик ОбъектВК.OnShapeMouseDoubleClick, ПриДвойномЩелчкеМышкойПоФигуре;
После этого можно работать с объектом компоненты, как с обычным ком-объектом.
Пример использования визуальной компоненты
К статье приложен пример использования компоненты "VectorDrawing"
Соответственно, для работы компоненты на клиентских машинах должен быть установлен .Net Framework 2.0