Приложение 4. Описание API ONTARIO 1


create procedure Balance_Remains
  @RegID int,
  @OpDate datetime,
  @Subj1ID int = 0,
  @Subj2ID int = 0,
  @Subj3ID int = 0,
  @ThingID int = 0,
  @SeriesID int = 0,
  @TargetID int = 0,
  @SummIn money output,
  @SummInCur money output,
  @AmountIn float output,
  @SummOut money output,
  @SummOutCur money output,
  @AmountOut float output

Расчет входящего сальдо (остатка) заданного объекта учета по заданному регистру на заданную дату с учетом уровней аналитики.

Входные параметры:

@RegID - ID регистра учета,
@OpDate - дата, на которую рассчитывается остаток,
@Subj1ID - ID субъекта-агента (0-для всех),
@Subj2ID - ID субъекта-контрагента (0-для всех),
@Subj3ID - ID субъекта места (0-для всех),
@ThingID - ID объекта учета,
@SeriesID - ID серии/партии объекта учета (0-для всех),
@TargetID - ID назначения (0-для всех)

Выходные параметры:

@SummIn - сумма приходов на заданную дату в учетной валюте,
@SummInCur - сумма приходов на заданную дату в валюте документов,
@AmountIn - количество прихода на заданную дату в базовых единицах измерения данного объекта учета,
@SummOut - сумма расходов на заданную дату в учетной валюте,
@SummOutCur - сумма расходов на заданную дату в валюте документа,
@AmountOut - количество прихода на заданную дату в базовых единицах измерения данного объекта учета

Определена в Docs\Balance.sql


create procedure Balance_RemainsTree
  @RegID int,
  @OpDate datetime,
  @Subj1ID int = 0,
  @Subj2ID int = 0,
  @Subj3ID int = 0,
  @ThingID int = 0,
  @SeriesID int = 0,
  @TargetID int = 0,
  @SummIn money output,
  @SummInCur money output,
  @AmountIn float output,
  @SummOut money output,
  @SummOutCur money output,
  @AmountOut float output

Расчет входящего сальдо (остатка) заданного объекта учета по заданному регистру на заданную дату с учетом уровней аналитики. При указании аналитики субъекта-агента @Subj1ID будут учитываться также все подчиненные (в соответствии со структурой фирмы) данному агенту субъекты

Входные и выходные параметры аналогичны описанным для процедуры Balance_Remains

Определена в Docs\Balance.sql


create procedure Calcs_Average
  @RegID int,
  @SubjID int,
  @DocID int,
  @DeleteFlag int = 1

Процедура расчета списания объектов учета по заданному регистру учета методом средневзвешенных. Процедура вызывается автоматически ядром при проведении хозяйственной операции (проводки), которое передает процедуре входные параметры:

@RegID - ID регистра учета,
@SubjID - ID субъекта-агента,
@DocID - ID документа, по которому были совершены операции,
@DeleteFlag - признак: 0 - проводки были добавлены, 1 - удалены

Определена в Docs\Calcs.sql


create procedure Calcs_FIFO
  @RegID int,
  @SubjID int,
  @DocID int,
  @DeleteFlag int = 1

Процедура расчета списания объектов учета по заданному регистру учета методом FIFO. Процедура вызывается автоматически ядром при проведении хозяйственной операции (проводки), которое передает процедуре входные параметры:

@RegID - ID регистра учета,
@SubjID - ID субъекта-агента,
@DocID - ID документа, по которому были совершены операции,
@DeleteFlag - признак: 0 - проводки были добавлены, 1 - удалены

Определена в Docs\Calcs.sql


create procedure OpLog_AddRecord
  @DocID int,
  @OpDate datetime,
  @WhereID int,
  @Subj1ID int,
  @Subj2ID int,
  @Direction tinyint,
  @OpClassID int,
  @PosID int,
  @SeriesID int,
  @Price money,
  @PriceCur money,
  @Amount float,
  @StateID int,
  @TargetID int,
  @MoveType tinyint = 0,
  @No int = 0

Добавляет проводку хозяйственной операции в буфер проводок. При этом сами проводки выполняются процедурой OpLog_DoPass.

@DocID - ID документа,
@OpDate - дата операции,
@WhereID - ID субъекта места,
@Subj1ID - ID субъекта-агента,
@Subj2ID - ID субъекта-контрагента,
@Direction - направление перемещения (0-приход, 1-расход),
@OpClassID - ID регистра учета,
@PosID - ID объекта учета,
@SeriesID - ID серии/партии объекта учета,
@Price - цена объекта учета в учетной валюте,
@PriceCur - цена объекта учета в валюте документа,
@Amount - количество объекта учета в базовых единицах измерения,
@StateID - состояние, в которое переводится документ в момент совершения операции,
@TargetID - ID назначения,
@MoveType - тип перемещения,
@No - номер позиции состава документа, по которой сделана проводка

