опечатка в конструкторе

This commit is contained in:
mirzakaev_tf 2025-04-15 17:30:45 +05:00
parent 84a65962ec
commit 90e0706497

View File

@ -625,7 +625,7 @@ NIOFamilyGenitive | Отображение ФИО работника в форм
* **Название** - задается название операции, например, Создать "Заявление на ежегодный отпуск";
* **Тип документа** - выбирается к какому типу документа необходимо добавить меню операций;
!!! "Примечание"
!!! note
По умолчанию создается новый документ без заполненных полей. В случае когда необходимо создать новый документ (как на конструкторе, так и любой другой) с заполненными данными из первичного документа, возможно реализовать через столбец "Скрипт по созданию документа".
* **Подтип** - выбирается к какому типу документа необходимо добавить меню операций;
@ -1499,4 +1499,89 @@ NIOFamilyGenitive | Отображение ФИО работника в форм
*Инструкцию по созданию пользовательского типа атрибута см. главу [Пользовательские типы атрибутов документа](../Пользовательские типы атрибутов документов/index.md).*
*О том, как использовать созданный пользовательский тип см. раздел [Описание полей в таблице "Дополнительные атрибуты". Тип группы (Unispr)](#описание-ChCode) и [Что писать в Тип группы (Unispr)?](#chcode).*
*О том, как использовать созданный пользовательский тип см. раздел [Описание полей в таблице "Дополнительные атрибуты". Тип группы (Unispr)](#описание-ChCode) и [Что писать в Тип группы (Unispr)?](#chcode).*
```sql
DO
$$
declare "_PCode" bigint;
declare "_VCode" bigint;
declare "_CDate" timestamptz := now();
declare "_CHost" character varying(255) := inet_client_addr();
declare "_CUser" character varying(255) := lex."getVirtualLogin"();
declare "_COrg" bigint := lex."getOrgId"();
declare _TypePersonalOrder bigint;
_TypeNamePersonalOrder varchar(255);
_FlagMove int ;
BEGIN
if "_DocumentCategory" is not null then
select ty."IdTypeTimeWork", 'Base.'::varchar(255)|| coalesce(ty."NameModel"::varchar(255),''::varchar(255)), ty."FlagMove"
from dfd."DocumentConstructor" dc
join dfd."DocumentSubtype" ds on dc."DocumentSubtype" = ds."VCode"
join comdoc."VTypePersonalOrder" ty on ds."TypePersonalOrder" = ty."VCode"
where dc."VCode" = "_DocumentCategory"
into _TypePersonalOrder, _TypeNamePersonalOrder, _FlagMove;
end if;
if _FlagMove = 2 then
"_PCode" := lex."L8_sp_GenCode" ('RP_DocAbsence', 1);
"_VCode" := lex."L8_sp_GenCode" ('RP_WorkerAbsence', 1);
INSERT INTO aw."RP_DocAbsence" (
"VCode", "TypeName", "DateDoc",
"CDate", "CHost", "CUser", "COrg",
"WDate", "WHost", "WUser", "WOrg"
)
VALUES (
"_PCode", coalesce(_TypeNamePersonalOrder,"_TypeName"), coalesce("_DateDoc","_CDate"),
"_CDate", "_CHost", "_CUser", "_COrg",
"_CDate", "_CHost", "_CUser", "_COrg"
);
INSERT INTO aw."RP_WorkerAbsence" (
"VCode", "Pcode", "IdWorker", "IdTypePer",
"CDate", "CHost", "CUser", "COrg",
"WDate", "WHost", "WUser", "WOrg"
)
select
"_VCode", "_PCode", "_IdWorker", coalesce(_TypePersonalOrder,"_IdTypePer"),
"_CDate", "_CHost", "_CUser", "_COrg",
"_CDate", "_CHost", "_CUser", "_COrg"
;
else
"_PCode" := lex."L8_sp_GenCode" ('RP_DocMove', 1);
"_VCode" := lex."L8_sp_GenCode" ('RP_WorkerMove', 1);
INSERT INTO rp."RP_DocMove" ( "VCode", "CDate", "WDate", "CHost", "WHost", "CUser", "WUser", "COrg", "WOrg",
"TypeName", "IdTypeCauseCond", /*"NumDoc",*/ "DateDoc", "FlagApp", "IdTypeDocStaff", "Note")
select "_PCode", "_CDate", "_CDate", "_CHost", "_CHost", "_CUser", "_CUser", "_COrg", "_COrg",
_TypeNamePersonalOrder, null, coalesce("_DateDoc","_CDate"), null, _TypePersonalOrder, null;
INSERT INTO rp."RP_WorkerMove" ( "VCode", "Pcode", "CDate", "WDate", "CHost", "WHost", "CUser", "WUser", "COrg", "WOrg",
"IdWorker", "DateBeg", "IdDepartment", "IdPost", "IdRank", --"IdWorkContract",
"IdStaffUnit", "IdTypeBasisDoc", "DateBasis", "Rate", "IdOper1", "SumOper1", "IdTypeWorkSched", "Probation", "WCode")
select "_VCode", "_PCode", "_CDate", "_CDate", "_CHost", "_CHost", "_CUser", "_CUser", "_COrg", "_COrg",
"_IdWorker", @DateBeg, mm."IdDepartment", mm."IdPost", mm."IdRank",
mm."IdStaffUnit", mm."IdTypeBasisDoc", mm."DateBasis", mm."Rate", mm."IdOper1", mm."SumOper1",
mm."IdTypeWorkSched", mm."Probation", case when _FlagMove = 1 then mm."PCode" end
from (
select m.*
from rp."RP_DocMove" p
join rp."RP_WorkerMove" m on p."VCode" = m."PCode"
join comdoc."VRP_TypeDocStaff" s on p."IdTypeDocStaff" = s."VCode"
where m."IdWorker" = "_IdWorker" and s."FlagMove" = 1
order by "DateBeg" desc
limit 1) mm;
end if;
update "#tmp_newDocVCode"
set "newDocVCode" = "_PCode" ;
END;
$$
```