Compare commits

...

5 Commits

9 changed files with 357 additions and 270 deletions

View File

@ -385,102 +385,175 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
Есть специальные дополнительные атрибуты с зарезервированными наименованиями и типами, прописывать их в таблице "Дополнительные атрибуты" не надо. Среди таких атрибутов есть:
{ #спец-атрибуты }
Вычисляемый атрибут | Описание
--------------------|---------
#Master_BeginDate# | дата начала действия доверенности
#Master_CopyRecipient# | дополнительный согласующий в служебной записке из табличной части "Копия"
#Master_ContractorPrint# | контрагент (из поля наименование для печати)
#Master_CUserEmail# | эл.почта пользователя создателя документа
#Master_CUserName# | полное ФИО пользователя создателя документа
#Master_CUserNameAccusative# | ФИО пользователя создателя документа в винительном падеже
#Master_CUserNameDative# | ФИО пользователя создателя документа в дательном падеже
#Master_CUserNameGenitive# | ФИО пользователя создателя документа в родительном падеже
#Master_CUserNameShort# | ФИО пользователя создателя документа в формате "Фамилия И.О."
#Master_CUserPhoneNumber# | мобильный телефон пользователя создателя документа из справочника "Физическое лицо"
#Master_DateOfRegistration# | Рег. дата документа
#Master_Department# | подразделение пользователя создателя документа
#Master_DocumentBeginDate# | "Период командировки с" в служебной записке на командировку на конструкторе
#Master_DocumentContractorText# | "Куда Организация" в служебной записке на командировку на конструкторе
#Master_DocumentDate# | дата создания документа
#Master_DocumentDateText# | дата в формате 1 января 2022 г
#Master_DocumentDaysOnRoad# | "Кол-во дней в пути" в служебной записке на командировку на конструкторе
#Master_DocumentDestination# | "Куда Страна/Город" в служебной записке на командировку на конструкторе
#Master_DocumentEndDate# | "Период командировки по" в служебной записке на командировку на конструкторе
#Master_DocumentLeadTime# | "Кол-во дней" в служебной записке на командировку на конструкторе
#Master_DocumentNote# | "Примечание" в служебной записке на командировку на конструкторе
#Master_DocumentNumber# | номер создаваемого документа
#Master_DocumentPurpose# | Цель командировки в служебной записке на командировку на конструкторе
#Master_DocumentType# | тип документа
#Master_DocumentSubtype# | подтип документа
#Master_EndDate# | дата окончания действия доверенности
#Master_HideAgreedUsers# | скрываются согласующие документ по маршруту в печатной форме служебной записки
#Master_HideInitiator# | скрывается составитель в печатной форме служебной записки
#Master_HideImg# | скрывается печать "Зарегистрировано СЭД Лексема" в в печатной форме без согласования в служебной записке
#Master_HideSigner# | скрывается блок с подписантом в печатной форме служебной записки
#Master_IdWorker# | код работника из справочника "Сотрудники"
#Master_MyCompany# | компания пользователя создателя документа
#Master_MyCompanyActualAddressText# | своя организация: фактический адрес
#Master_MyCompanyDirector# | своя организация: директор в именительном падеже
#Master_MyCompanyDirectorAccusative# | своя организация: директор в винительном падеже
#Master_MyCompanyDirectorActBasis# | своя организация: основание действия директора
#Master_MyCompanyDirectorDative# | своя организация: директор в дательном падеже
#Master_MyCompanyDirectorGenitive# | своя организация: директор в родительном падеже
#Master_MyCompanyDirectorProf# | своя организация: должность директора в именительном падеже
#Master_MyCompanyDirectorProfGenitive# | своя организация: должность директора в родительном падеже
#Master_MyCompanyDirectorShort# | своя организация: короткое ФИО директора
#Master_MyCompanyEMailAddress# | своя организация: email
#Master_MyCompanyFSS# | своя организация: номер ФСС
#Master_MyCompanyFullName# | полное наименование своей организации
#Master_MyCompanyGAccountant# | ФИО Гл. бухгалтера, |
#Master_MyCompanyGAccountantAccusative# | ФИО Гл. бухгалтера в Вин. падеже
#Master_MyCompanyGAccountantDative# | ФИО Гл. бухгалтера в Дат. падеже
#Master_MyCompanyGAccountantGenitive# | ФИО Гл. бухгалтера в Род. падеже
#Master_MyCompanyGAccountantProf# | должность Гл. бухгалтера
#Master_MyCompanyGAccountantProfAccusative# | должность Гл. бухгалтера в Вин. падеже
#Master_MyCompanyGAccountantProfDative# | должность Гл. бухгалтера в Дат. падеже
#Master_MyCompanyGAccountantProfGenitive# | должность Гл. бухгалтера в Род. падеже
#Master_MyCompanyINN# | своя организация: ИНН
#Master_MyCompanyKPP# | своя организация: КПП
#Master_MyCompanyLegalAddressText# | своя организация: юридический адрес
#Master_MyCompanyMailAddressText# | своя организация: почтовый адрес
#Master_MyCompanyOGRN# | своя организация: ОГРН
#Master_MyCompanyOKATO# | своя организация: ОКАТО
#Master_MyCompanyOKPO# | своя организация: OKPO
#Master_MyCompanyPFR# | своя организация: номер ПФР
#Master_MyCompanyPhone# | своя организация: контактный телефон
#Master_MyCompanyRegistrationDate# | своя организация: дата регистрации
#Master_MyCompanyShortName# | короткое наименование своей организации для печати
#Master_NumTab# | табельный номер сотрудника
#Master_Position# | должность пользователя создателя документа
#Master_PositionDative# | должность пользователя создателя документа в дательном падеже
#Master_PositionGenitive# | должность пользователя создателя документа в родительном падеже
#Master_PrintedText# | содержательная часть во входящем документе, исходящем документе, орд, служебной записке
#Master_Recipient# | получатель служебной записки из табличной части "Кому"
#Master_ReplyNumber# | в ответ на входящий - номер документа
#Master_ReplyDate# | в ответ на входящий - дата документа
#Master_WhosePosition# | вычисляемый атрибут для поля "На чье имя (должность)"
#Master_PrintedText# | вычисляемый атрибут для поля "Содержательная часть"
#Master_Subject# | вычисляемый атрибут для поля "Краткое соержание", так же есть атрибут #Master_DocumentSubject# для этого же поля (только для sql-сайта)
#Master_ShowOldHeader# | отображение списка согласующих и получателей служебной записки
#Master_Signer# | ФИО подписанта
#Master_SignerDative# | ФИО подписанта в дательном падеже
#Master_SignerGenitive# | ФИО подписанта в родительном падеже
#Master_SignerPosition# | должность подписанта
#Master_SignerPositionDative# | должность подписанта в дательном падеже
#Master_SignerPositionGenitive# | должность подписанта в родительном падеже
#Master_SignerShort# | краткое ФИО подписанта
#Master_SignerShortDative# | краткое ФИО подписанта в дательном падеже
#Master_SignerShortGenitive# | краткое ФИО подписанта в родительном падеже
#Master_SumInWords# | конвертирует число в текст. Используется для атрибута **Вещественное**
#Master_SubjectDetail# | список полномочий по доверенности из таблицы документа Доверенность
#Master_WhoseName# | на чье имя (Ф.И.О.) в исходящем документе
#Master_WorkersDetail# | список сотрудников: ФИО, дата рождения, паспортные данные, адрес регистрации из таблицы документа Доверенность
#Master_WorkersGenitiveDetail# | список сотрудников в винительном падеже
#Master_WorkersAccusativeDetail# | список сотрудников в род падеже
#Master_WorkersGenitivePasportDetail# | список сотрудников в винительном падеже c паспортом
#Master_WorkersAccusativePasportDetail# | список сотрудников в род падеже с паспортом
#Master_WorkersAccusativePasportDetail# | список сотрудников в род падеже с паспортом
#WorkerNominativePasportList# | список сотрудников с паспортами
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Сгруппированные вычисляемые атрибуты</title>
<style>
table {
border-collapse: collapse;
margin-bottom: 20px;
width: 100%;
}
th, td {
border: 1px solid #333;
padding: 5px 10px;
}
th {
background: #f0f0f0;
}
h2 {
margin-top: 40px;
}
</style>
</head>
<body>
<h2>Доверенность</h2>
<table>
<tr><th>Вычисляемый атрибут</th><th>Описание</th></tr>
<tr><td>#Master_BeginDate#</td><td>дата начала действия доверенности</td></tr>
<tr><td>#Master_EndDate#</td><td>дата окончания действия доверенности</td></tr>
<tr><td>#Master_SubjectDetail#</td><td>список полномочий по доверенности из таблицы документа Доверенность</td></tr>
<tr><td>#Master_WorkersDetail#</td><td>список сотрудников: ФИО, дата рождения, паспортные данные, адрес регистрации из таблицы документа Доверенность</td></tr>
</table>
<h2>Служебная записка</h2>
<table>
<tr><th>Вычисляемый атрибут</th><th>Описание</th></tr>
<tr><td>#Master_CopyRecipient#</td><td>дополнительный согласующий в служебной записке из табличной части "Копия"</td></tr>
<tr><td>#Master_HideAgreedUsers#</td><td>скрываются согласующие документ по маршруту в печатной форме служебной записки</td></tr>
<tr><td>#Master_HideInitiator#</td><td>скрывается составитель в печатной форме служебной записки</td></tr>
<tr><td>#Master_HideImg#</td><td>скрывается печать "Зарегистрировано СЭД Лексема" в печатной форме без согласования в служебной записке</td></tr>
<tr><td>#Master_HideSigner#</td><td>скрывается блок с подписантом в печатной форме служебной записки</td></tr>
<tr><td>#Master_Recipient#</td><td>получатель служебной записки из табличной части "Кому"</td></tr>
<tr><td>#Master_ShowOldHeader#</td><td>отображение списка согласующих и получателей служебной записки</td></tr>
<!-- Атрибуты "Служебная записка, ОРД" тоже включаем сюда -->
<tr><td>#Master_Signer#</td><td>ФИО подписанта</td></tr>
<tr><td>#Master_SignerDative#</td><td>ФИО подписанта в дательном падеже</td></tr>
<tr><td>#Master_SignerGenitive#</td><td>ФИО подписанта в родительном падеже</td></tr>
<tr><td>#Master_SignerPosition#</td><td>должность подписанта</td></tr>
<tr><td>#Master_SignerPositionDative#</td><td>должность подписанта в дательном падеже</td></tr>
<tr><td>#Master_SignerPositionGenitive#</td><td>должность подписанта в родительном падеже</td></tr>
<tr><td>#Master_SignerShort#</td><td>краткое ФИО подписанта</td></tr>
<tr><td>#Master_SignerShortDative#</td><td>краткое ФИО подписанта в дательном падеже</td></tr>
<tr><td>#Master_SignerShortGenitive#</td><td>краткое ФИО подписанта в родительном падеже</td></tr>
</table>
<h2>Документооборот</h2>
<table>
<tr><th>Вычисляемый атрибут</th><th>Описание</th></tr>
<tr><td>#Master_ContractorPrint#</td><td>контрагент (из поля наименование для печати)</td></tr>
<tr><td>#Master_CUserEmail#</td><td>эл.почта пользователя создателя документа</td></tr>
<tr><td>#Master_CUserName#</td><td>полное ФИО пользователя создателя документа</td></tr>
<tr><td>#Master_CUserNameAccusative#</td><td>ФИО пользователя создателя документа в винительном падеже</td></tr>
<tr><td>#Master_CUserNameDative#</td><td>ФИО пользователя создателя документа в дательном падеже</td></tr>
<tr><td>#Master_CUserNameGenitive#</td><td>ФИО пользователя создателя документа в родительном падеже</td></tr>
<tr><td>#Master_CUserNameShort#</td><td>ФИО пользователя создателя документа в формате "Фамилия И.О."</td></tr>
<tr><td>#Master_CUserPhoneNumber#</td><td>мобильный телефон пользователя создателя документа из справочника "Физическое лицо"</td></tr>
<tr><td>#Master_DateOfRegistration#</td><td>Рег. дата документа</td></tr>
<tr><td>#Master_Department#</td><td>подразделение пользователя создателя документа</td></tr>
<tr><td>#Master_DocumentDate#</td><td>дата создания документа</td></tr>
<tr><td>#Master_DocumentDateText#</td><td>дата в формате 1 января 2022 г</td></tr>
<tr><td>#Master_DocumentNumber#</td><td>номер создаваемого документа</td></tr>
<tr><td>#Master_DocumentType#</td><td>тип документа</td></tr>
<tr><td>#Master_DocumentSubtype#</td><td>подтип документа</td></tr>
<tr><td>#Master_IdWorker#</td><td>код работника из справочника "Сотрудники"</td></tr>
<tr><td>#Master_MyCompany#</td><td>компания пользователя создателя документа</td></tr>
<tr><td>#Master_MyCompanyActualAddressText#</td><td>своя организация: фактический адрес</td></tr>
<tr><td>#Master_MyCompanyDirector#</td><td>своя организация: директор в именительном падеже</td></tr>
<tr><td>#Master_MyCompanyDirectorAccusative#</td><td>своя организация: директор в винительном падеже</td></tr>
<tr><td>#Master_MyCompanyDirectorActBasis#</td><td>своя организация: основание действия директора</td></tr>
<tr><td>#Master_MyCompanyDirectorDative#</td><td>своя организация: директор в дательном падеже</td></tr>
<tr><td>#Master_MyCompanyDirectorGenitive#</td><td>своя организация: директор в родительном падеже</td></tr>
<tr><td>#Master_MyCompanyDirectorProf#</td><td>своя организация: должность директора в именительном падеже</td></tr>
<tr><td>#Master_MyCompanyDirectorProfGenitive#</td><td>своя организация: должность директора в родительном падеже</td></tr>
<tr><td>#Master_MyCompanyDirectorShort#</td><td>своя организация: короткое ФИО директора</td></tr>
<tr><td>#Master_MyCompanyEMailAddress#</td><td>своя организация: email</td></tr>
<tr><td>#Master_MyCompanyFSS#</td><td>своя организация: номер ФСС</td></tr>
<tr><td>#Master_MyCompanyFullName#</td><td>полное наименование своей организации</td></tr>
<tr><td>#Master_MyCompanyGAccountant#</td><td>ФИО Гл. бухгалтера</td></tr>
<tr><td>#Master_MyCompanyGAccountantAccusative#</td><td>ФИО Гл. бухгалтера в Вин. падеже</td></tr>
<tr><td>#Master_MyCompanyGAccountantDative#</td><td>ФИО Гл. бухгалтера в Дат. падеже</td></tr>
<tr><td>#Master_MyCompanyGAccountantGenitive#</td><td>ФИО Гл. бухгалтера в Род. падеже</td></tr>
<tr><td>#Master_MyCompanyGAccountantProf#</td><td>должность Гл. бухгалтера</td></tr>
<tr><td>#Master_MyCompanyGAccountantProfAccusative#</td><td>должность Гл. бухгалтера в Вин. падеже</td></tr>
<tr><td>#Master_MyCompanyGAccountantProfDative#</td><td>должность Гл. бухгалтера в Дат. падеже</td></tr>
<tr><td>#Master_MyCompanyGAccountantProfGenitive#</td><td>должность Гл. бухгалтера в Род. падеже</td></tr>
<tr><td>#Master_MyCompanyINN#</td><td>своя организация: ИНН</td></tr>
<tr><td>#Master_MyCompanyKPP#</td><td>своя организация: КПП</td></tr>
<tr><td>#Master_MyCompanyLegalAddressText#</td><td>своя организация: юридический адрес</td></tr>
<tr><td>#Master_MyCompanyMailAddressText#</td><td>своя организация: почтовый адрес</td></tr>
<tr><td>#Master_MyCompanyOGRN#</td><td>своя организация: ОГРН</td></tr>
<tr><td>#Master_MyCompanyOKATO#</td><td>своя организация: ОКАТО</td></tr>
<tr><td>#Master_MyCompanyOKPO#</td><td>своя организация: OKPO</td></tr>
<tr><td>#Master_MyCompanyPFR#</td><td>своя организация: номер ПФР</td></tr>
<tr><td>#Master_MyCompanyPhone#</td><td>своя организация: контактный телефон</td></tr>
<tr><td>#Master_MyCompanyRegistrationDate#</td><td>своя организация: дата регистрации</td></tr>
<tr><td>#Master_MyCompanyShortName#</td><td>короткое наименование своей организации для печати</td></tr>
<tr><td>#Master_NumTab#</td><td>табельный номер сотрудника</td></tr>
<tr><td>#Master_Position#</td><td>должность пользователя создателя документа</td></tr>
<tr><td>#Master_PositionDative#</td><td>должность пользователя создателя документа в дательном падеже</td></tr>
<tr><td>#Master_PositionGenitive#</td><td>должность пользователя создателя документа в родительном падеже</td></tr>
<tr><td>#Master_PrintedText#</td><td>содержательная часть во входящем документе, исходящем документе, орд, служебной записке</td></tr>
<tr><td>#Master_PrintedText#</td><td>содержательная часть во входящем документе, исходящем документе, орд, служебной записке</td></tr>
<tr><td>#Master_SignerIOFamily#</td><td>И.О. Фамилия подписанта в именительном падеже</td></tr>
<tr><td>#Master_SignerIOFamilyDative#</td><td>И.О. Фамилия подписанта в дательном падеже</td></tr>
<tr><td>#Master_SignerIOFamilyGenitive#</td><td>И.О. Фамилия подписанта в родительном падеже</td></tr>
<tr><td>#Master_WorkersAccusativeDetail#</td><td>список сотрудников в род падеже</td></tr>
<tr><td>#Master_WorkersAccusativePasportDetail#</td><td>список сотрудников в род падеже с паспортом</td></tr>
<tr><td>#Master_WorkersGenitiveDetail#</td><td>список сотрудников в винительном падеже</td></tr>
<tr><td>#Master_WorkersGenitivePasportDetail#</td><td>список сотрудников в винительном падеже c паспортом</td></tr>
<tr><td>#WorkerNominativePasportList#</td><td>список сотрудников с паспортами</td></tr>
</table>
<h2>Служебная записка на командировку</h2>
<table>
<tr><th>Вычисляемый атрибут</th><th>Описание</th></tr>
<tr><td>#Master_DocumentBeginDate#</td><td>"Период командировки с" в служебной записке на командировку на конструкторе</td></tr>
<tr><td>#Master_DocumentContractorText#</td><td>"Куда Организация" в служебной записке на командировку на конструкторе</td></tr>
<tr><td>#Master_DocumentDaysOnRoad#</td><td>"Кол-во дней в пути" в служебной записке на командировку на конструкторе</td></tr>
<tr><td>#Master_DocumentDestination#</td><td>"Куда Страна/Город" в служебной записке на командировку на конструкторе</td></tr>
<tr><td>#Master_DocumentEndDate#</td><td>"Период командировки по" в служебной записке на командировку на конструкторе</td></tr>
<tr><td>#Master_DocumentLeadTime#</td><td>"Кол-во дней" в служебной записке на командировку на конструкторе</td></tr>
<tr><td>#Master_DocumentNote#</td><td>"Примечание" в служебной записке на командировку на конструкторе</td></tr>
<tr><td>#Master_DocumentPurpose#</td><td>Цель командировки в служебной записке на командировку на конструкторе</td></tr>
</table>
<h2>Входящий документ</h2>
<table>
<tr><th>Вычисляемый атрибут</th><th>Описание</th></tr>
<tr><td>#Master_ReplyNumber#</td><td>в ответ на входящий - номер документа</td></tr>
<tr><td>#Master_ReplyDate#</td><td>в ответ на входящий - дата документа</td></tr>
</table>
<h2>Исходящий документ</h2>
<table>
<tr><th>Вычисляемый атрибут</th><th>Описание</th></tr>
<tr><td>#Master_WhoseName#</td><td>на чье имя (Ф.И.О.) в исходящем документе</td></tr>
</table>
<h2>ОРД</h2>
<table>
<tr><th>Вычисляемый атрибут</th><th>Описание</th></tr>
<tr><td>#Master_Signer#</td><td>ФИО подписанта</td></tr>
<tr><td>#Master_SignerDative#</td><td>ФИО подписанта в дательном падеже</td></tr>
<tr><td>#Master_SignerGenitive#</td><td>ФИО подписанта в родительном падеже</td></tr>
<tr><td>#Master_SignerPosition#</td><td>должность подписанта</td></tr>
<tr><td>#Master_SignerPositionDative#</td><td>должность подписанта в дательном падеже</td></tr>
<tr><td>#Master_SignerPositionGenitive#</td><td>должность подписанта в родительном падеже</td></tr>
<tr><td>#Master_SignerShort#</td><td>краткое ФИО подписанта</td></tr>
<tr><td>#Master_SignerShortDative#</td><td>краткое ФИО подписанта в дательном падеже</td></tr>
<tr><td>#Master_SignerShortGenitive#</td><td>краткое ФИО подписанта в родительном падеже</td></tr>
</table>
</body>
</html>
Заполненная табличная часть выглядит следующим образом:

View File

@ -28,9 +28,11 @@
Возможно использовать [вычисляемые атрибуты](../Конструктор документов/#вычисляемые_атрибуты)
#Master_PrintedText# - содержательная часть
#Master_ReplyNumber# - в ответ на входящий - номер документа
#Master_ReplyDate# - в ответ на входящий - дата документа
**#Master_PrintedText#** - содержательная часть
**#Master_ReplyNumber#** - в ответ на входящий - номер документа
**#Master_ReplyDate#** - в ответ на входящий - дата документа
## Исходящие документы
@ -45,13 +47,22 @@
Возможно использовать [вычисляемые атрибуты](../Конструктор документов/#вычисляемые_атрибуты)
#Master_PrintedText# - содержательная часть
#Master_WhoseName# - на чье имя (Ф.И.О.) в исходящем документе
**#Master_PrintedText#** - содержательная часть
**#Master_WhoseName#** - на чье имя (Ф.И.О.) в исходящем документе
Имеется константа:
**Авторегистрация_ИсхДок** - автоматическое присваивание номера исходящего документа на этапе "Зарегистрировать".
**Исходящие_Идентификатор_почты_для_отправки** - казывается идентификатор почтового ящика для отправки исходящего письма на почту контрагенту. В `production.js` в сервисе `post` указывается дополнительная почта.
`User` - логин от почты
`Pass` - пароль от почты
![alt text](media/image-3.png)
## ОРД
[ОРД](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/%D0%9E%D0%A0%D0%94/#%D0%BE%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE-%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B_%D0%BE%D1%80%D0%B4) это документ для автоматизации документооборота организационно-распорядительных документов (приказы, протоколы, распоряжения) в организации.

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -28,6 +28,8 @@ CUser | Создатель документа |
Curator | Куратор |
StageUser | Участник маршрута |
EmpowermentSubject | Полномочия |
Filial | Организация |
Subtype | Подтип |
Существует строго определённый набор значений поля "Id", приведённый в [таблице ниже](#таблица). Соответствующее им поле "Name" заполняется произвольно. В справочнике «Итоговые выборки поисковой системы» этим значениям будут поставлены в соответствие поля в таблицах, по которым будет осуществляться поиск и фильтрация документов с вложениями.
@ -96,177 +98,122 @@ WHERE 1 = 1
<!-- ![Пример документа "Итог FTS"](./media/ResultFTSForm.png) -->
В табличную часть "Фильтры" указывается следующее:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SQL Syntax Highlighting</title>
<style>
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
}
th {
background-color: #f2f2f2;
text-align: left;
}
code {
background-color: #f9f9f9;
padding: 2px 4px;
border-radius: 4px;
}
.sql-keyword {
color: #0000FF;
font-weight: bold;
}
.sql-identifier {
color: #A31515;
}
.sql-string {
color: #A31515;
}
.sql-comment {
color: #008000;
}
</style>
</head>
<body>
**CUser - Создатель документа**
```sql
and exists(
select 1 from "tmp_anFilters_for_documentSearch" as an where an."id" = 'CUser' and an."value" = cast(t."CUser" as character varying)
)
```
<h2>Примеры настраиваемых выборок</h2>
<h3>Настраиваемая выборка для кадрового электронного документооборота</h3>
**Initiator - Инициатор**
```sql
and(
exists(
select 1
from "tmp_anFilters_for_documentSearch" as an
join comdoc."Route" as r on r."DocCode" = t."VCode" and r."DocType" = t."TypeName"
where an."id" = 'Initiator'
and r."Initiator" = an."value"
)
)
```
<table>
<thead>
<tr>
<th>Код</th>
<th>Наименование</th>
<th>SQLScript</th>
</tr>
</thead>
<tbody>
<tr>
<td>CUser</td>
<td>Создатель документа</td>
<td><code>and exists( select 1 from <span class="sql-identifier">"tmp_anFilters_for_documentSearch"</span> as an where an.<span class="sql-identifier">"id"</span> = <span class="sql-string">'CUser'</span> and an.<span class="sql-identifier">"value"</span> = cast(t.<span class="sql-identifier">"CUser"</span> as character varying) )</code></td>
</tr>
<tr>
<td>Initiator</td>
<td>Инициатор</td>
<td>
<code>and( <br>
exists( <br>
select 1 <br>
from <span class="sql-identifier">"tmp_anFilters_for_documentSearch"</span> as an <br>
join <span class="sql-identifier">comdoc."Route"</span> as r on r.<span class="sql-identifier">"DocCode"</span> = t.<span class="sql-identifier">"VCode"</span> and r.<span class="sql-identifier">"DocType"</span> = t.<span class="sql-identifier">"TypeName"</span> <br>
where an.<span class="sql-identifier">"id"</span> = <span class="sql-string">'Initiator'</span> <br>
and r.<span class="sql-identifier">"Initiator"</span> = an.<span class="sql-identifier">"value"</span> <br>
)</code>
</td>
</tr>
<tr>
<td>StageUser</td>
<td>Участник маршрута</td>
<td>
<code>and <br>
exists( <br>
select 1 <br>
from <span class="sql-identifier">"tmp_anFilters_for_documentSearch"</span> as an <br>
join <span class="sql-identifier">comdoc."Route"</span> as r on r.<span class="sql-identifier">"DocCode"</span> = t.<span class="sql-identifier">"VCode"</span> and r.<span class="sql-identifier">"DocType"</span> = t.<span class="sql-identifier">"TypeName"</span> <br>
join <span class="sql-identifier">comdoc."RouteStage"</span> as s on s.<span class="sql-identifier">"PCode"</span> = r.<span class="sql-identifier">"VCode"</span> <br>
join <span class="sql-identifier">comdoc."StageItem"</span> as i on i.<span class="sql-identifier">"PCode"</span> = s.<span class="sql-identifier">"VCode"</span> <br>
where an.<span class="sql-identifier">"id"</span> = <span class="sql-string">'StageUser'</span> <br>
and r.<span class="sql-identifier">"RouteStatus"</span> NOT IN (4) <br>
and i.<span class="sql-identifier">"StageUser"</span> = an.<span class="sql-identifier">"value"</span> <br>
)</code>
</td>
</tr>
<tr>
<td>SignatoryUser</td>
<td>Работник</td>
<td>
<code>and( <br>
exists( <br>
select 1 <br>
from <span class="sql-identifier">"tmp_anFilters_for_documentSearch"</span> as an <br>
join <span class="sql-identifier">comdoc."Route"</span> as r on r.<span class="sql-identifier">"DocCode"</span> = t.<span class="sql-identifier">"VCode"</span> and r.<span class="sql-identifier">"DocType"</span> = t.<span class="sql-identifier">"TypeName"</span> <br>
where an.<span class="sql-identifier">"id"</span> = <span class="sql-string">'SignatoryUser'</span> <br>
and r.<span class="sql-identifier">"DocType"</span> = <span class="sql-string">'EmployeeStatement'</span> <br>
and r.<span class="sql-identifier">"Initiator"</span> = an.<span class="sql-identifier">"value"</span> <br>
) or exists( <br>
select 1 <br>
from <span class="sql-identifier">"tmp_anFilters_for_documentSearch"</span> as an <br>
join <span class="sql-identifier">comdoc."Route"</span> as r on r.<span class="sql-identifier">"DocCode"</span> = t.<span class="sql-identifier">"VCode"</span> and r.<span class="sql-identifier">"DocType"</span> = t.<span class="sql-identifier">"TypeName"</span> <br>
join <span class="sql-identifier">comdoc."RouteStage"</span> as s on s.<span class="sql-identifier">"PCode"</span> = r.<span class="sql-identifier">"VCode"</span> <br>
join <span class="sql-identifier">comdoc."StageItem"</span> as i on i.<span class="sql-identifier">"PCode"</span> = s.<span class="sql-identifier">"VCode"</span> <br>
where an.<span class="sql-identifier">"id"</span> = <span class="sql-string">'SignatoryUser'</span> <br>
and r.<span class="sql-identifier">"DocType"</span> = <span class="sql-string">'LND'</span> <br>
AND r.<span class="sql-identifier">"RouteStatus"</span> NOT IN(4) <br>
AND s.<span class="sql-identifier">"IsMarked"</span> IS NOT true <br>
AND COALESCE(i.<span class="sql-identifier">"DocumentAction"</span>, 0) IN (20, 30) <br>
and i.<span class="sql-identifier">"StageUser"</span> = an.<span class="sql-identifier">"value"</span> <br>
) or exists( <br>
select 1 <br>
from <span class="sql-identifier">"tmp_anFilters_for_documentSearch"</span> as an <br>
join <span class="sql-identifier">comdoc."ReadListItem"</span> as r on r.<span class="sql-identifier">"DocCode"</span> = t.<span class="sql-identifier">"VCode"</span> and r.<span class="sql-identifier">"DocType"</span> = t.<span class="sql-identifier">"TypeName"</span> <br>
where an.<span class="sql-identifier">"id"</span> = <span class="sql-string">'SignatoryUser'</span> <br>
and r.<span class="sql-identifier">"DocType"</span> = <span class="sql-string">'LND'</span> <br>
and r.<span class="sql-identifier">"DocflowUser"</span> = an.<span class="sql-identifier">"value"</span> <br>
) or exists( <br>
select 1 <br>
from <span class="sql-identifier">"tmp_anFilters_for_documentSearch"</span> as an <br>
join <span class="sql-identifier">dfd."EmpowermentWorkerDetail"</span> as ewd on ewd.<span class="sql-identifier">"PCode"</span> = t.<span class="sql-identifier">"VCode"</span> <br>
JOIN <span class="sql-identifier">rp."RP_Person"</span> AS p ON ewd.<span class="sql-identifier">"PersonId"</span> = p.<span class="sql-identifier">"VCode"</span> <br>
JOIN <span class="sql-identifier">rp."RP_PersonContact"</span> AS pc on p.<span class="sql-identifier">"VCode"</span> = pc.<span class="sql-identifier">"Pcode"</span> <br>
where an.<span class="sql-identifier">"id"</span> = <span class="sql-string">'SignatoryUser'</span> <br>
and t.<span class="sql-identifier">"TypeName"</span> = <span class="sql-string">'EmpowermentConstructor'</span> <br>
and pc.<span class="sql-identifier">"IdTypeContact"</span> = 6 <br>
and pc.<span class="sql-identifier">"Code"</span> = an.<span class="sql-identifier">"value"</span> <br>
)
)
</code>
</td>
</tr>
<tr>
<td>EmpowermentSubject</td>
<td>Полномочия</td>
<td>
<code>and <br>
exists( <br>
select 1 <br>
from <span class="sql-identifier">"tmp_anFilters_for_documentSearch"</span> as an <br>
join <span class="sql-identifier">dfd."EmpowermentSubjectDetail"</span> as esd on esd.<span class="sql-identifier">"PCode"</span> = t.<span class="sql-identifier">"VCode"</span> <br>
JOIN <span class="sql-identifier">dfd."EmpowermentSubject"</span> AS s ON esd.<span class="sql-identifier">"Subject"</span> = s.<span class="sql-identifier">"VCode"</span> <br>
where an.<span class="sql-identifier">"id"</span> = <span class="sql-string">'EmpowermentSubject'</span> <br>
and t.<span class="sql-identifier">"TypeName"</span> = <span class="sql-string">'EmpowermentConstructor'</span> <br>
and s.<span class="sql-identifier">"VCode"</span> = an.<span class="sql-identifier">"value"</span>::bigint <br>
)
</code>
</td>
</tr>
<tr>
<td>Filial</td>
<td>Организация</td>
<td>
<code>and exists( <br>
select 1 <br>
from <span class="sql-identifier">"tmp_anFilters_for_documentSearch"</span> as an <br>
where an.<span class="sql-identifier">"id"</span> = <span class="sql-string">'Filial'</span> <br>
and t.<span class="sql-identifier">"COrg"</span>::text = an.<span class="sql-identifier">"value"</span> <br>
)
</code>
</td>
</tr>
</tbody>
</table>
**StageUser - Участник маршрута**
```sql
and
exists(
select 1
from "tmp_anFilters_for_documentSearch" as an
join comdoc."Route" as r on r."DocCode" = t."VCode" and r."DocType" = t."TypeName"
join comdoc."RouteStage" as s on s."PCode" = r."VCode"
join comdoc."StageItem" as i on i."PCode" = s."VCode"
where an."id" = 'StageUser'
and r."RouteStatus" NOT IN (4)
and i."StageUser" = an."value"
)
</body>
</html> |
```
**EmpowermentSubject - Полномочия**
```sql
and
exists(
select 1
from "tmp_anFilters_for_documentSearch" as an
join dfd."EmpowermentSubjectDetail" as esd on esd."PCode" = t."VCode"
JOIN dfd."EmpowermentSubject" AS s ON esd."Subject" = s."VCode"
where an."id" = 'EmpowermentSubject'
and t."TypeName" = 'EmpowermentConstructor'
and s."VCode" = an."value"::bigint
)
```
**SignatoryUser - Работник**
```sql
and(
exists(
select 1
from "tmp_anFilters_for_documentSearch" as an
join comdoc."Route" as r on r."DocCode" = t."VCode" and r."DocType" = t."TypeName"
where an."id" = 'SignatoryUser'
and r."DocType" = 'EmployeeStatement'
and r."Initiator" = an."value"
) or exists(
select 1
from "tmp_anFilters_for_documentSearch" as an
join comdoc."Route" as r on r."DocCode" = t."VCode" and r."DocType" = t."TypeName"
join comdoc."RouteStage" as s on s."PCode" = r."VCode"
join comdoc."StageItem" as i on i."PCode" = s."VCode"
where an."id" = 'SignatoryUser'
and r."DocType" = 'LND'
AND r."RouteStatus" NOT IN(4)
AND s."IsMarked" IS NOT true
AND COALESCE(i."DocumentAction", 0) IN (20, 30)
and i."StageUser" = an."value"
) or exists(
select 1
from "tmp_anFilters_for_documentSearch" as an
join comdoc."ReadListItem" as r on r."DocCode" = t."VCode" and r."DocType" = t."TypeName"
where an."id" = 'SignatoryUser'
and r."DocType" = 'LND'
and r."DocflowUser" = an."value"
) or exists(
select 1
from "tmp_anFilters_for_documentSearch" as an
join dfd."EmpowermentWorkerDetail" as ewd on ewd."PCode" = t."VCode"
JOIN rp."RP_Person" AS p ON ewd."PersonId" = p."VCode"
JOIN rp."RP_PersonContact" AS pc on p."VCode" = pc."Pcode"
where an."id" = 'SignatoryUser'
and t."TypeName" = 'EmpowermentConstructor'
and pc."IdTypeContact" = 6
and pc."Code" = an."value"
)
)
```
**Filial - Организация**
```sql
and
exists(
select 1
from "tmp_anFilters_for_documentSearch" as an
where an."id" = 'Filial'
and t."COrg"::text = an."value"
)
```
**Subtype - Подтип**
```sql
and
exists(
select 1
from "tmp_anFilters_for_documentSearch" as an
where an."id" = 'Subtype'
and t."DocumentSubtype"::text = an."value"::text
)
```
## Настройка документов

View File

@ -30,7 +30,7 @@
Откроется новая форма.
![Новое задание](media/2024-12-03.png)
![alt text](media/image-1.png)
### Вкладка "Настройки"
@ -76,7 +76,9 @@
Пример заполненной вкладки предоставлен ниже:
![Пример](media/example.png)
![alt text](media/image-2.png)
Поле "Комментарий" - текстовое для ведения каких-либо комментариев, записей по задаче.
### Вкладка "Задача"

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View File

@ -144,6 +144,7 @@
**Задача шедулера "Создание пользователей"** | В карточке и реестре [сотрудников](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/Сотрудники/) отображается кнопка создания пользователей по выделенному списку и направление им уведомлений | | Код задачи из реестра задач шедулера
**Интеграция с 1С с помощью сервиса ODATA** | В документах [«Заявление от сотрудников»](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/Заявления от сотрудников/) и «Документ на подписание» по завершении маршрута для всех вложенных файлов будут сформированы и прикреплены к документу такие же файлы со штампом электронной подписи | количество дней за которые идет проверка в шедуллере. Если не заполнено, то по умолчанию 3 | 1
**Информация_в_заявкеа_выпуск_сертификата** | Добавляется текст в [заявках на выпуск сертификата](../Выпуск ОНЭП/#Заявки-на-выпуск-ЭП) | ``` <div style="text-align: center;"><font size="3" color="#0000ff">Добрый день,<br>вам выпущен сертификат ЭП. Необходимо ознакомиться с вложениями, распечатать их, подписать и отнести в отдел кадров</font></div> ``` |
**Исходящие_Идентификатор_почты_для_отправки** | Указывается идентификатор почтового ящика для отправки исходящего письма на почту контрагенту. В `production.js` в сервисе `post` указывается дополнительная почта. Например, если указали почту с идентификатором `forexternal` то необходимо это указать в **"Значение(текст)"**. |
**Количество дней от текущей даты для отображения графиков отпусков в актуальном графике отпусков** | Задается количество дней от текущей даты для отображения неиспользованных дней согласно графиков отпусков к моменту оформления заявления и до начала которых осталось не менее указанного количества календарных дней Заполняется **"Значение(константа)"**. |
**количество_перевыпускаемых_сертификатов_ЭП_за_раз** | Задается количество сертификатов электронной подписи при работе [задачи по перевыпуску](../Функции планировщика задач/index.md) [планировщика](../Планировщик задач/index.md). Заполняется **"Значение(константа)"**. | | 50
**КЭДО. Сообщение об ограничении типов** | Выводит информационное сообщение при создании заявления в случае отсутствия наличия даты перехода на КЭДО у сотрудника. Задается значение (текст). В случае если не заполнено выходит сообщение по умолчанию. Заполняется столбец **"Значение (текст)"** **Сообщение по умолчанию** - Вам недоступно создание заявления в связи с отсутствием даты перехода на КЭДО. Обратитесь в отдел кадров. | |

View File

@ -508,3 +508,56 @@ search:
```sql
call comdoc."PostToSendLog"();
```
### Уведомление о просрочке предоставления ответа на входящие документы
??? Задача
```sql
with param as (select COALESCE(comdoc."getFilial"(), 2) as "getFilial",
comdoc."fnDefineRegion"(null::bigint, comdoc."getFilial"()::bigint, now()::date) as "Region")
insert into "#forInsNotification" ("DocflowUser", "txt", "Link", "DocType", "DocName", "DocSubject", "IdWorker")
select (SELECT DISTINCT string_agg(x."EMail", ',')
from (select distinct du."EMail"--,da."Name", da."InternalName" AS "DocumentAction" ,da.*
FROM comdoc."Route" AS a
JOIN comdoc."RouteStage" AS s ON s."PCode" = a."VCode"
join comdoc."StageItem" as i on i."PCode" = s."VCode"
LEFT JOIN comdoc."DocumentAction" AS da ON da."VCode" = i."DocumentAction"
LEFT JOIN comdoc."DocflowUser" AS du ON du."VCode" = i."StageUser"
WHERE s."IsMarked" IS NOT true
and a."DocCode" = Incoming."VCode"
and a."DocType" = 'IncomingDocument'
and (da."InternalName" like 'Execute%' or da."InternalName" = 'Run')
)x
)as "DocflowUser",
'<tr><th align="left">По документу </th></tr>' ||
'<tr><td>' ||
'<a href="' ||ss."link_txt" || '/#/view/' || dds."DocForm"||'/'|| Incoming."VCode" ::text || '">'||'Входящий документ №'||coalesce(Incoming."DocumentNumber",'')||'</a>' || '</td>'
||'</tr>' ||'<tr><th>'||' не предоставлен ответ. Срок: '|| to_char("ResponseDatePlan"::date, 'DD.MM.YYYY')|| '</th></tr>' as "txt",
null::bigint as "Link",
null as "DocType",
'' as "DocName", --это для физ уведомления
'Входящие документы с истекающей датой предоставления ответа'::text as "DocSubject",
null::bigint as "IdWorker" --это для физ уведомления;
from dfd."DocflowDocument" Incoming
cross join (select "LocationProtocol" || '//' || "LocationHostName" as "link_txt" from comdoc."DocflowSettings") ss
left join comdoc."DocflowDocumentSettings" AS dds ON dds."DocType" = Incoming."TypeName"
where Incoming."TypeName" = 'IncomingDocument'
and "ResponseDatePlan" is not null
--and comdoc."datediff"('day',"ResponseDatePlan",CURRENT_DATE)>3
and "NeedResponse" =true
and coalesce((select count(*)
from comdoc."VDocflowCalendar" d
cross join param p
where ((d."RDate" between CURRENT_DATE and "ResponseDatePlan" and "ResponseDatePlan">CURRENT_DATE) )
and d."isDayOff" = false
and ((d."orgId" = p."getFilial" and coalesce(p."Region",0) =0 ) or d."Region" = p."Region")),0)<4
and not exists(select "DocCode1"
from comdoc."DocflowLink" l
where l."DocCode2" = Incoming."VCode"
and "DocType2" = 'IncomingDocument'
and "DocType1" = 'OutgoingDocument'
)
```