Определена в Docs\OpLog.sql


create procedure OpLog_AddRecordMeasured
  @DocID int,
  @OpDate datetime,
  @WhereID int,
  @Subj1ID int,
  @Subj2ID int,
  @Direction tinyint,
  @OpClassID int,
  @PosID int,
  @SeriesID int,
  @Price money,
  @PriceCur money,
  @Amount float,
  @StateID int,
  @TargetID int,
  @MeasureID int,
  @MoveType int = 0,
  @No int = 1

Добавляет проводку хозяйственной операции в буфер проводок. При этом количество может быть указано в любой производной единице измерения - оно будет переведено в базовую. Пропорционально изменению количества изменится также и цена.

Параметры такие же, как для процедуры OpLog_AddRecord, за исключением:

@Amount - количество объекта учета в производных единицах измерения,
@MeasureID - ID производной единицы измерения

Определена в StorDoc\Addon.sql


create procedure OpLog_CntAcc
  @AccCalcID int,
  @CntDate datetime,
  @CurrencyID int,
  @RateID int,
  @BankName varchar (128) OUTPUT,
  @FactRemain money OUTPUT,
  @PayPlan money OUTPUT,
  @ExpPlan money OUTPUT,
  @FactMExp money OUTPUT,
  @FactPPayMExp money OUTPUT,
  @DispFormat varchar(128) OUTPUT

Возвращает суммовые показатели расчетного счета на заданную дату в заданной валюте по курсу.

Параметры:
@AccCalcID - ID расчетного счета,
@CntDate - дата расчета,
@CurrencyID - ID валюты,
@RateID - ID курса

Возвращает:
@BankName - название банка, в котором находится расчетный счет,
@FactRemain - фактический остаток денег на расчетном счете,
@PayPlan - планируемый приход денег на расчетный счет,
@ExpPlan - планируемый расход денег с расчетного счета,
@FactMExp - разность между фактическим остатком и планируемым расходом,
@FactPPayMExp- сумма фактического остатка и планируемого прихода за вычетом планируемого расхода,
@DispFormat - формат отображения денежной суммы для заданной валюты

Определена в FinDoc\addon.sql


create procedure OpLog_CntAccList
  @OID int,
  @CntDate datetime,
  @InclSub bit,
  @CalcRemains bit

Возвращает таблицу расчетных счетов субъекта (фирмы), а также их суммовые показатели на заданную дату в заданной валюте по курсу.

Параметры:
@OID - ID субъекта (фирмы),
@CntDate - дата расчета,
@InclSub - признак включения расчетных счетов всех подчиненных субъектов,
@CalcRemains - признак расчета суммовых показателей, если false - возвращается только таблица со списком расчетных счетов, если true - также рассчитываются и заполняются суммовые показатели.

Возвращаемая таблица имеет следующую структуру:

create table #AccCalcs(
  AccCalcID    int not null,       -- ID расчетного счета
  Name         varchar(128) null,  -- название расчетного счета
  BaseClass    varchar(16) null,   -- класс объекта "расчетный счет"
  CurrencyID   int not null,       -- ID валюты
  CurrName     varchar(128) null,  -- название валюты
  CurrClass    varchar(16) null,   -- класс объекта "валюта"
  FactRemain   money null,         -- фактический остаток денег на расчетном счете
  PayPlan      money null,         -- планируемый приход денег на расчетный счет
  ExpPlan      money null,         -- планируемый расход денег с расчетного счета
  FactMExp     money null,         -- разность между фактическим остатком и планируемым расходом
  FactPPayMExp money null,         -- сумма фактического остатка и планируемого прихода за вычетом планируемого расхода
  BankID       int not null,       -- ID банка
  BankName     varchar(128) null,  -- название банка
  BankClass    varchar(16) null    -- класс объекта "банк"
)

Определена в FinDoc\addon.sql


create procedure OpLog_CntGoodStore
  @PosID int,
  @SeriesID int,
  @Subj1ID int,
  @CntDate datetime,
  @MeasureID int = 0,
  @CurRemain float output,
  @WaitIn float output,
  @Reserved float output

Расчет остатка товара данной серии/партии на складе на заданную дату в заданной единице измерения или в учетной единице измерения, если таковая не задана

Параметры:
@PosID - ID товарной позиции,
@SeriesID - ID серии/партии товарной позиции,
@Subj1ID - ID субъекта-склада,
@CntDate - дата расчета,
@MeasureID - ID единицы измерения, если 0, то остаток возвращается в базовой единице измерения для данного товара

Возвращает:
@CurRemain - текущий остаток,
@WaitIn float - количество ожидаемого прихода,
@Reserved - количество зарезервированного товара

