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