![]() |
Адрес этой странички:
http://d1cv8.narod.ru/top_005/d1cv8_20090926_001/d1cv8_20090926_001.htm Дата: 26.09.2009 Интернет-приложение к книге "Delphi и 1С:Предприятие.Программирование информационного обмена" |
Часть
![]() |
Глава 5. Расширение
функционала 1С.
ActiveFormX в среде
1Cv8.
Создание
ActiveFormX и "внедрение" ее в форму внешней обработки
1Cv8
|
|
Для
того, чтобы ActiveX (элемент управления или
форма) были доступны в контексте 1Cv8, их нужно
зарегистрировать в операционной системе.
Один из вариантов - использовать утилиту RegSvr32.exe.
Например :
RegSvr32 My_ActiveFormX_01_afx.ocx
Прежде, чем создавать ActiveX-форму
(или элемент) нужно, ест-нно, хорошо представлять себе ее назначение, а также
функционал, который будет реализован в контексте этой формы (элемента).
Затем нужно придумать идентификатор (имя) этой формы (элемента).
В нашем случае, мы создаем простую (тестовую)
ActiveX-форму (обладающую определенными свойствами и
методами) в контексте которой посмотрим, каким образом можно из 1Cv8
обращаться к свойствам и методам этой формы.
Идентификатор нашей ActiveX-формы:
My_ActiveFormX_01
Для создания ActiveX-формы (в среде Delphi 7)
нужно выбрать меню (в Delphi) :
File -> New -> Other
Перейти на вкладку ActiveX и сделать двойной щелчок левой кнопкой мыши по пиктограмме "Active Form" :
В открывшемся диалоговом
окне нужно произвести следующие изменения :
В результате, получим "пустую" ActiveX-форму.
Теперь
нужно открыть свойства проекта (меню: Project -> Options)
и на вкладке Application
проконтролировать, чтобы расширение файлы (нашей формы) было
ocx :
Затем, нужно сохранить
проект.
Файлы проекта :
Далее, скомпилировать проект (результирующий файл :
My_ActiveFormX_01_afx.ocx).
И зарегистрировать в операционной системе :
RegSvr32 My_ActiveFormX_01_afx.ocx
Если удачно, то сообщение :
Желательно (но не
обязательно) создать на диске отдельный каталог (например, с именем OCX),
где размещать используемые ocx-файлы
AciveX-форм (элементов).
И регистрировать в операционной системе новые ActiveX-формы
(элементы) уже "из этого каталога".
Как видно, процесс создания ActiveX-формы в среде
Delphi предельно прост.
Теперь, нужно открыть конфигуратор 1Cv8 :
И, в контексте
какой-либо конфигурации 1C, создать "внешнюю обработку"
(меню: "Файл" -> "Новый")
:
В
контексте внешней обработки, нужно создать форму обработки :
Указать ее идентификатор
(имя) и нажать на кнопку "Готово":
Результат (пустая, по умолчанию, форма "внешней обработки" :
Далее, нужно сохранить
созданную "внешнюю обработку" в файл на диске :
Затем, нужно выбрать
соотв.пункт меню (в конфигураторе 1Cv8) :
В
списке доступных ActiveX-форм (и элементов управления)
найти нашу ActiveX-форму и нажать на кнопку OK :
И, с помощью левой
кнопки мыши, указать местоположение и размеры нашей ActiveX-формы
на форме "внешней обработки" 1Cv8 :
Получится примерно так :
Далее, с помощью правой
кнопки мыши (в области ActiveX-формы), нужно открыть
всплывающее меню и выбрать пункт "Свойства" :
На странице свойств
"внедренной" ActiveX-формы найти раздел : "События".
Теперь вернемся к
нашему Delphi-проекту, выберем пункт меню "View"
-> "Type Library"
и откроем "ветку событий" нашей ActiveX-формы
(которая была создана по умолчанию при создании новой ActiveX-формы)
:
Как видно "заглушки" к обработчикам событий (для "внедряемых"
ActiveX-форм), созданные системой 1Cv8
(по умолчанию), в основном
совпадают с аналогичными "заглушками", созданными средой Delphi
(по умолчанию) .
Чтобы
поэкспериментировать с обработчиками событий (нашей ActiveX-формы)
в контексте формы "внешней обработки" 1Cv8,
нужно создать (кнопка
) и
"привязать" соотв. "пустые" методы (реакция на события, происходящие в
контексте нашей ActiveX-формы).
Ниже - реализация этих
методов (обработчики событий от "внедренной" ActiveX-формы)
:
Теперь нужно сохранить
изменения (во внешней обработке) на диск.
Далее, нужно запустить программу 1С:Предприятие.
Найти и открыть файл созданной "внешней обработки" (Тест_My_ActiveFormX_01_afx_ocx_01.epf)
:
И "пощелкать" левой кнопкой мышки в области внедренной
ActiveX-формы (а затем "по-нажимать" на клавиши
клавиатуры).
Результат будет примерно таким :
Исходники этого примера можно скачать здесь :
Delphi-проект
(336 кб) ,
"Внешняя обработка" (1Cv8)
(3.9 кб).