Каталог решений - Стоит ли использовать Внешние компоненты для 1С ч.2 (ActiveX)

Стоит ли использовать Внешние компоненты для 1С ч.2 (ActiveX)

Стоит ли использовать Внешние компоненты для 1С ч.2 (ActiveX)

В наличии

Примеры, ссылки на ActiveX

Категория:

Описание

Начало статьи — Стоит ли использовать Внешние компоненты для 1С

Что такое ActiveX, не может толком сказать никто. Обычно на этот вопрос отвечают: «Переименованная технология OLE». Но если быть точными, OLE — лишь часть того, что называют компонентной объектной моделью COM (Component Object Model). Ясности, однако, от этого не прибавляется. Попробуем расставить точки над i и назовем ActiveX расширенной технологией OLE, базирующейся на модели COM и призванной «активизировать» компьютер, т. е. существенно увеличить его функциональные возможности (в первую очередь за счет интеграции в Internet и intranet).

Основными компонентами технологии ActiveX являются управляющие элементы ActiveX (с различными дополнениями), ActiveX Conferencing — средство, превращающее компьютер в коммуникационное устройство сети Internet, ActiveX Scripting — средство создания собственных программ обработки языков сценариев (скриптов), как, например, VBScript и JScript, встроенных в Microsoft Internet Explorer. И хотя это не все, но для первого представления о технологии ActiveX, согласитесь, уже достаточно.

Составляющие ActiveX
Свойства и методы
Как и обычные объекты OLE, элементы ActiveX могут реализовать наборы свойств интерфейсов и методов. Про интерфейсы и методы мы уже говорили, а вот свойства не были затронуты. Свойства — это некоторые параметры, присущие какому-либо классу объектов. Например, для квадрата характерны цвет, координаты левого верхнего угла и длина стороны. Про эти параметры говорят, что это свойства класса «Квадрат».

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

Визуальное представление
Очень многие управляющие элементы могут размещать и отображать себя внутри окна программы-контейнера, которая использует эти элементы. Контейнер управляет расположением и размером ActiveX, которые он содержит.

Обработка событий клавиатуры
Управляющие элементы ActiveX могут перехватывать нажатия кнопок клавиатуры и их комбинации и соответствующим образом реагировать на них. Обычно все нажатия перехватываются программой-контейнером, содержащей ActiveX, и передаются управляющим элементам.

Сохранение состояния
Управляющий элемент ActiveX может сохранять и восстанавливать свое состояние. Это позволяет не тратить время на повторную настройку элементов.

Регистрация и лицензирование
Перед использованием элементы ActiveX должны быть зарегистрированы в системе и отмечены в реестре (регистраторе). Обычно элементы сами проделывают эту работу. Кроме того, элементы ActiveX могут быть лицензированы для предотвращения их нелегального использования.

Для работы ActiveX в 1С 7.7 необходимо использование 1С++
1C++ Проект 1С++www.1cpp.ru
FAQ по ActiveX/АктивИкс
Пример использования:
Internet Explorer на форме (ActiveX)

Подробнее:
Создаем новый Внешний отчет
ВНИМАНИЕ! Для отображения ActiveX необходимо разместить на форме элемент диалога «Текст» или «Кнопка».
Размещаем на форме элемент диалога «Текст» с Идентификатором «ФБраузер».
Размещаем в модуле обработки следующий код:

Перем гФорма,Браузер;

Процедура ПриОткрытии()
    Попытка
        гФорма=СоздатьОбъект(«СервисРасшФормы»);
        гФорма.ЗагрузитьМодуль(); //ПослеОткрытия
    Исключение
        гФорма=СоздатьОбъект(«Форма»);
        гФорма.УстановитьФорму(Форма); //ФормаПриСоздании
    КонецПопытки;
КонецПроцедуры    // ПриОткрытии

Процедура ПослеОткрытия()
    Браузер=СоздатьОбъект(«АктивИкс»);
    Браузер.УстановитьАтрибут(Форма,«ФБраузер»);
    Браузер.СоздатьЭУ(«Shell.Explorer.2»);
    Браузер.Объект.Navigate(«c:\»);
КонецПроцедуры

Процедура ФормаПриСоздании()
    ПослеОткрытия();
КонецПроцедуры    // ФормаПриСоздании

Процедура ФБраузер_BeforeNavigate2(объект,урл,флаги,фрейм,пост,заголовки,отмена)
    Сообщить(урл);
КонецПроцедуры    // ФБраузер_BeforeNavigate2

Если компонента 1С++ не загружена, то загружаем ее в процедуре обработки ПриОткрытии или в Глобальном Модуле.
Запускаем обработку и видим на экране содержимое диска С:\
Возможные проблемы:
— незагруженные компоненты;
— старые версия компоненты (на момент написания статьи: 1С++ 3.0.1.23, просмотреть версии можно выбрав пункт меню Помощь->О программе… либо Сервис->Параметры); — отсутствие прав доступа к диску C:, отсутствие диска C:;
— другие проблемы.
Вместо содержимого диска также можно открывать и ссылки в интернет, например www.infostart.ru.
Процедура ФБраузер_BeforeNavigate2 выбрана в виде примера события возникающего при работе ActiveX.
С полный перечнем событий, методов и свойств можно познакомиться в MSDN.
После чего расширить функциональную часть

ActiveX сторонних разработчиков:

