1C + Delphi 5: Некоторые простые, полезные алгоритмы

(через OLE; "1C-предприятие версии 7.7")

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

1) ConnectTo1C_Application
Соединение с 1C OLE-сервером автоматизации.
s1cAppProgID - Имя 1C-сервера автоматизации
InitLine - Строка Инициализации (командная строка запуска 1С:Предприятие), см. инструкцию к 1C.
EmptyString - Строковое выражение. Параметр может содержать пустую строку или строковое значение "NO_SPLASH_SHOW" — отключить заставку при запуске системы 1С:Предприятие в режиме OLE Automation сервера.
Функция возвращает OLE-идентификатор 1C-сервера автоматизации.



2) DisconnetFrom1C_Application
Разрыв соединения и выгрузка из памяти 1C OLE-сервера автоматизации.
handle1C - OLE-идентификатор 1C-сервера автоматизации
Функция возвращает TRUE, если идентификатор не был "пустым".

function DisconnetFrom1C_Application(Var handle1C : OleVariant) : boolean;
//Рассоединение с 1С
//Возвращает TRUE, если соединение было "непустым"
begin
Result:=FALSE;
if not VarIsEmpty(handle1C) then Result:=TRUE;
handle1C:=Unassigned;
end;

3) ConnectTo1C_Object
Аналог функци "СоздатьОбъект", т.е. "назначает" соединение на заданный объект 1C.
handle1C - OLE-идентификатор 1C-сервера автоматизации (должен быть создан с помощью функции ConnectTo1C_Application)
(Предполагается, что создавать и манипулировать объектами нужно одновременно во многих Базах 1C).
Функция возвращает OLE-идентификатор созданного объекта.

function ConnectTo1C_Object (handle1C : OleVariant; NameObj : string) : OleVariant;
// Создание объекта 1C (аналог СоздатьОбъект)
begin
Result:=Unassigned;
if not VarIsEmpty(handle1C) then begin
Result:=handle1C.CreateObject(NameObj);
end;
end;

4) DisconnectFrom1C_Object
Разрыв соединения и уничтожение объекта, созданного функцией ConnectTo1C_Object.
handle1C - OLE-идентификатор 1C-сервера автоматизации
Функция возвращает TRUE, если идентификатор не был "пустым".

function DisconnectFrom1C_Object (Var handle1CObj : OleVariant) : boolean;
// Уничтожение объекта 1C (созданного функцией ConnectTo1C_Object)
//Возвращает TRUE, если объект "существовал"
begin
Result:=FALSE;
if not VarIsEmpty(handle1CObj) then Result:=TRUE;
handle1CObj:=Unassigned;
end;

5) YesLinkTo1C_Any
Проверка, является ли Непустым OLE-идентификатор, созданный функцией ConnectTo1C_Object.
Возвращает TRUE, если идентификатор "назначен"

function YesLinkTo1C_Any (HandleAny : OleVariant) : boolean;
//Проверяет, есть ли соединение с ЛЮБЫМ объектом (включая сам 1C OLE-сервер)
begin
Result:=FALSE;
if not VarIsEmpty(HandleAny) then Result:=TRUE;
end;

6) YesReferenceInThis1C.
Проверка, существует ли справочник с именем "NameReference" в Базе (конфигурации), заданной OLE-идентификатором handle1C (handle1C должен быть создан с помощью функции ConnectTo1C_Application).
AllTrim - вспомогательная функция.
Возвращает TRUE, если справочник есть.


7) YesTypeDocumentsInThis1C.
Проверка, существует ли Тип Документов с именем NameDoc в Базе (конфигурации), заданной OLE-идентификатором handle1C (handle1C должен быть создан с помощью функции ConnectTo1C_Application).
AllTrim - вспомогательная функция.

Возвращает TRUE, если тип документов есть.


8) CountReferenceInThis1C
Возвращает кол-во справочников в Базе (конфигурации), заданной OLE-идентификатором handle1C (handle1C должен быть создан с помощью функции ConnectTo1C_Application).
Возвращает ЧИСЛО (кол-во справочников).