Определена в Docs\OpLog.sql


create procedure OpLog_CntGoodStoresAll
  @PosID int,
  @SeriesID int,
  @CntDate datetime,
  @MeasureID int = 0

Расчет остатка товара данной серии/партии на всех складах на заданную дату в заданной единице измерения или в учетной единице измерения, если таковая не задана

Параметры:
@PosID - ID товарной позиции,
@SeriesID - ID серии/партии товарной позиции,
@CntDate - дата расчета,
@MeasureID - ID единицы измерения, если 0, то остаток возвращается в базовой единице измерения для данного товара

Возвращает таблицу следующей структуры:

create table #GRemains(
  StoreID    int not null,   -- ID субъекта-склада
  StoreName  varchar( 128 ), -- наименование склада
  StoreClass varchar( 16 ),  -- класс объекта "склад"
  CurRemain  float null,     -- текущий остаток
  WaitIn     float null,     -- количество ожидаемого прихода товара
  Reserved   float null,     -- количество зарезервированного товара
  FreeRemain float null,     -- свободный остаток, равный текущему остатку за вычетом зарезервированного
  MeasureID  int not null    -- ID единицы измерения, в которой рассчитывались остатки
)

Определена в Docs\OpLog.sql


create procedure OpLog_CntGoodStoresReserved
  @StoreID int,
  @PosID int,
  @SeriesID int,
  @MeasureID int = 0

Возвращает все документы, по которым проходит резерв данного товара по данному складу с выводом количества в заданной единице измерения или в учетной единице измерения, если таковая не задана.

Параметры:
@StoreID - ID субъекта-склада,
@PosID - ID товарной позиции,
@SeriesID - ID серии/партии товарной позиции,
@MeasureID - ID единицы измерения, если 0, то остаток возвращается в базовой единице измерения для данного товара

Возвращает таблицу следующей структуры:

select
  Amount,     -- количество зарезервированного товара
  Subj2ID,    -- ID субъекта-контрагента, для которого сделан резерв товара
  Subj2Name,  -- наименование субъекта-контрагента
  Subj2Class, -- класс субъекта-контрагента
  OpDate,     -- дата операции резервирования
  DocID,      -- ID документа, по которому проведено резервирование
  DocName     -- название документа,
  DocClass,   -- класс документа
  No          -- номер позиции в документе

Определена в Docs\OpLog.sql


create procedure OpLog_CntStoreGoodsAll
  @StoreID int,
  @GroupID int,
  @CntDate datetime,
  @InclSub int

Расчет остатков всех товаров всех серий/партии на данном складе и ему подчиненных с учетом группы товара. Все остатки рассчитываются в учетной единице измерения для данного товара.

Параметры:
@StoreID - ID субъекта-склада,
@GroupID - ID группы товаров, если 0, то выбираются все товары,
@CntDate - дата расчета,
@InclSub - признак включения подчиненных субъектов-складов (0-не включать, 1-включать)

Возвращает таблицу следующей структуры:

create table #GRemains(
  PosID        int not null,         -- ID товарной позиции
  PosName      varchar( 128 ) null, -- наименование товарной позиции
  PosClass     varchar( 16 ) null,  -- класс товарной позиции
  PosExt       varchar( 128 ) null, -- код (артикул) товарной позиции
  SeriesID     int not null,         -- ID серии/партии
  SeriesName   varchar( 128 ) null, -- наименование серии/партии
  SeriesClass  varchar( 16 ) null,  -- класс серии/партии
  MeasureID    int null,             -- ID единицы измерения
  MeasureName  varchar( 128 ) null, -- название единицы измерения
  MeasureClass varchar( 16 ) null,  -- класс единицы измерения
  CurRemain    float null,           -- текущий остаток
  WaitIn       float null,           -- количество ожидаемого прихода товара
  Reserved     float null,           -- количество зарезервированного товара
  FreeRemain   float null,          -- свободный остаток, равный текущему остатку за вычетом зарезервированного
)

Определена в Docs\OpLog.sql


create procedure OpLog_DelRecords
  @DocID int

Удаляет все хозяйственные операции (проводки) по данному документу из журнала операций.

Параметры:
@DocID - ID документа.

Должна выполняться в транзакции. При нарушении условий проверки остатка по какому-либо регистру учета генерирует ошибку с сообщением всех атрибутов проводки, входящих в аналитику регистра и откатывает все транзакции.

Определена в Docs\OpLog.sql


create procedure OpLog_DoPass
  @DocID int

Выполняет проводку всех хозяйственных операций по данному документу, занесенных ранее в буфер проводок посредством процедур OpLog_AddRecord или OpLog_AddRecordMeasured.

Параметры:
@DocID - ID документа.