Scintilla ActiveX Control
3D Active Button Magic
Бесплатный контрол двумерной графики в виде ActiveX — разберем подробнее:
Прежде всего зарегистрируем Контрол — regsvr32 acChart.ocx.
Также нам будет необходима ВК OLEExSup для передачи даных в Контрол с типом «Массив». Описание синтаксиса на странице ВК.
Скопируем файл предыдущего примера, удалим текст модуля, добавим следующие строки:

Перем гФорма,Браузер,_OleSafeArray;

Процедура ПриОткрытии()
    Попытка
        гФорма=СоздатьОбъект(«СервисРасшФормы»);
        гФорма.ЗагрузитьМодуль(); //ПослеОткрытия
    Исключение
        гФорма=СоздатьОбъект(«Форма»);
        гФорма.УстановитьФорму(Форма); //ФормаПриСоздании
    КонецПопытки;
КонецПроцедуры    // ПриОткрытии

Процедура ПослеОткрытия()
    _OleSafeArray.Создать(12,5,2);
    _OleSafeArray.УстановитьЗначение(0,0,1);
    _OleSafeArray.УстановитьЗначение(0,1,5);
    _OleSafeArray.УстановитьЗначение(1,0,3);
    _OleSafeArray.УстановитьЗначение(1,1,1);
    _OleSafeArray.УстановитьЗначение(2,0,3);
    _OleSafeArray.УстановитьЗначение(2,1,2);
    _OleSafeArray.УстановитьЗначение(3,0,4);
    _OleSafeArray.УстановитьЗначение(3,1,2);
    _OleSafeArray.УстановитьЗначение(4,0,8);
    _OleSafeArray.УстановитьЗначение(4,1,10);
    Браузер=СоздатьОбъект(«АктивИкс»);
    Браузер.УстановитьАтрибут(Форма,«ФБраузер»);
    Браузер.СоздатьЭУ(«acChart.ctlChart»);

    OLEExSup=CreateObject(«OLEExSup»);
    //    Браузер.Объект.maxX = 5;
    //Браузер.Объект.maxY = 5;
    Браузер.Объект.ShowGridX = 1;
    Браузер.Объект.ShowGridY = 1;
    Браузер.Объект.ChartBorder = 1;
//    Браузер.Объект.ChartType = 5;
    Браузер.Объект.PlotHold= 1;
    Браузер.Объект.TitleX = «Дни»;
    Браузер.Объект.TitleY = «Количество»;
    Браузер.Объект.LegendAligment = 0;
    Браузер.Объект.AddLegendString(«График»);
    Браузер.Объект.UseGradientFill=1;
    OLEExSup.InvokeOLEMethod(Браузер.Объект, «DrawXY»,_OleSafeArray);
КонецПроцедуры

Процедура ФормаПриСоздании()
    ПослеОткрытия();
КонецПроцедуры    // ФормаПриСоздании

Процедура ФБраузер_ChartClick(_X, _Y)
    Сообщить(«!!»);
КонецПроцедуры    //

Не забываем загрузить OLEExSup.dll.
Запускаем внешний отчет, получаем график. Далее эксперементируем по своему усмотрению.
К сожалению на Официальной странице Контрола дано описание не всех методов и событий. Для получения доступа к ним воспользуемся советами из FAQ по ActiveX/АктивИкс

Разработки участников Инфостарта

Василий aka Душелов
[GDI+] — Рисуем программно в 1С – ActiveX-компонента для рисования в 1С.

[VectorDrawing] — Векторная графика в 1С – ActiveX-компонента для работы с векторной графикой: рисует примитивы (прямоугольники, линии, многоугольники, эллипсы, текст), группирует их в сложные объекты. Позволяет вращать, деформировать, масштабировать. Инициируются события (при шелчке (одинарном и двойном) мышки на объекте и др.). Фигуры позволяют хранить ссылки на объекты 1С.

CityMap1С - Карта города CityMap1С — Карта города – Компонента для работы с картами города, с использованием сервисов Google, Yahoo, OpenStreet и VirtualEarth.
Возможности:
1. Поиск адреса на карте.
2. Пометка маркером точки на карте.
3. Прокладывание маршрута движения на автомобиле из точки А в точку Б.
4. Поиск оптимального маршрута, учитывая обязательный проезд по заданному шоссе.
5. Отображение нескольких маршрутов движения.
Примеры использования:
Диспетчеризация, мониторинг и охрана подвижных объектов (программно-аппаратный комплекс «Мониторинг и охрана») Автор: Игорь Белышев aka biv75

Захват окон - ActiveX-компонента для 1С «Захват окон» — ActiveX-компонента для 1С – Захватывает открытые окна и помещает их в 1С, так же получает скриншот выбранного окна.
Хотите играть в пасьянс в 1С, смотреть кино или просматривать секретные документы и не светить эти окна на рабочем столе, тогда эта компонента для Вас.
*** Для работы ВК потребуется установленный Microsoft .NET Framework 2.0, который можно скачать отсюда.

Склад3D - ActiveX-компонента для 1С [DEMO] «Склад3D» — ActiveX-компонента для 1С [DEMO] – Демонстрация возможности создания визуального отображения размещения товара на складе.
Пример использования:
Кинозал 3D Автор: Игорь Белышев aka biv75

has been added to your cart:
Оформление заказа