Стоит ли использовать Внешние компоненты для 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 и маркетинг Управленческий учет Платные (руб)

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

16800 руб.

30.05.2017    52105    34    69    

43

Внешняя компонента для сканирования (замена TWAIN-компоненты БСП) (Native Win 32/64)

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

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

2400 руб.

12.05.2020    26244    131    99    

83

Внешняя компонента для подключения 1С к телефонии Asterisk

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

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

2400 руб.

04.05.2018    44977    117    64    

60

Внешняя компонента печати PDF (Native Win 32/64)

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

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1500 руб.

17.09.2018    35081    104    123    

111

Мастер создания внешних компонент 1С (технология COM) для DELPHI 6/7/8/2005/2006/2007/2008/2010/XE/XE2/XE3

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

Средство для сверхбыстрой разработки внешних компонент 1С:Предприятия 7.7 и 8 по технологии COM на всех версиях DELPHI, начиная с 6.

2000 руб.

28.03.2013    54000    35    14    

68

QR-код с логотипом компании (обычная и управляемая форма)

Разработка внешних компонент Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Как известно, стремление сделать свою рекламную продукцию запоминающейся и выделяющейся — верный путь к успеху. Сегодня, мы поговорим с вами о том, что можно сделать с обычным черно-белым QR-кодом, чтобы он стал более живым и привлекательным. Если вам не терпится попробовать сделать QR-код с логотипом компании, то эта обработка для вас!

2400 руб.

22.06.2016    30840    4    4    

8

Внешняя компонента 1С и С++. Продолжаем разговор.

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

А давайте запилим 8.3.26 до релиза, или оповещение с сервера...

19.02.2024    4039    starik-2005    28    

52

Внешние компоненты 1С и язык C++

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

Некоторые практические аспекты создания внешних компонент на языке С++ для платформы 1С 8.3++.

26.01.2024    4781    starik-2005    32    

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

Обзор должен быть предметным, содержащим описание реализации, использования ну и конечно аналоги.
Evg-Lylyk; +1 Ответить
5. MrDen 434 29.08.09 16:07 Сейчас в теме
(4) я еще не закончил статью, будет и описание технологий и примеры использования так что сильно не ругайте :-)
6. MrDen 434 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 434 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 -- только это что-то ещё более древнее и примитивное.
Оставьте свое сообщение