Должна выполняться в транзакции. При нарушении условий проверки остатка по какому-либо регистру учета генерирует ошибку с сообщением всех атрибутов проводки, входящих в аналитику регистра и откатывает все транзакции.

Определена в Docs\OpLog.sql


create procedure spCheckAccess
  @OID int,
  @RType int,
  @UserID int = NULL

Осуществляет проверку заданных прав доступа к данному объекту со стороны пользователя.

Параметры:
@OID - ID объекта,
@RType - тип прав доступа,
@UserID - ID пользователя или рабочей группы, если 0, то проверяется для текущего пользователя

Возвращает: 0 - есть доступ, 1 - нет доступа.

Определена в Kernel\Kernel.sql


create procedure spCheckLogin

Возвращает 0, если текущий зарегистрированный пользователь MS SQL, присоединившийся к БД ONTARIO 1 является зарегистрированным пользователем в системе ONTARIO и возвращает 1 - в противном случае.

Определена в Kernel\Kernel.sql


create procedure spClassBasedOn
  @Class varchar( 16 ),
  @BaseClass varchar( 16 )

Проверяет, является ли класс @Class подклассом @BaseClass. В случае успешной проверки возвращает 0, иначе 1.

Определена в Kernel\Kernel.sql


create procedure spCreateObj
  @OID int output,
  @Class varchar( 16 ),
  @FolderID int,
  @Name varchar( 128 ) = " ",
  @Ext varchar( 128 ) = " "

Создает в системе объект данного класса в заданной папке с проверкой прав создания у текущего пользователя. При отсутствии прав генерирует сообщение об ошибке и возвращает 1. В случае успешного создания возвращает 0.

Параметры:
@Class - класс объекта,
@FolderID - ID папки, в которой создается объект,
@Name - название объекта (необязательное значение, помещается в Objs.Name),
@Ext - расширение объекта (необязательное значение, помещается в Objs.Ext)

Возвращает:
@OID - ID созданного объекта в случае успешного создания

Определена в Kernel\Kernel.sql


create procedure spDeleteObj
  @OID int,
  @Destroy int = 0

Удаляет из системы объект с проверкой прав создания у текущего пользователя. При отсутствии прав генерирует сообщение об ошибке и возвращает 1. В случае успеха возвращает 0. При логическом удалении объект перемещается в папку "Удаленные".

Параметры:
@OID - ID объекта,
@Destroy - флаг удаления: 0 - удалить логически (свойство Deleted устанавливается в 1), 1 - физически

Определена в Kernel\Kernel.sql


create procedure spDeleteXObj
  @FolderID int

Удаляет логически из системы объект-папку и все в нее входящие объекты с проверкой прав создания у текущего пользователя. При отсутствии прав генерирует сообщение об ошибке и возвращает 1. В случае успеха возвращает 0. Удаление объекты с сохранение иерархии перемещаются в папку "Удаленные".

Параметры:
@FolderID - ID объекта-папки,

Определена в Kernel\Kernel.sql


create procedure spEventHandler
  @OID int,
  @Event varchar( 1 )

Обработчик сообщений для проверки ссылочной целостности объектов связанных классов. Вызов обработчика уже определен для базового класса, поэтому, как правило, его прямой вызов не требуется.

Вызов необходимо производить в транзакции, контекст которой связан с событием (удалением, созданием, редактированием) в целом. Обработчик вызывает последовательно все процедуры проверки целостности объектов связанных классов, которые в случае ошибки ее генерируют и возвращают 1 - в этом случае надо провести откат транзакции. В случае успеха всех проверок возвращается 0 и необходимо зафиксировать транзакцию.

Параметры:
@OID - ID объекта, с которым произошло событие,
@Event - тип события: "C"-создание; "S"-модификация, сохранение; "D"-удаление

Возможно создание пользовательских типов событий и обработка созданных для них процедур аналогично описанному механизму для имеющихся событий. Например, можно определить событие для изменения состояния документа и проверки каких-либо бизнес-правил (лимита количества или скидок для менеджера) при отгрузке товара. При этом необходимо вызывать обработчик в теле процедуры TDBODoc_ChageState.

Определена в Kernel\Kernel.sql


create procedure spFillParentClasses
  @Class varchar( 16 )

Заполняет таблицу Trees значениями ID суперклассов для заданного класса @Class с указанием уровня. Уровень определяется: 0 - сам заданный класс, (-1) - его суперкласс, (-2) - суперкласс суперкласса и т.д.

Для извлечения данных следует воспользоваться выборкой из Trees по следующим полям:
SPID - @@SPID текущего пользователя,
OID - ID класса, который необходимо связать по ClassID с таблицей Classes,
Lev - номер уровня иерархии

Определена в Kernel\Kernel.sql


create procedure spGetAdminID
  @AdmID int output

Возвращает @AdmID - ID пользователя ONTARIO1, являющегося системным администратором MSSQL Server.