function CountReferenceInThis1C (handle1C : OleVariant) : integer;
// Получить кол-во справочников в заданной 1C
begin
Result:=0;
if YesLinkTo1C_Any(handle1C) then begin
Result:=handle1C.Метаданные.Справочник;
end;
end;

9) CountTypeDocumentsInThis1C
Возвращает кол-во типов документов в Базе (конфигурации), заданной OLE-идентификатором handle1C (handle1C должен быть создан с помощью функции ConnectTo1C_Application).
Возвращает ЧИСЛО (кол-во типов документов).

function CountTypeDocumentsInThis1C (handle1C : OleVariant) : integer;
// Получить кол-во документов в заданной 1C
begin
Result:=0;
if YesLinkTo1C_Any(handle1C) then begin
Result:=handle1C.Метаданные.Документ;
end;
end;

10) GetSingleAttrFromReference_1C.
Прочитать Непериодический реквизит из справочника.
handle1C - OLE-идентификатор Базы 1C (handle1C должен быть создан с помощью функции ConnectTo1C_Application).
handle1CObj - OLE-идентификатор справочника (должен быть создан функцией ConnectTo1C_Object)
NameAttr - Имя Реквзита.
AllTrim - вспомогательная функция.
В переменной TypeValue возвращается тип прочитанного значения реквизита (тип приходится жестко контролировать для того, чтобы потом это значение можно было корректно записать).
Функция возвращает прочитанное значение атрибута.


11) PutSingleAttrToReference_1C.
Записать непериодический реквизит в справочник.
handle1C - OLE-идентификатор Базы 1C (handle1C должен быть создан с помощью функции ConnectTo1C_Application).
handle1CObj - OLE-идентификатор справочника (должен быть создан функцией ConnectTo1C_Object)
NameAttr - Имя Реквизита. Value - значение атрибута, которое нужно записать в Базу.
TypeValue - тип переменной, который возвращает функция GetSingleAttrFromReference_1C (тип приходится жестко контролировать для того, чтобы потом это значение можно было корректно записать ).
AllTrim - вспомогательная функция.
Функция возвращает TRUE, если значение атрибута записоно.


12) YesAttrInReference_1C.
Проверить, есть ли в заданном справочнике заданной Базы реквизит с именем NameAttr.
handle1C - OLE-идентификатор Базы 1C (handle1C должен быть создан с помощью функции ConnectTo1C_Application).
TypeReference - Имя справочника
NameAttr - Имя тестируемого Реквизита.
AllTrim - вспомогательная функция.
Функция возвращает TRUE, если такой реквизит существует.


13) ThisAttrInReferenceIsPeriodic_1C.
Проверить, является ли заданный реквизит в справочнике периодическим.
handle1C - OLE-идентификатор Базы 1C (handle1C должен быть создан с помощью функции ConnectTo1C_Application).
TypeReference - Имя справочника
NameAttr - имя тестируемого Реквизита. Функция возвращает TRUE, если тестируемый реквизит периодический.


14) GetCountAttrInReference_1C.
Получить кол-во реквизитов в заданном справочнике заданной Базы Данных 1C .
handle1C - OLE-идентификатор Базы 1C (handle1C должен быть создан с помощью функции ConnectTo1C_Application).
TypeReference - Имя справочника
AllTrim - вспомогательная функция.
Функция возвращает кол-во реквизитов в справочнике.



15) GetTypeAttrReferenceStr_1C.
Получить тип заданного атрибута (в виде строки).
handle1C - OLE-идентификатор Базы 1C
(handle1C должен быть создан с помощью функции ConnectTo1C_Application).
NameReference - Имя справочника
NameAttr - Имя тестируемого Реквизита.
AllTrim
- вспомогательная функция.
Функция возвращает имя типа реквизита (строка).


16) GetTypeAttrReference_1C.
Получить тип заданного атрибута (в виде числа).
handle1C - OLE-идентификатор Базы 1C (handle1C должен быть создан с помощью функции ConnectTo1C_Application).
NameReference - Имя справочника
NameAttr - Имя тестируемого Реквизита.
AllTrim - вспомогательная функция.
Функция возвращает имя типа реквизита (целое число).



Copyright© 2002 Сергей Попов



Новости за месяц

  • Декабрь
    2018
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс