|
Система АвтоКаталог AutoSoft может выступать в роли OLE сервера, т.е. отвечать на запросы, исходящие из других программ (клиентов). Следующая информация предназначена для программистов (настройщиков), желающих получить возможность совместного использования системы АвтоКаталог AutoSoft и их собственных разработок. В программе АвтоКаталог реализован End-Out OLE Server. Для вызова системы из другого приложения необходимо: 1) Инициализировать сервер. 2) Вызвать единственный метод сервера procedure SendOrder(const Text: WideString); Где Text - это запрос который необходимо выполнить. Система АвтоКаталог включает в себя только одну процедуру SendOrder, но с различными параметрами вызова, которые Вы можете использовать в своих целях. Регистр запроса не важен, но важно соответствие русских и английских букв. Эти запросы позволяют заставить систему АвтоКаталог начать поиск запчасти. /SNBA:No - поиск по номеру всех запчастей по подстроке /SNB:No - поиск по номеру запчасти по подстроке, при первом найденном поиск останавливается и происходит позиционирование на иллюстрацию /SNA:Name - поиск по наименованию всех запчасти по подстроке, при первом найденном позиционирование на иллюстрации /SN:Name - поиск по наименованию запчасти по подстроке, при первом найденном позиционирование на иллюстрации. Если No или Name содержит в конце запроса подстроку #Fully - тогда поиск будет происходить на полное совпадение. Важно! Поиск происходит только с теми марками и моделями, которые указанны в настройках (вкладка "Настройка поиска для применяемости и внешних программ"). Этот запрос позволяет автоматически отобразить деталь на иллюстрации. /RWQN:X - при приеме этого запроса система автоматически выбирает марку, модель, открывает иллюстрацию и автоматически позиционируется на запчасти. Параметр для каждой запчасти X - можно получить при экспорте информации о запчасти в 1С. Эти же варианты запросов можно использовать при вызове программы:
б) можно создать файл search.txt находящийся рядом с исполняемым файлом с описанными параметрами. в) если вызов OLE - сервера затруднителен, то мы можем предложить Вам вызов программы из DLL. procedure ACGetPart_AutoSoft( PartCode : PChar ); stdcall; external 'ACAutoSoft.dll' index 1; ПРИМЕРЫ: Delphi uses ActiveX, ComObj; procedure TForm1.Button1Click(Sender: TObject); var MyObject : variant; begin MyObject := CreateOleObject ('AutoCat.AutoSoft_Catalogue'); MyObject.SendOrder( '/RWQN:0E704A'); end; VB Sub Макрос1() Dim MyObject As Object Set MyObject = CreateObject ("AutoCat.AutoSoft_Catalogue") MyObject.SendOrder "/RWQN:0E704A" End Sub 1С Процедура Процедура1() MyObject = СоздатьОбъект("AutoCat.AutoSoft_Catalogue"); MyObject.SendOrder("/SNBA:2101-5000010-01#Fully"); КонецПроцедуры |