Определена в Kernel\Kernel.sql


create procedure spGetClassID
  @OID int output,
  @Class varchar( 16 ) output

Возвращает @OID - ID объекта "класса" или @Class - имя класса по @OID в зависимости от того, какой параметр задан

Определена в Kernel\Kernel.sql


create procedure spGetOrigin
  @OID int output

Возвращает @OID - ID объекта-оригинала, если заданный @OID на входе был ID объекта-ссылки. Если был задан ID не объекта-оригинала, то возвращается тот же самый ID, даже если ссылок на него не существует.

Определена в Kernel\Kernel.sql


create procedure spGetSFolderID
  @FolderID int output,
  @Name varchar( 255 ) output,
  @SFName varchar( 32 )

Возвращает @FolderID - ID системного объекта и @Name - его наименование по заданному системному имени @SFName.

Определена в Kernel\Kernel.sql


create procedure spGetSFolderName
  @SFID int,
  @SFName varchar( 32 ) output

Возвращает системное имя объекта @SFName по ее ID, передаваемому в @SFID.

Определена в Kernel\Kernel.sql


create procedure spGetUFID
  @UserID int,
  @UFID int output

Возвращает @UFID - ID личной паки пользователя. ID пользователя ONATRIO1 передается в @UserID.

Определена в Kernel\Kernel.sql


create procedure spGetUserID
  @UserID int output

Возвращает @UserID - ID текущего пользователя ONATRIO1.

Определена в Kernel\Kernel.sql


create procedure spMoveObj
  @OID int,
  @DestFolderID int

Перемещает объект с ID -@OID, в папку с ID - @DestFolderID. Осуществляется проверка наличия прав на перемещение для текущего пользователя, проверка на несовпадение папки-приемника с папкой-источником и проверка на недопустимость перемещения родительской папки в одну из дочерних (в этом случае возникает рекурсия выборки поддерева папок). Во всех случаях нарушения проверяемых условий генерируется сообщение об ошибке.

Определена в Kernel\Kernel.sql


create procedure spRegisterClass
  @Class varchar( 16 ),
  @BaseClass varchar( 16 ),
  @DelMode tinyint,
  @Description varchar( 128 )

Регистрирует новый класс в системе или изменяет атрибуты уже зарегистрированного . Параметры:

@Class - системное имя класса,
@BaseClass - системное имя суперкласса,
@DelMode - режим удаления для объектов класса,
@Description - описание класса (пользовательское название)

Определена в Kernel\Kernel.sql


create procedure spRegisterModule
  @Name varchar( 32 ),
  @Description varchar( 128 ),
  @Version varchar( 16 ),
  @State int = 1

Регистрирует в системе новый модуль. Данная процедура используется утилитой DBSetup. Параметры:

@Name - системное имя модуля,
@Description - описание модуля (пользовательское название),
@Version - версия модуля,
@State - состояние (не используется, зарезервированный параметр)

Определена в Kernel\Kernel.sql


create procedure spRetParentClasses
  @Class varchar( 16 )

Возвращает множество всех суперклассов для данного класса @Class, включая сам класс. Процедура аналогична по содержанию spFillParentClasses, но не использует таблицу Trees, а возвращает множество строк данных со следующей структурой:

OID int
Class varchar( 16 )
Lev int

При использовать необходимо создать временную таблицу с указанной структурой атрибутов и выполнить INSERT..EXECUTE.

Определена в Kernel\Kernel.sql


create procedure spRetSubClasses
  @BaseClass varchar( 16 )

Возвращает множество всех подклассов для данного класса @Class, включая сам класс. Процедура аналогична по содержанию spSubTreeFillClasses, но не использует таблицу Trees, а возвращает множество строк данных со следующей структурой:

OID int
Class varchar( 16 )
Lev int

При использовать необходимо создать временную таблицу с указанной структурой атрибутов и выполнить INSERT..EXECUTE.

Определена в Kernel\Kernel.sql


create procedure spSendShortcut
  @OID int output,
  @UserID int

Пересылает ссылку на объект @OID в личную папку пользователя ONTARIO1 @UserID.

Определена в Kernel\Kernel.sql


create procedure spSendToUser
  @OID int,
  @UserID int

Пересылает объект с @OID в личную папку пользователя ONTARIO1 @UserID. При пересылке выполняются все проверки, указанные для процедуры spMoveObj.

Определена в Kernel\Kernel.sql


create procedure spSetAccess
  @OID int,
  @AccAll tinyint,
  @AccCreate tinyint,
  @AccRead tinyint,
  @AccWrite tinyint,
  @AccDelete tinyint,
  @AccCopy tinyint,
  @UserID int = NULL

Устанавливает или меняет права доступа к объекту для пользователя или рабочей группы. Параметры:

