Weight Loss Program

Комплексне рішення для автоматизації підприємства

Управління фінансовими ресурсами, грошовими потоками, завдання логістики (управління закупівлями, запасами, продажами).

Работа с СОМ - объектами системы ИС-ПРО



Для взаимодействия внешнего приложения со средой ИС-ПРО в поставку системы включен ряд СОМ-объектов, предназначенных для создания соединения с системой ИС-ПРО и получения экземпляров объектов.
COM-объекты ИС-ПРО (Component Object Model - компонентная объектная модель) предназначены для организации внешнего доступа к прикладным функциям и данным системы.

Все СОМ-объекты системы соответствуют требованиям автоматизации и могут использоваться из любых языков, поддерживающих работу с интерфейсами автоматизации.
СОМ-объекты могут содержать набор предметных функций, а так же, могут повторять функциональность набора данных и содержать набор стандартных методов навигации и модификации данных.
Для получения экземпляра определенного объекта внешнее приложение должно выполнить следующие шаги:
  • установить соединение с системой, указав при этом предприятие. После успешного соединения будет запущена рабочая станция ИС-ПРО, работающая в режиме СОМ-сервера.
  • в результате успешного соединения внешнее приложение получает экземпляр объекта– менеджера СОМ-объектов. Менеджер отвечает за создание экземпляров всех остальных СОМ- объектов системы.
  • внешнее приложение, посредством менеджера, создает требуемые СОМ-объекты.
 Освобождение объектов производится штатными средствами применяемого языка программирования.

 

Регистрация COM библиотек:

Для получения доступа к COM-объектам ИС-ПРО из 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\ серверной части системы ИС-ПРО.

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...» не нужно. Библиотека автоматически загружена с ядром при работе СОМ - объектов ИС-ПРО.
 


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

 

Для  просмотра методов и полей объекта в Object Browser, в поле Project/Library выберите нужную библиотеку из списка. Например, ISSklN - справочник номенклатур.

 


Пример программы на VBA, выводящей первые две строки реестра контрагентов.
Менеджер СОМ объектов 
Dim ComManagerObj As Object
‘Соединение с ИС-ПРО
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 запросов в схеме данных текущего предприятия и схеме общесистемных данных. Учет расположения таблицы в общей схеме данных или схеме предприятия, выполняется автоматически.
Описание системного СОМ - объекта ИС-ПРО:
Имя объекта: 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
Стать на следующую запись

Примечание.
В случае необходимости использования параметров в запросе, параметры необходимо именовать в соответствии с правилами именования полей и предварять параметр в тексте запроса символом “:", например where rcd=:new_rcd - сравнение значения поля “rcd” со значением параметра “new_rcd”.

Пример
использования объекта:
Private ConnectObj As Object
Private ManagerObj As Object
Private QryObj As Object
Private Sub DoWork()
On Error GoTo ErrorHandler
Set ConnectObj = CreateObject("ISStBoot.SysStartup.1")
Set ManagerObj = ConnectObj.Connect("D:\bpw", "pva", "")
Call ConnectObj.SelectFirm(1)
Set QryObj = ManagerObj.GetObjByName("Sys", "ISysSqlQuery")
QryObj.Text = "select spr_nm from sspr where spr_rcd=:rcd"
Call QryObj.SetParamValue("rcd", 1)
QryObj.OpenObj
QryObj.First
While QryObj.Next
If Not IsNull(QryObj.GetFieldValue("Spr_Nm")) Then
MsgBox (QryObj.GetFieldValue("Spr_Nm"))
End If
Wend
QryObj.CloseObj
Exit Sub
ErrorHandler:
MsgBox ("Error:" & Chr(13) & Err.Description)
End Sub

 
Запуск ресурсных модулей из программ BASIC:
В отчетах Word и Excel для обращения к функциям среды ИС-ПРО следует использовать следующие вызовы:
RES_ADD_MODULE( )
Добавить модуль в список запускаемых
RES_DEL_MODULES
Очистить список запускаемых модулей
RES_LOAD_MODULES
Загрузить все модули из списка
RES_UNLOAD_MODULES
Завершить работы с модулями из списка
 


Пример обращения к ресурсам системы из отчета:
Sub ReportMain(Mgr As Object)
Set ComManager = Mgr
' Запросить интерфейс связи со средой ИС-ПРО
Set Env = ComManager.GetObjByName( "Sys", "ISysEnvironment" )
 ' Загрузить модуль
' Общесистемные ресурсы (SYS_R)
Env.RES_ADD_MODULE( "SYS_R" )
Env.RES_LOAD_MODULES
' Считать информацию о контрагенте
Env.PTN_READ_CD ( "001" )
' Завершить работу с модулем
Env.RES_UNLOAD_MODULES
End Sub
Google+