Адрес этой странички : http://doc-prg.narod.ru/art_00002/art_00002.htm 

(c) Sergey Popov, Usinsk, Komi, 2007

© 23.07.2007 Сергей Попов

Здесь следует отметить, что приведенная ниже статья носит чисто иллюстративный характер и не претендует на бОльшее.
Для серьезной и углубленной проработки специальных вопросов информационного обмена крайне рекомендуется использовать фирменное техническое описание системы 1Cv8.

 

1Cv8 + Delphi-5.
OLE (COM).
Считывание информации.
Справочники.
Список групп и элементов.

Статью в виде файла (1.5 мб) можно скачать здесь: art_00002.zip 

В предыдущей статье были рассмотрены вопросы соединения с программой 1С:Предприятие 8 (1Cv8) из внешних приложений.
Но само по себе это не имеет никакого практического значения, если за этим не следует процесс обмена информацией между 1Cv8 и внешним приложением.

Рассмотрим этот вопрос на простом примере: считывание информации из справочников.

Чтобы максимально избавить примеры от лишних деталей - создадим новую информационную базу (в среде 1Cv8).
Затем, нужно запустить программу 1С:Предприятие (1Cv8)  и внести соответствующую информацию.

Здесь можно скачать готовую информационную базу ( 19 кб): homelib_01.zip

 

Исходные данные для наших тренировочных примеров следующие :
Имя каталога, где хранится информационная база данных: HomeLib.
Имя базы данных: Домашняя библиотека.
Идентификатор основного справочника : КнигиВидеоАудио
Список реквизитов справочника :



Рис.1. Реквизиты справочника  КнигиВидеоАудио

 

Атрибуты реквизитов :

Идентификатор
реквизита
Тип Вид Размер Точность Индекс
Авторы Строка - 100 - +
Издательство Строка - 100 - +
Издание Строка - 50 - -
ДатаИздания Дата - - - +
Цена Число - 15 2 -
Количество Число - 5 0 -
ДополнительнаяИнформация Строка - неограниченная длина - -

 

Иерархия групп справочника :

 Рис.2. Содержание справочника  КнигиВидеоАудио

 

Теперь можно приступить к программированию.

 

Создадим новый Delphi-проект (Load_from_SbCnt_OLE.dpr).
Ниже представлена форма проекта :


 Рис.3. Форма проекта Load_from_SbCnt_OLE.dpr

 

Вопросы соединения с 1Cv8 были рассмотрены ранее.
Поэтому сразу же перейдем к программированию процесса считывания информации из справочника КнигиВидеоАудио.

В данном случае будем ориентироваться на вариант : "OLE Automation Client/Server"

Создадим обработчик события : нажатие на кнопку "бегущие человечки".

Здесь все прозрачно (пояснения в тексте обработчика).

Теперь скомпилируем наш проект и запустим его на выполнение :


 Рис.4. Главное окно приложения Load_from_SbCnt_OLE.exe

 

Создадим соединения с 1Cv8 (кнопка "1С").


Рис. 5 Вызов программы 1Cv8, как сервера OLE Automation

 

Чтобы убрать окно программы 1C:Предприятие с экрана монитора - нужно снять отметку с флажка "Видимость" .


Чтобы визуализировать содержание справочника "КнигиВидеоАудио" - нужно на жать на кнопку "бегущие человечки".

 


Рис. 6  Содержание справочника "КнигиВидеоАудио" без учета иерархии.

Сравним результат считывания (с использованием механизма OLE Automation) информации с тем, что покажет программа 1С:Предприятие.
Для этого, визуализируем окно 1С:Предприятие (отметим флажок "Видимость").
Затем, выберем меню "Справочник .." (в линейке меню программы 1С:Предприятие).


Рис. 7  Меню "Справочник" программы 1Cv8

На экране появится диалоговое окно программы 1Cv8 (со списком справочников для выбора) :


Рис. 8  Диалоговое окно со списком справочников.

В списке нужно выбрать справочник "КнигиВидеоАудио"  (в данном случае он единственный в списке) и нажать на кнопку OK.

Программа 1Cv8 откроет окно визуализации справочника :


Рис. 9  Визуализация справочника 
"КнигиВидеоАудио"

Для сравнения обоих вариантов считывания (в контексте нашего Delphi-проекта и в контексте программы 1Cv8) - нужно выключить  режим иерархического просмотра (в программе 1Cv8), нажав на кнопку

 


Рис.10   Включение и выключение режима иерархического 
просмотра справочника.

 


Рис.11   Визуализация справочника "КнигиВидеоАудио"
с отключенным режимом иерархии.

Здесь пояснения излишни ...

 

Выбирая в нашем Delphi-проекте разные режимы считывания информации ("Элементы" или "Группы") - получим следующий результат.

  

Здесь также все понятно.

Исходные тексты этого проекта можно взять здесь (11 кб) :  load_from_sbcnt_ole_v01.zip
Здесь (load_from_sbcnt_com_v01.zip , 11 кб)  - аналогичный пример для варианта соединения : COM-соединение

 

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

 

© 23.07.2007 Сергей Попов


Hosted by uCoz