@OID - ID объекта,
@AccAll - полные права доступа (0-снять, 1-установить),
@AccCreate - права доступа на создание (0-снять, 1-установить),
@AccRead - права доступа на чтение (0-снять, 1-установить),
@AccWrite - права доступа на запись (0-снять, 1-установить),
@AccDelete - права доступа на удаление (0-снять, 1-установить),
@AccCopy - права доступа на копирование (перемещение) (0-снять, 1-установить),
@UserID - ID пользователя или группы, если не указан, то доступ меняется для текущего пользователя

Определена в Kernel\Kernel.sql


create procedure spSetXAccess
  @OID int,
  @AccAll tinyint,
  @AccCreate tinyint,
  @AccRead tinyint,
  @AccWrite tinyint,
  @AccDelete tinyint,
  @AccCopy tinyint,
  @UserID int = null

Устанавливает или меняет права доступа к объекту-папке и всех объектов, входящих в эту папку, для пользователя или рабочей группы. Параметры:

@OID - ID объекта,
@AccAll - полные права доступа (0-снять, 1-установить),
@AccCreate - права доступа на создание (0-снять, 1-установить),
@AccRead - права доступа на чтение (0-снять, 1-установить),
@AccWrite - права доступа на запись (0-снять, 1-установить),
@AccDelete - права доступа на удаление (0-снять, 1-установить),
@AccCopy - права доступа на копирование (перемещение) (0-снять, 1-установить),
@UserID - ID пользователя или группы, если не указан, то доступ меняется для текущего пользователя

Определена в Kernel\Kernel.sql


create procedure spSubTreeFill
  @OID int

Заполняет системную таблицу Trees объектами поддерева с корнем в заданном объекте-папке @OID. Для извлечения данных следует воспользоваться выборкой из Trees по следующим полям:
SPID - @@SPID текущего пользователя,
OID - ID объекта,
Lev - номер уровня иерархии, начиная с 1. Уровень 1 - сам объект-папка @OID, 2 - ID папки, в которой расположен объект 3- ID папки, в котором расположена папка объекта и т.д.

После использования необходимо очистить выборку поддерева из Trees путем вызова процедуры spSubTreeFree.

Определена в Kernel\Kernel.sql


create procedure spSubTreeFillClasses
  @BaseClass varchar( 16 )

Заполняет системную таблицу Trees подклассами для данного класса @Class.

Заполняет таблицу Trees значениями ID иерархии подклассов для заданного класса @Class с указанием уровня. Уровень определяется: 1 - сам заданный класс, 2 - его подкласс, 3 - подкласс подкласса и т.д.

Для извлечения данных следует воспользоваться выборкой из Trees по следующим полям:
SPID - @@SPID текущего пользователя,
OID - ID класса, который необходимо связать по ClassID с таблицей Classes,
Lev - номер уровня иерархии

После использования необходимо очистить выборку иерархии классов из Trees путем вызова процедуры spSubTreeFree.

Определена в Kernel\Kernel.sql


create procedure spSubTreeFree

Очищает таблицу Trees от результатов предыдущей выборки поддерева или иерархии классов.

Определена в Kernel\Kernel.sql


create procedure spSubTreeGet
  @FolderID int,
  @OrderBy varchar( 32 ),
  @AscDesc int

Возвращает множество строк данных из таблицы Objs, соответствующих объектам, расположенным в папке @FolderID. Параметр @OrderBy определяет атрибут для сортировки возвращаемого списка и может принимать следующие значения: Name, Ext, Summ, CreationDate, State, Attrib. Эти значения совпадают с одноименными атрибутами таблицы Objs и свойствами базового класса. Параметр @AscDesc определяет порядок сортировки: 0-сортировка Ascending, иначе Descending.

Определена в Kernel\Kernel.sql


create procedure spSubTreeGetFolders
  @FolderID int

Возвращает множество строк данных из таблицы Objs,соответствующим объектам, расположенным в папке @FolderID и являющимися подклассами TDBOFolder, то есть объектами-папками.

Определена в Kernel\Kernel.sql


create procedure spSubTreeRet
  @OID int

Аналогична процедуре spSubTreeFill без использование таблицы Trees. Возвращает множество объектов поддерева иерархии с корнем в папке @OID. Возвращаемое множество данных имеет структуру:

OID int
Lev int

При использовать необходимо создать временную таблицу с указанной структурой атрибутов и выполнить INSERT..EXECUTE.

Определена в Kernel\Kernel.sql


create procedure spSyncShortcut
  @OID int

Синхронизирует свойства объекта на уровне свойств базового класса с одноименными атрибутами имеющихся на него ссылок. Вызов этой процедуры производится на уровне базового класса в методе TDBObject_Save, поэтому вызывать ее вручную необходимо лишь в других методах подклассов, которые изменяют какие-либо свойства уровня базового класса.

