Адрес этой странички: 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 можно посмотреть на сайте фирмы 1С : http://v8.1c.ru/overview/IntegrationActiveX.htm
 


Детальную информацию о
процессе создании ActiveX-форм (элементов управления) можно найти в специальной литературе (по Delphi) ...
 

Для того, чтобы ActiveX  (элемент управления или форма) были доступны в контексте 1Cv8,  их нужно зарегистрировать в операционной системе.
Один из вариантов - использовать утилиту
RegSvr32.exe. Например :

RegSvr32 My_ActiveFormX_01_afx.ocx

1 Создание ActiveFormX и "внедрение" ее в форму внешней обработки 1Cv8
2 Продолжение. Свойства и методы ActiveFormX (доступ из 1Cv8)
3 Продолжение. События ActiveFormX. Обработчики событий (от ActiveX-формы) в контексте 1Cv8
4 Продолжение. Считывание (в контексте 1Cv8) информации из открытого (в контексте нашей ActiveX-формы) набора данных.

Прежде, чем создавать 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 кб).

 

Продолжение ...

1 Создание ActiveFormX и "внедрение" ее в форму внешней обработки 1Cv8
2 Продолжение. Свойства и методы ActiveFormX (доступ из 1Cv8)
3 Продолжение. События ActiveFormX. Обработчики событий (от ActiveX-формы) в контексте 1Cv8
4 Продолжение. Считывание (в контексте 1Cv8) информации из открытого (в контексте нашей ActiveX-формы) набора данных.

 


(c) Сергей Попов, респ.Коми, г.Усинск, 2007  Письмецо написать ...


Hosted by uCoz