Адрес этой странички : http://doc-prg.narod.ru/art_00002/art_00002.htm
© 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 Сергей Попов