Определена в Kernel\Kernel.sql


create procedure spUndeleteObj
  @OID int,
  @FolderID int

Восстанавливает логически удаленный объект @OID и перемещает его в папку @FolderID.

Определена в Kernel\Kernel.sql


create procedure spUnregisterClass
  @Class varchar( 16 )

Удаляет регистрацию в системе для класса с именем @Class.

Определена в Kernel\Kernel.sql


create procedure spUnregisterModule
  @Name varchar( 32 )

Удаляет регистрацию в системе для модуля с именем @Name.

Определена в Kernel\Kernel.sql


create procedure spUpTreeFill
  @OID int

Заполняет системную таблицу Trees объектами-папками, расположенными выше по дереву, чем объект @OID. Таким образом, выбирается путь от объекта @OID до виртуальной вершины с OID=0. Для извлечения данных следует воспользоваться выборкой из Trees по следующим полям:
SPID - @@SPID текущего пользователя,
OID - ID объекта,
Lev - номер уровня иерархии, начиная с (-1). Уровень (-1) - сам объект @OID, (-2) - его папка, (-3)- папки папки и т.д.

После использования необходимо очистить выборку поддерева из Trees путем вызова процедуры spSubTreeFree.

Определена в Kernel\Kernel.sql


create procedure spUpTreeRet
  @OID int

Аналогична процедуре spUpTreeFill, но без использования таблицы Trees. Возвращаемое множество данных имеет структуру:

OID int - ID объекта
Lev int  - номер уровня иерархии, начиная с (-1). Уровень (-1) - сам объект @OID, (-2) - его папка, (-3)- папки папки и т.д.

При использовать необходимо создать временную таблицу с указанной структурой атрибутов и выполнить INSERT..EXECUTE.

Определена в Kernel\Kernel.sql


create procedure TDBODefault_AddValue
  @OID int,
  @SubjID int,
  @IntVal int = null,
  @StrVal varchar( 255 ) = null,
  @FloatVal float = null,
  @MoneyVal money = null,
  @DateVal datetime = null

Добавляет новое значение для настройки с @OID, связанное с субъектом @SubjID. В зависимости от типа значения следует инициализировать один из соответствующих параметров @<тип>Val.

Определена в Kernel\Defaults.sql


create procedure TDBODefault_CreateInstance
  @OID int output,
  @Name varchar( 128 ),
  @SysName varchar( 32 ),
  @VType int

Создает в БД настройку с именем @SysName, пользовательским названием @Name и типом значения @VType (0-целое, 1-строка, 2-вещественное, 3-деньги, 4-дата, 5-объект). При успешном создании возвращает значение “0”, при ошибке – “1”.

Определена в Kernel\Defaults.sql


create procedure TDBODefault_DelValue
  @OID int,
  @SubjID int

Удаляет из настройки с @OID значение, связанное с субъектом @SubjID.

Определена в Kernel\Defaults.sql


create procedure TDBODefault_GetValue
  @SysName varchar( 128 ),
  @SubjID int output,
  @IntVal int output,
  @StrVal varchar( 255 ) output,
  @FloatVal float output,
  @MoneyVal money output,
  @DateVal datetime output

Возвращает значение для настройки с именем @SysName, связанное с субъектом @SubjID. В зависимости от типа значения следует брать один из соответствующих параметров @<тип>Val. Если для данного субъекта нет значения, то ищется значение для вышестоящего и т.д. Если не найдено значение, генерируется ошибка и возвращается 1.

Определена в Kernel\Defaults.sql


create procedure TDBODocState_Create
  @Name varchar( 128 ),
  @FolderID int,
  @SName varchar( 16 ),
  @BaseState int,
  @Class varchar( 16 )

Создает в системе объект "Состояние документа" - новое состояние для документа класса @Class. Параметры:

@Name - описание состояния (пользовательское название),
@FolderID - папка, в которой создается объект (рекомендуется создавать в системной папке "Состояния документов", SFName="DocStates"),
@SName - уникальное системное имя состояния,
@BaseState - базовое состояние документа (0-черновик, 1-в работе, 2-закрыто),
@Class - класс документа.

Определена в Docs\DocState.sql


create procedure TDBOEvent_Pass
  @Name varchar( 128 ),
  @OID int,
  @FromID int = 0,
  @IntoID int = 0,
  @UserID int = 0

Регистрирует в системном журнале событие с именем @Name, произошедшее с объектом @OID. Параметры @FromID и @IntoID могут использоваться в служебных целях и являются ID объектов, например, папками источника и приемника в событии перемещения объекта. Если @UserID не указывается, то событие регистрируется для текущего пользователя.

Определена в Kernel\Events.sql


