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

13.09.10

Разработка - Разработка внешних компонент

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

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

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

См. также

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Программист Пользователь Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Медиадисплей покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Экран можно использовать в качестве графического меню-борда в кафе и видеовывески. В качестве устройства отображения можно использовать Android-планшеты, смарт-телевизоры с Android, мониторы или проекторы под управлением Windows или Linux-компьютера. Linux-версия успешно запускается на одноплатных компьютерах Raspberri Pi и Orange Pi. Настраивается ЛЮБОЙ ДИЗАЙН экрана при помощи встроенного графического редактора! Решение можно масштабировать от одного экрана до тысяч экранов с централизованным управлением.

18000 руб.

30.05.2017    54121    9    69    

46

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Платные (руб)

Внешняя компонента для конвертации PDF файлов в картинки без использования дополнительных программ. Работает на сервере и в тонком клиенте.

2400 руб.

25.06.2024    1163    3    4    

3

Разработка внешних компонент Телефония, SIP Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

2400 руб.

04.05.2018    47380    124    66    

67

Разработка внешних компонент Программист Платформа 1С v8.3 Платформа 1C v8.2 Платные (руб)

Внешняя компонента, позволяющая посылать команды и получать ответы по GraphQL протоколу из 1С.Может быть использована при интеграции. В 1С работает на стороне "клиента".

4600 руб.

27.06.2023    3645    3    0    

5

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

3600 руб.

02.09.2010    77555    72    257    

191

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

3000 руб.

12.05.2020    28757    138    100    

91

Разработка внешних компонент Системный администратор Программист Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    2230    bayselonarrend    14    

46

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Бесплатно (free)

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    4881    kovalevdmv    26    

75
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 2695 29.08.09 00:29 Сейчас в теме
..следует добавить, что использование активиксов, по крайней мере в 7.7, требует наличия формы, на которую их надо положить. таким образом реализовать с помощью активикса, например, чат ворма которого ОТКРЫВАЕТСЯ в нужный момент (а не висит "невидимая" где-нибудь все время) - я не знаю как...
- возможно я тут все неправильно сказал, просьба меня поправить...
2. German 413 29.08.09 13:23 Сейчас в теме
такие "статьи" можно в своих блогах писать, здесь то она зачем???? поддержать интерес? ИМХО ... информационный мусор.
3. Арчибальд 2709 29.08.09 14:40 Сейчас в теме
(2) Не согласен. Посетителю, может, как раз активикс нужен, а поди найди его...
Сам до активикса не добрался, но плюсую проделанную работу.
4. German 413 29.08.09 15:55 Сейчас в теме
(3) все обзоры в том числе и Ваши это чистый перебор + пару слов которые нужны для связи этих ссылок.

Обзор должен быть предметным, содержащим описание реализации, использования ну и конечно аналоги.
Evg-Lylyk; +1 Ответить
5. MrDen 435 29.08.09 16:07 Сейчас в теме
(4) я еще не закончил статью, будет и описание технологий и примеры использования так что сильно не ругайте :-)
6. MrDen 435 31.08.09 20:48 Сейчас в теме
добавлено примеры работы с Контролом двумерной графики, описана передача массивов в 1С 7.7
7. steban 73 02.09.09 17:03 Сейчас в теме
>Для работы ActiveX в 1С 7.7 необходимо использование 1С++ и FormEx
Для работы ActiveX в 1с 7.7 достаточно только 1с++
MrDen; JohnyDeath; +2 Ответить
8. MrDen 435 02.09.09 17:34 Сейчас в теме
(7) спасибо, поправил
alekseies; +1 Ответить
9. vis_tmp 32 02.10.13 09:30 Сейчас в теме
Про графики.
А можно ли построить график такого вида?
http://savepic.su/3460493.png
На картинке выделены пустые область, т.е. шкала всегда 12 месяцев, к примеру, а данные показываем не за все месяцы, а только за часть из них.
С 3 по 10, к примеру.
Такое возможно сделать?
10. Gkmy 28 28.08.17 17:52 Сейчас в теме
Процедура ПослеОткрытия()
    Браузер=СоздатьОбъект("АктивИкс");
    Браузер.УстановитьАтрибут(Форма,"ФБраузер");
    Браузер.СоздатьЭУ("Shell.Explorer.2");
    Браузер.Объект.Navigate("c:\");
КонецПроцедуры

Shell.Explorer.2 - есть альтернативы? Ищу среди своих(Win10), обнаружил: Mozilla.Browser -- только это что-то ещё более древнее и примитивное.
Оставьте свое сообщение