Робота з СОМ - об'єктами системи ISpro

Для взаємодії зовнішнього застосування з середовищем ISpro в постачання системи включений ряд СОМ-об'єктів, що призначені для створення з'єднання з системою ISpro і отримання примірників об'єктів.
COM-об'єкти ISpro (Component Object Model - компонентна об'єктна модель) призначені для організації зовнішнього доступу до прикладних функцій і даних системи.
Всі СОМ-об'єкти системи відповідають вимогам автоматизації і можуть використовуватися з будь-яких мов, що підтримують роботу з інтерфейсами автоматизації.
СОМ-об'єкти можуть містити набір предметних функцій, а також можуть повторювати функціональність набору даних і містити набір стандартних методів навігації і модифікації даних.

Для отримання примірника певного об'єкту зовнішній додаток має виконати наступні кроки:

Звільнення об'єктів проводиться штатними засобами мови, що застосовується у програмуванні.

Реєстрація COM бібліотек:

Для отримання доступу до COM-об'єктів ISpro з 32-бітного додатку бібліотека isstboot.dll повинна бути зареєстрована на всіх комп'ютерах, з яких буде проводитись робота з COM. Є кілька способів зареєструвати бібліотеку:

  1. Встановити робочу станцію з каталогу Station_t - бібліотека isstboot.dll буде зареєстрована в процесі встановлення автоматично.
  2. Зареєструвати бібліотеку isstboot.dll вручну. Для цього потрібно запустити командний рядок cmd від ім’я адміністратора і ввести команду regsvr32.exe <Папка, в якій лежить файл isstboot.dll> \ isstboot.dll

Для отримання доступу до COM-об'єктів з 64-бітного додатку потрібно зареєструвати бібліотеку в COM +.

Приклад використання:

У Microsoft Office Excel відкрийте вікно редактора Visual Basic (Alt + F11, кнопка  Visual Basic на панелі швидкого доступу).

У Microsoft Visual Basic для підключення бібліотек COM-об'єктів виберіть пункт меню Tools / References ... і у вікні References - VBAProject натисніть кнопку Browse.

Виберіть бібліотеку (формат * _c.dll) в залежності від завдання. Файли знаходяться в каталозі \Dll\ серверної частини системи ISpro.

SPROTN_C.DLL - Довідник ОТН
TRDCOM_C.DLL - Витратні накладні
SYSSF_C.DLL - Податковий облік
SYS_C.DLL - Довільний SQL запит
SPRPDR_C.DLL - Довідник підрозділів
SKLNM_C.DLL - Довідник номенклатур
PRDSPC_C.DLL - Специфікація на продукцію
PRDPRF_C.DLL - Акти виконаних робіт
SKL_EI_C.DLL - Довідник ЕІ
SKL_AT_C.DLL - Атрибути номенклатури
PTNK_C.DLL - Довідник контрагентів
PRDMRT_C.DLL - Наряд-завдання виробництва
SKLATR_C.DLL - Атрибути КСУ
TRDACC_C.DLL - Рахунки до оплати
TRDZKG_C.DLL - Замовлення на відпустку
PRDZKZ_C.DLL - Виробниче замовлення
PAYRL_C.DLL - Розрахункова відомість
PAYLS_C.DLL - Особовий рахунок
SYSWRK_C.DLL - Профіль користувача

Примітка. Бібліотеку SYS_C.DLL (Довільний SQL запит) підключати в Tools/ References... не потрібно. Бібліотека автоматично завантажена з ядром при роботі СОМ - об'єктів ISpro


У Microsoft Visual Basic відкрийте вікно Object Browser (F2, кнопка  Object Browser на панелі інструментів).

Для перегляду методів і полів об'єкту в Object Browser, в поле Project/Library виберіть потрібну бібліотеку зі списку. Наприклад, ISSklN - довідник номенклатури.

Приклад програми на VBA, що виводить перші два рядки реєстру контрагентів.

'Менеджер СОМ об'єктів
Dim ComManagerObj As Object
'З’єднання з ISpro
Dim ConnectObj As Object
'Запит для читання записів картотеки
Dim QueryObj As Object
On Error GoTo ErrorHandler
'Створення об’єкту для з’єднання з системою
Set ConnectObj = CreateObject ( "ISStBoot.SysStartup.1")
'Запуск створення з'єднання
'- шлях до серверної частини
'- користувач adm
'- пароль master
Set ComManagerObj = ConnectObj.Connect ( "c: \ ispro", "adm", "password")
'З'єднання встановлено
'Вхід в підприємство №1
Call ConnectObj.SelectFirm (1)
'Всі етапи з'єднання завершені, можна працювати з системою
'Запросити об'єкт для виконання довільного SQL запиту
'Модуль об'єкту - Sys
'Найменування об'єкту - ISysSqlQuery
Set QueryObj = ComManagerObj.GetObjByName ( "Sys", "ISysSqlQuery")
'Виконати запит читання картотеки контрагентів
QueryObj.Text = "select ptn_nm from ptnrk"
QueryObj.OpenObj
'Прочитати перший запис
QueryObj.First
MsgBox (QueryObj.GetFieldValue ( "ptn_nm")
'Прочитати другий запис
QueryObj.Next
MsgBox (QueryObj.GetFieldValue ( "ptn_nm")
'Звільнити об'єкт
QueryObj.CloseObj
Set QueryObj = Nothing
ErrorHandler:
MsgBox ( "Error:" & Chr (13) & Err.Description)
СОМ - об'єкт для виконання SQL запитів
Об'єкт призначений для виконання довільних SQL запитів в схемі даних поточного підприємства і схемою загальносистемних даних. Облік розташування таблиці в загальній схемі даних або схемою підприємства, виконується автоматично.
Опис системного СОМ - об'єкту ISpro:
Назва об'єкту: ISysSqlQuery
Модуль: SYS
Бібліотека типів: SYS_C.DLL

Склад об'єкту:

BSTR Text
Читання / запис тексту SQL запиту.
SetParamValue (BSTR ParamName, VARIANT Val)
Встановлення значення параметра запиту.
ParamName - найменування параметру, без символу ":"
Val - значення параметра

VARIANT GetFieldValue (BSTR FieldName)
Повертає значення полю запиту.
FieldName - найменування полю
VARIANT_BOOL OpenObj
Відкрити набір
VARIANT_BOOL HRESULT CloseObj
Закрити набір
VARIANT_BOOL First
Стати на перший запис
VARIANT_BOOL Last
Стати на останній запис
VARIANT_BOOL Prior
Стати на попередній запис
VARIANT_BOOL Next
Стати на наступний запис