create procedure TDBOEvent_Register
  @Name varchar( 128 ),
  @Description varchar( 128 )

Создает в систем новый объект класса "Системное событие" с именем @Name и описанием (пользовательским именем) @Description. События создаются в системной паке "Системные события" (SFName="Events")

Определена в Kernel\Events.sql


create procedure TDBOEvent_Unregister
  @OID int

Удаляет из системы событие с @OID.

Определена в Kernel\Events.sql


create procedure TDBOGood_CheckMeasure
  @OID int,
  @MeasureID int

Проверяет, возможно ли измерять товар @OID в единицах измерения @MeasureID. В случае недопустимости возвращает 1, иначе 0.

Определена в StorDoc\Addon.sql


create procedure TDBOGood_ConvertToMain
  @GoodID int,
  @MeasureID int OUTPUT,
  @Price money OUTPUT,
  @PriceCur money OUTPUT,
  @Amount float OUTPUT

Приводит цены @Price, @PriceCur и количество @Amount для товара @GoodID в единицах измерения @MeasureID к ценам и количеству в базовой единице измерения для данного товара. Кроме преобразованных количества и цен, возвращает также @MeasureID - ID базовой единицы измерения для данного товара, к которой было сделано преобразование.

Определена в StorDoc\Addon.sql


create procedure TDBOMeasureSec_Convert
  @OID int,
  @Direction int,
  @FromAmount float,
  @ToAmount float OUTPUT

Производит преобразования количества @FromAmount в количество @ToAmount. @OID - ID производной единицы измерения, @Direction - направление преобразования: 0 - из производной в базовую, 1 - из базовой в производную.

Определена в Things\Measure.sql


create procedure TDBOPeriod_FindBySubject
  @SubjID int,
  @PeriodID int output,
  @LastDate datetime output

Ищет объект класса "учетная периодичность" для данного субъекта @SubjID и возвращает @PeriodID - ее ID и @LastDate - дату последнего закрытого периода. Если объект не найден, возвращает @PeriodID = 0

Определена в Docs\Periods.sql


create procedure TDBOPolicy_GetProc
  @RegID int,
  @SubjID int,
  @ProcName varchar( 32 ) output,
  @ProcID int = 0 output

Возвращает для данного регистра учета @RegID процедуру расчета в соответствии с определенной в системе учетной политикой для данного субъекта @SubjID. @ProcName - имя stored procedure, @ProcID - ID объекта класса "Процедура расчета", ассоциированного с данной stored procedure. Если процедура не найдена, возвращает 1, при успешном поиске - 0.

Определена в Docs\Policies.sql


create procedure TDBOPrCol_GetPosPrice
  @OID int,
  @PrDate datetime,
  @PosID int,
  @Price money OUTPUT

Возвращает цену @Price по заданной ценовой колонке @OID для данной товарной позиции @PosID на дату @PrDate.

Определена в PrLists\PrCols.sql


create procedure TDBOPrList_GetPosPrice
  @OID int,
  @PrDate datetime,
  @PosID int,
  @Price money OUTPUT

Возвращает базовую цену @Price по заданному прайс-листу @OID для данной товарной позиции @PosID на дату @PrDate.

Определена в PrLists\PrLists.sql


create procedure TDBORate_Convert
  @OID int,
  @RateDate datetime,
  @FromCurrID int,
  @FromAmount money,
  @ToAmount money OUTPUT

Производит перевод суммы @FromAmount по курсу конвертации валюты @OID на дату @RateDate из валюты @FromCurrID в другую валюту курса. Возвращает @ToAmount - сумма в другой валюте курса. Если курс не содержит валюты @FromCurrID или эта валюта-приемник несимметричного курса (т.е. возможна только односторонняя конвертация из валюты-источника в валюту-приемник), то генерируется сообщение об ошибке и возвращается 1.

Определена в Currates\Rates.sql


create procedure TDBOStaff_LocalInfo
  @StaffID int output,
  @SubjectID int output,
  @StoreID int output

Возвращает @StoreID - ID подразделения и @SubjectID - ID фирмы, в которой работает сотрудник @StaffID. Если ID сотрудника не задан в качестве входного параметра, выбирается сотрудник, ассоциированный с текущим пользователем. В случае, если не ведется учет сотрудников, то возвращается @StaffID - ID текущего пользователя, @SubjectID и @StoreID - ID фирмы "Корпорация"

Определена в Staff\Staff.sql


create procedure TDBOStore_GetHighestOwner
  @OID int,
  @OwnerID int OUTPUT

Возвращает @OwnerID - ID вышестоящей фирмы для подразделения @OID.

При корректном ведении справочника структуры фирмы следует воспользоваться значением свойства OwnerID для класса TDBOStore.

Определена в StorDoc\Addon.sql


Содержание Глоссарий Предыдущая Следующая