Разбор потока складского документа
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
|||
| Строка 1: | Строка 1: | ||
| − | |||
| + | {| class="wikitable" | ||
| + | |+ Версия 3.0 | ||
| + | ! Код !! Тип !! Описание !! | ||
| + | |- | ||
| + | | Version := ReadString; | ||
| + | | String | ||
| + | | Версия потока | ||
| + | |- | ||
| + | | RelationName := ReadString; | ||
| + | | String | ||
| + | | Название таблицы шапки | ||
| + | |- | ||
| + | | RelationLineName := ReadString; | ||
| + | | String | ||
| + | |Название таблицы позиции | ||
| + | |- | ||
| + | | DebitMovement.RelationName := ReadString; | ||
| + | | String | ||
| + | | Наименование таблицы прихода | ||
| + | |- | ||
| + | | DebitMovement.SourceFieldName := ReadString; | ||
| + | | String | ||
| + | | Наименование поля таблицы прихода | ||
| + | |- | ||
| + | | DebitMovement.SubRelationName := ReadString; | ||
| + | | String | ||
| + | | Наименование таблицы ограничения по приходу | ||
| + | |- | ||
| + | | DebitMovement.SubSourceFieldName := ReadString; | ||
| + | | String | ||
| + | | Наименование поля таблицы ограничения по приходу | ||
| + | |- | ||
| + | | Read(DebitMovement.ContactType, SizeOf(TgdcInvMovementContactType)); | ||
| + | | TgdcInvMovementContactType | ||
| + | | На кого оформлять приход | ||
| + | |- | ||
| + | | | ||
| + | ReadListBegin; | ||
| + | while not EndOfList do | ||
| + | begin | ||
| + | SetLength(DebitMovement.Predefined, | ||
| + | Length(DebitMovement.Predefined) + 1); | ||
| + | DebitMovement.Predefined[Length(DebitMovement.Predefined) - 1] := | ||
| + | ReadInteger; | ||
| + | end; | ||
| + | ReadListEnd; | ||
| + | | array of integer | ||
| + | | Список значений прихода. Ключи на таблицу gd_contact | ||
| + | |- | ||
| + | | | ||
| + | ReadListBegin; | ||
| + | while not EndOfList do | ||
| + | begin | ||
| + | SetLength(DebitMovement.SubPredefined, | ||
| + | Length(DebitMovement.SubPredefined) + 1); | ||
| + | DebitMovement.SubPredefined[Length(DebitMovement.SubPredefined) - 1] := | ||
| + | ReadInteger; | ||
| + | end; | ||
| + | ReadListEnd; | ||
| + | | array of integer | ||
| + | | Список значений ограничении по приходу. Ключи на таблицу gd_contact | ||
| + | |- | ||
| + | | CreditMovement.RelationName := ReadString; | ||
| + | | String | ||
| + | | Наименование таблицы расхода | ||
| + | |- | ||
| + | | CreditMovement.SourceFieldName := ReadString; | ||
| + | | String | ||
| + | | Наименование поля таблицы расхода | ||
| + | |- | ||
| + | | CreditMovement.SubRelationName := ReadString; | ||
| − | + | | String | |
| − | + | | Наименование таблицы ограничения по расходу | |
| − | + | |- | |
| − | + | | CreditMovement.SubSourceFieldName := ReadString; | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| + | | String | ||
| + | | Наименование поля таблицы ограничения по расходу | ||
| + | |- | ||
| + | | Read(CreditMovement.ContactType, SizeOf(TgdcInvMovementContactType)); | ||
| + | | TgdcInvMovementContactType | ||
| + | | На кого оформлять расход | ||
| + | |- | ||
| + | | | ||
| + | ReadListBegin; | ||
| + | while not EndOfList do | ||
| + | begin | ||
| + | SetLength(CreditMovement.Predefined, | ||
| + | Length(CreditMovement.Predefined) + 1); | ||
| + | CreditMovement.Predefined[Length(CreditMovement.Predefined) - 1] := | ||
| + | ReadInteger; | ||
| + | end; | ||
| + | ReadListEnd; | ||
| + | | array of integer | ||
| + | | Список значений расхода. Ключи на таблицу gd_contact | ||
| + | |- | ||
| + | | | ||
| + | ReadListBegin; | ||
| + | while not EndOfList do | ||
| + | begin | ||
| + | SetLength(CreditMovement.SubPredefined, | ||
| + | Length(CreditMovement.SubPredefined) + 1); | ||
| + | CreditMovement.SubPredefined[Length(CreditMovement.SubPredefined) - 1] := | ||
| + | ReadInteger; | ||
| + | end; | ||
| + | ReadListEnd; | ||
| + | | array of integer | ||
| + | | Список значений ограничения по расходу. Ключи на таблицу gd_contact | ||
| + | |- | ||
| + | | | ||
| + | ReadListBegin; | ||
| + | while not EndOfList do | ||
| + | begin | ||
| + | F := atDatabase.FindRelationField('INV_CARD', ReadString); | ||
| + | if not Assigned(F) then Continue; | ||
| + | FSourceFeatures.AddObject(F.FieldName, F); | ||
| + | end; | ||
| + | ReadListEnd; | ||
| + | | TgdcInvFeatures | ||
| + | | Признаки новой карточки | ||
| + | |- | ||
| + | | | ||
| + | ReadListBegin; | ||
| + | while not EndOfList do | ||
| + | begin | ||
| + | F := atDatabase.FindRelationField('INV_CARD', ReadString); | ||
| + | if not Assigned(F) then Continue; | ||
| + | FDestFeatures.AddObject(F.FieldName, F); | ||
| + | end; | ||
| + | ReadListEnd; | ||
| + | | TgdcInvFeatures | ||
| + | | Признаки существующей карточки | ||
| + | |- | ||
| + | | Read(FSources, SizeOf(TgdcInvReferenceSources)); | ||
| + | | TgdcInvReferenceSources = set of TgdcInvReferenceSource | ||
| + | | Настройка справочников | ||
| + | |- | ||
| + | | Read(FDirection, SizeOf(TgdcInvMovementDirection)); | ||
| + | | TgdcInvMovementDirection | ||
| + | | Остатки определять по методу FIFO, LIFO | ||
| + | |- | ||
| + | | FControlRemains := ReadBoolean; | ||
| + | | Boolean | ||
| + | | Осуществлять контроль остатков | ||
| + | |- | ||
| + | | LiveTimeRemains := ReadBoolean | ||
| + | | Bollean | ||
| + | | Коннтроль только на текущие остатки | ||
| + | |- | ||
| + | | DelayedDocument := ReadBoolean; | ||
| + | |||
| + | | Boolean | ||
| + | | Документ может быть отложенным | ||
| + | |- | ||
| + | | MinusRemains := ReadBoolean; | ||
| + | |||
| + | | Boolean | ||
| + | | Выбор из отрицательных остатков | ||
| + | |- | ||
| + | | | ||
| + | ReadListBegin; | ||
| + | while not EndOfList do | ||
| + | begin | ||
| + | F := atDatabase.FindRelationField('INV_CARD', ReadString); | ||
| + | if not Assigned(F) then Continue; | ||
| + | FMinusFeatures.AddObject(F.FieldName, F); | ||
| + | end; | ||
| + | ReadListEnd; | ||
| + | | TgdcInvFeatures | ||
| + | | Признаки отрицательных остатков | ||
| + | |- | ||
| + | | IsChangeCardValue := ReadBoolean; | ||
| + | | Boolean | ||
| + | | Разрешить изменять признаки существующей карточки | ||
| + | |- | ||
| + | | IsAppendCardValue := ReadBoolean; | ||
| + | | Boolean | ||
| + | | Разрешить добавлять признаки существующей карточки | ||
| + | |- | ||
| + | | IsUseCompanyKey := ReadBoolean | ||
| + | | Boolean | ||
| + | | Ограничение на рабочую компанию | ||
| + | |- | ||
| + | | SaveRestWindowOption := ReadBoolean | ||
| + | | Boolean | ||
| + | | Сохранять настройки окна остатков | ||
| + | |- | ||
| + | | EndMonthRemains := ReadBoolean | ||
| + | | Boolean | ||
| + | | Контроль остатков на конец месяца | ||
| + | |- | ||
| + | | WithoutSearchRemains := ReadBoolean | ||
| + | | Boolean | ||
| + | | Движение без поиска остатков | ||
| + | |} | ||
TgdcInvFeatures = array of String; | TgdcInvFeatures = array of String; | ||
Версия 14:05, 25 августа 2015
| Код | Тип | Описание | |
|---|---|---|---|
| Version := ReadString; | String | Версия потока | |
| RelationName := ReadString; | String | Название таблицы шапки | |
| RelationLineName := ReadString; | String | Название таблицы позиции | |
| DebitMovement.RelationName := ReadString; | String | Наименование таблицы прихода | |
| DebitMovement.SourceFieldName := ReadString; | String | Наименование поля таблицы прихода | |
| DebitMovement.SubRelationName := ReadString; | String | Наименование таблицы ограничения по приходу | |
| DebitMovement.SubSourceFieldName := ReadString; | String | Наименование поля таблицы ограничения по приходу | |
| Read(DebitMovement.ContactType, SizeOf(TgdcInvMovementContactType)); | TgdcInvMovementContactType | На кого оформлять приход | |
ReadListBegin;
while not EndOfList do
begin
SetLength(DebitMovement.Predefined,
Length(DebitMovement.Predefined) + 1);
DebitMovement.Predefined[Length(DebitMovement.Predefined) - 1] :=
ReadInteger;
end;
ReadListEnd;
|
array of integer | Список значений прихода. Ключи на таблицу gd_contact | |
ReadListBegin;
while not EndOfList do
begin
SetLength(DebitMovement.SubPredefined,
Length(DebitMovement.SubPredefined) + 1);
DebitMovement.SubPredefined[Length(DebitMovement.SubPredefined) - 1] :=
ReadInteger;
end;
ReadListEnd;
|
array of integer | Список значений ограничении по приходу. Ключи на таблицу gd_contact | |
| CreditMovement.RelationName := ReadString; | String | Наименование таблицы расхода | |
| CreditMovement.SourceFieldName := ReadString; | String | Наименование поля таблицы расхода | |
| CreditMovement.SubRelationName := ReadString; | String | Наименование таблицы ограничения по расходу | |
| CreditMovement.SubSourceFieldName := ReadString; | String | Наименование поля таблицы ограничения по расходу | |
| Read(CreditMovement.ContactType, SizeOf(TgdcInvMovementContactType)); | TgdcInvMovementContactType | На кого оформлять расход | |
ReadListBegin;
while not EndOfList do
begin
SetLength(CreditMovement.Predefined,
Length(CreditMovement.Predefined) + 1);
CreditMovement.Predefined[Length(CreditMovement.Predefined) - 1] :=
ReadInteger;
end;
ReadListEnd;
|
array of integer | Список значений расхода. Ключи на таблицу gd_contact | |
ReadListBegin;
while not EndOfList do
begin
SetLength(CreditMovement.SubPredefined,
Length(CreditMovement.SubPredefined) + 1);
CreditMovement.SubPredefined[Length(CreditMovement.SubPredefined) - 1] :=
ReadInteger;
end;
ReadListEnd;
|
array of integer | Список значений ограничения по расходу. Ключи на таблицу gd_contact | |
ReadListBegin;
while not EndOfList do
begin
F := atDatabase.FindRelationField('INV_CARD', ReadString);
if not Assigned(F) then Continue;
FSourceFeatures.AddObject(F.FieldName, F);
end;
ReadListEnd;
|
TgdcInvFeatures | Признаки новой карточки | |
ReadListBegin;
while not EndOfList do
begin
F := atDatabase.FindRelationField('INV_CARD', ReadString);
if not Assigned(F) then Continue;
FDestFeatures.AddObject(F.FieldName, F);
end;
ReadListEnd;
|
TgdcInvFeatures | Признаки существующей карточки | |
| Read(FSources, SizeOf(TgdcInvReferenceSources)); | TgdcInvReferenceSources = set of TgdcInvReferenceSource | Настройка справочников | |
| Read(FDirection, SizeOf(TgdcInvMovementDirection)); | TgdcInvMovementDirection | Остатки определять по методу FIFO, LIFO | |
| FControlRemains := ReadBoolean; | Boolean | Осуществлять контроль остатков | |
| LiveTimeRemains := ReadBoolean | Bollean | Коннтроль только на текущие остатки | |
| DelayedDocument := ReadBoolean; | Boolean | Документ может быть отложенным | |
| MinusRemains := ReadBoolean; | Boolean | Выбор из отрицательных остатков | |
ReadListBegin;
while not EndOfList do
begin
F := atDatabase.FindRelationField('INV_CARD', ReadString);
if not Assigned(F) then Continue;
FMinusFeatures.AddObject(F.FieldName, F);
end;
ReadListEnd;
|
TgdcInvFeatures | Признаки отрицательных остатков | |
| IsChangeCardValue := ReadBoolean; | Boolean | Разрешить изменять признаки существующей карточки | |
| IsAppendCardValue := ReadBoolean; | Boolean | Разрешить добавлять признаки существующей карточки | |
| IsUseCompanyKey := ReadBoolean | Boolean | Ограничение на рабочую компанию | |
| SaveRestWindowOption := ReadBoolean | Boolean | Сохранять настройки окна остатков | |
| EndMonthRemains := ReadBoolean | Boolean | Контроль остатков на конец месяца | |
| WithoutSearchRemains := ReadBoolean | Boolean | Движение без поиска остатков |
TgdcInvFeatures = array of String;
TgdcInvReferenceSource = (irsGoodRef, irsRemainsRef, irsMacro); irsGoodRef - в качестве справочника используется справочник товаров irsRemainsRef - в качестве справочника используется справочник остатков ТМЦ irsMacro - в качестве справочника используется справочник, получаемый из макроса(это нам не нужно)
TgdcInvMovementDirection = (imdFIFO, imdLIFO, imdDefault); imdFIFO - очередь imLIFO - стек imdDefault - по каждому ТМЦ