300 lines
41 KiB
Markdown
300 lines
41 KiB
Markdown
---
|
||
search:
|
||
boost: 2
|
||
---
|
||
# Настройка документов
|
||
|
||
## Общее описание назначения документа
|
||
|
||
Документы реестра "Настройка документов" предназначены для настройки возможностей и особенностей работы с различными типами документов. В частности, настраиваются доступные пользователям операции при создании маршрута и при перемещении по маршруту.
|
||
|
||
Документ находится в основном меню в группе "Администрирование", подгруппе "Документооборот". Для доступа к документу нужны права администратора.
|
||
|
||
## Реестр
|
||
|
||
Для открытия документа необходимо в Меню в поисковой строке ввести - "Настройка документов". Для доступа к документу нужны права администратора.
|
||
|
||
Откроется реестр настроенных типов документов.
|
||
|
||

|
||
|
||
Для создания нового документа необходимо нажать на кнопку "Создать" на верхней панели инструментов
|
||
|
||

|
||
|
||
## Документ
|
||
|
||
Настройки для документа "Настройка документов" выглядят следующим образом:
|
||
|
||
.png>)
|
||
|
||
Для некоторых полей названия объединены, соответствующие им ячейки идут в том же порядке, что и их названия: поля "Форма" и "Наименование" – в "Форма\Наименование", поля "Схема" и "Таблица" – в "Схема\таблица". Обязательными полями для заполнения являются:
|
||
|
||
- Тип документа – ключевое слово, соответствующее типу документа, обычно формируется по правилу *"имя формы" без "Form"*;
|
||
- Форма – служебное название формы, обычно содержится в адресной строке при открытии вкладки с формой документа и формируется по правилу *"Тип документа" + "Form"*;
|
||
- Наименование – пользовательское название формы, принятое для употребления пользователями системы.
|
||
|
||
Также на форме содержатся поля "Схема" и "Таблица", которое должно содержать название соответствующей документу таблицы в базе данных.
|
||
|
||
В [таблице в конце статьи](#таблица) приведены возможные значения этих полей.
|
||
|
||
### Вкладка "Маршрут документооборота"
|
||
|
||
Вкладка "Маршрут документооборота" разделена на две части: первая содержит логические переменные (опции), вторая содержит таблицу со списком разрешенных действий с документом.
|
||
|
||
#### Опции
|
||
|
||
- **Правит любой участник** – редактировать редактировать содержимое таких документов как: входящие документы, исходящие документы, ОРД, Поручение, служебная записка, заявки в техническую поддержку, служебная записка для договора, договоров и дополнительных документов к договору, может любой участник маршрута, имеющий статус "Текущий";
|
||
- **Разрешено отклонение** – участники маршрута, имеющие статус "Текущий", могут отклонить документ и отправить его на доработку инициатором;
|
||
- **Разрешен отзыв** – инициатор маршрута может отозвать документ на любом этапе маршрута для доработки, пока маршрут по документу не завершен;
|
||
- **Полностью повторять маршрут при отклонении** – после отклонения документа маршрут перестроится следующим образом: документ отзывается с согласования у других участников и возвращается к инициатору, завершённые и назначенные этапы маршрута добавятся в конец маршрута со статусом "Ожидание";
|
||
- **Полностью повторять маршрут при отзыве** – после отзыва документа инициатором маршрут перестроится следующим образом: документ отзывается с согласования у других участников и возвращается к инициатору, завершённые и назначенные этапы маршрута добавятся в конец маршрута со статусом "Ожидание";
|
||
- **Разрешено "горячее редактирование" без отзыва** – участник, обладающий специальной ролью, может в любой момент времени (при любом статусе в маршруте) откорректировать маршрут документа;
|
||
- **Оповещать инициатора о завершении маршрута** – присылать инициатору уведомление на почту о завершении маршрута согласования документа;
|
||
- **Оповещать инициатора о каждом действии** - присылать инициатору уведомление на почту после каждого действия с документом по маршруту согласования;
|
||
- **В оповещениях отображать весь список участников** – перечислять в уведомлениях на почту список участников маршрута для таких документов как: входящие документы, исходящие документы, ОРД, Поручение, служебная записка, заявки в техническую поддержку, служебная записка для договора, договоров и дополнительных документов к договору;
|
||
- **Отображать кнопку Делег в маршруте** – возможность делегировать выполнение действия по маршруту другому пользователю;
|
||
- **Отображать кнопку Делег 2х в маршруте** – возможность делегировать с контролем выполнение действия по маршруту другому пользователю;
|
||
- **Отмена сразу** – используется в *Поручениях*, при отправке документа инициатору на доработку, документ не задерживается у отклоняющего для корректировки маршрута после отмены;
|
||
- **Постановка на контроль после отправки** – после отправки документа далее по маршруту в разделе "Контроль" окна "Документооборот" отслеживается маршрут обработанного документа;
|
||
- **Закрывать документ автоматически после отправки по маршруту** – вместо появления диалогового окна с предложением закрыть документ, после отправки документа по маршруту он закрывается автоматически;
|
||
- **Отображать код в наименовании документа** – в заголовке маршрута к наименованию документа в скобках добавляется код документа, указанный в поле "Код" в реестре и используемый в адресной строке;
|
||
- **Комментировать вложения при согласовании** – подключение сервиса, который при отправке документа по маршруту показывает вложения из "Вложения" в окне для ввода комментариев, причём позволяет дать комментарий как к действию в целом, так и по каждому вложению;
|
||
- **ЭП в списках рассылки** – ознакомление с документом происходит с использованием электронной подписи (ЭП);
|
||
- **Форма построена на конструкторе документов** – включает форму в список типов документа, для которых может создаваться конструктор документов;
|
||
- **Кол-во дней на ознакомление в списках рассылки** - указывается количество дней для ознакомления с документами, полученными через рассылку. Если поле не заполнено - по умолчанию 2 дня;
|
||
- **Разрешено к массовой обработке** - разрешено [массово обработать документы](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/Подписание сертификатом/#массовая_обработка_документов);
|
||
- **Разрешено к массовой обработке на 1-м этапе** - разрешено [массово обработать документы](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/Подписание сертификатом/#массовая_обработка_документов), в которых пользователь находится на 1-м этапе в маршруте, например документы на подписание;
|
||
- **Скрыть "Лист согласования"** - скрывает кнопку "Лист согласования" в панели инструментов в документах;
|
||
- **Показывать в мобильном приложении** - включает отображение типа документа в [истории операции в мобильном приложении](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/Общие принципы работы с приложением/#история).
|
||
|
||
#### Настройка допустимых действий
|
||
|
||
В правой части вкладки "Маршрут документооборота" содержится таблица со списком возможных действий, которые можно совершить при отправке документа по маршруту.
|
||
|
||

|
||
|
||
Столбец **"Действие с документом"** соответствует столбцу **"Совершить действие"** в маршруте документа. Столбец **"Статус документа"** соответствует столбцу **"Статус документа"** в маршруте документа. Столбец **"Направление движения документа"** определяет направление, в котором будет отправлен документ после обработки. Имеется три направления:
|
||
|
||
1. **Документ отправится далее по маршруту** - после подписания документ направляется далее по маршруту согласования;
|
||
2. **Документ сразу вернется инициатору** - документ направляется инициатору в случае не согласования. Маршрут согласования в этом случае повторяется.
|
||
3. **Документ вернется только инициатору** - документ направляется инициатору в случае не согласования документа по маршруту. Маршрут согласования в этом случае не повторяется.
|
||
4. **Документ вернется инициатору и всем несогласным** - документ направляется инициатору и всем несогласным в случае не согласования документа по маршруту.
|
||
5. **Ошибочно направлено. Документ вернется только инициатору** - документ направляется инициатору в случае не согласования документа по маршруту, по причине что документ был ошибочно направлен пользователю на согласование. Маршрут согласования в этом случае не повторяется.
|
||
6. **Построить новую итерацию из шаблона маршрута** - документ направляется инициатору в случае не согласования. Маршрут согласования в этом случае повторяется из шаблона маршрута.
|
||
|
||
Ко всем типам документов действие должно быть выбрано "Далее".
|
||
|
||
По умолчанию для каждого вида документа должен быть выбран один вид действия. Это необходимо для массовой обработки документов, подробнее можно почитать в статье [Массовая обработка документов](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/Подписание сертификатом/#массовая_обработка_документов).
|
||
Для каждого статуса документа можно определить, что будет происходить с маршрутом после выбора соответствующего статуса. Кроме отправки документа далее по маршруту также возможен, например, отзыв документа.
|
||
|
||

|
||
|
||
С помощью столбца **"Особая метка"** можно отмечать выполненные действия в маршруте документа с помощью выделения строки определенным цветом и использования специальных иконок. Доступны метки "Желтый флаг" и "Красный флаг". Желтый флаг может сигнализировать о выполнении действия с замечаниями (например, "Согласовано с замечаниями"). Красный флаг может сигнализировать об отказе подписать документ.
|
||
|
||

|
||
|
||
С помощью столбца **"Порядок"** можно определять порядок отображения допустимых действий в панели инструментов внутри документов. Например, если у действия "Подписать ЭП" установлен порядок равный 1, значит это действие будет на первом месте в панели инструментов.
|
||
|
||
С помощью столбца **Отрицательный статус** можно отмечать, имеет ли выбранное допустимое действие отрицательный статус. _Отрицательный статус у электронного документа_ - это отметка, которое указывает на то, что электронный документ не может быть принят или обработан по каким-либо причинам. Это может произойти, если документ содержит ошибки в формате или не соответствует требованиям, установленным для конкретного типа документа.
|
||
|
||
С помощью столбца **"Присвоить номер"** определяется после какого действия с документом в нем будет проставляться номер. Данная настройка работает на служебных записках, исходящих документах, организационно-распорядительных документах.
|
||
|
||
С помощью столбца **Уведомление инициатору** определяется какой вид [уведомления](../Конструктор уведомлений/#вид_уведомления_уведомления_инициатора_о_работе_с_документом) будет направлен инициатору. Должна быть включена галка **Оповещать инициатора о каждом действии**.
|
||
|
||
С помощью столбца **О завершении маршрута** возможно задать вид [уведомления](../Конструктор уведомлений/#вид_уведомления_о_завершении_маршрута) о завершении маршрута согласования для инициатора документа. Заданный вид уведомления назначается один раз (заполняется в одной строке с любым действием). Должна быть включена галка **Оповещать инициатора о завершении маршрута**.
|
||
|
||
### Вкладка "Допустимые статусы по подтипам"
|
||
|
||
На этой вкладке отображаются [допустимые статусы по подтипам документов](../Подтипы документов/#вкладка_настройки). Если для данного типа документов отсутствуют статусы по подтипам, то вкладка автоматически скрывается.
|
||
|
||

|
||
|
||
### Вкладка "Сервисы документооборота"
|
||
|
||
На этой вкладке можно настроить отслеживание данных в документе для соответственной корректировки его наименования и работу механизма отображения опосредованных связок.
|
||
|
||

|
||
|
||
Опция **Отслеживать изменение наименования сервисом DocflowWatcher** используется для отслеживания изменений в реквизитах документа для изменения его наименования и темы в разделе "Документооборот" в соответствии с его реквизитами. Если опция не включена, наименование и/или тема документа в разделе "Документооборот" изменятся только после сохранения **и** отправки документа далее по маршруту. Если опция включена, то наименование и/или тема документов меняются после сохранения документа, не дожидаясь отправки далее по маршруту.
|
||
|
||

|
||
|
||
По нажатию на кнопку "Связки", доступную из формы документа, открывается вложенная форма "Связки с документами системы", в которой содержится таблица "Связанные документы". Без включения опции **Использовать механизм отображения опосредованных связок** в ней отображаются только документы, напрямую связанные с текущим.
|
||
|
||

|
||
|
||
При помощи опции **Использовать механизм отображения опосредованных связок** можно включить возможность просмотра документов, не связанных напрямую с текущим. На форме "Связки с документами системы" появится опция **Опосредованные связки**, включающая отображение в таблице "Связанные документы" опосредованно связанных с текущим документов, и числовое поле **итераций**, задающая глубину связи.
|
||
|
||

|
||
|
||
Если опция **Отображать опосредованные связки по умолчанию** включена, то при нажатии на кнопку "Связки" опция **Опосредованные связки** будет уже автоматически включена.
|
||
|
||

|
||
|
||
В поле **Количество итераций по умолчанию при расчете опосредованных связок** можно указать количество итераций по умолчанию. При просмотре связанных документов поле **итераций** будет заполнено выбранным числом, но всё ещё будет изменяемым.
|
||
|
||

|
||
|
||
### Вкладка "Поисковая система"
|
||
|
||
На этой вкладке происходит подключение документов определенного типа к системе контекстного поиска документов. Более подробно про взаимодействие пользователей с контекстным поиском можно прочесть в разделе [Контекстный поиск](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/Контекстный поиск/).
|
||
|
||
Для идентификации подключаемого документа поисковой системой в настроечном документе ему необходимо присвоить тип, указать наименование и ключ формы. Дальнейшая настройка производится на закладке "Поисковая система". Здесь и далее на примере документа "Входящее письмо".
|
||
|
||

|
||
|
||
#### Настройка полнотекстовых индексов
|
||
|
||
Сначала необходимо добавить в таблицу "Таблицы" новую строку с помощью кнопки "Добавить". В столбце *Таблица* необходимо указать наименование базовой таблицы модели документа – ```dbo.DocflowDocument```. Наименование должно содержать имя схемы. Использование квадратных скобок для обрамления сущностей не допускается. Имена схем в СУБД SQL Server отличаются от имен в СУБД PostgreSQL. В столбце *IndexedFields* необходимо выбрать из выпадающего списка поля таблицы, для которых необходимо настроить полнотекстовые индексы. В списке представлены все символьные поля целевой таблицы за исключением служебных (```TypeName```, ```CUser```, ```WUser```, ```CHost```, ```WHost```).
|
||
|
||

|
||
|
||
После этого необходимо сохранить документ и в базе данных (БД) вручную запустить на исполнение процедуру *ManageFullTextIndexes* (экспортируется библиотекой ```ecosoft-lexema8-CommonDocuments```).
|
||
|
||
``` sql
|
||
exec dbo.ManageFullTextIndexes
|
||
```
|
||
|
||
В результате выполнения этой процедуры в базе данных будут созданы все необходимые объекты (полнотекстовый каталог, стоп-лист и заявленные полнотекстовые индексы).
|
||
|
||
!!! warning
|
||
|
||
Эту операцию необходимо будет выполнять каждый раз после изменения конфигурации системы поиска (например, при подключении нового документа или при изменении набора символьных полей в существующей настройке).
|
||
|
||
#### Скрипт связки результатов полнотекстового поиска с документами
|
||
|
||
Для поиска система использует запрос ```CONTAINSTABLE```, который возвращает только ключ записи в таблице со значениями полей, удовлетворяющих заданным критериям без привязки к конкретному типу документа. Выглядит это примерно так:
|
||
|
||
``` sql
|
||
-- insert into #ftResult ([KEY], [TableName], [ColumnName], [RANK])
|
||
select b.[KEY], b.[TableName], b.[ColumnName], b.[RANK] from
|
||
(
|
||
select ID=row_number() over (partition by a.[TableName], a.[KEY] order by a.[Rank] DESC), a.*
|
||
from
|
||
(
|
||
select [TableName] = 'dbo.DocflowDocument', [ColumnName] = 'Subject', [KEY], [RANK] from CONTAINSTABLE(dbo.DocflowDocument, [Subject],' ( "светильник *" ) OR ( FORMSOF (INFLECTIONAL, светильник) ) ')
|
||
union all
|
||
select [TableName] = 'dbo.DocflowDocument', [ColumnName] = 'Text', [KEY], [RANK] from CONTAINSTABLE(dbo.DocflowDocument, [Text],' ( "светильник *" ) OR ( FORMSOF (INFLECTIONAL, светильник) ) ')
|
||
) as a
|
||
) as b
|
||
where b.ID = 1
|
||
```
|
||
|
||

|
||
|
||
Поэтому системе необходим специальный скрипт, который связал бы результат поиска с документами. Он вводится в поле ```SelectQuery``` следующим образом:
|
||
|
||
```sql
|
||
select [KEY] = VCode, DocCode = VCode, DocType = TypeName from dbo.DocflowDocument
|
||
```
|
||
|
||

|
||
|
||
Скрипт должен возвращать три ```NOT NULL```-поля:
|
||
|
||
- ```KEY``` – ключ для связки с выборкой;
|
||
- ```DocCode``` – код документа;
|
||
- ```DocType``` – тип документа.
|
||
|
||
В примере рассматривается случай, когда тип документа хранится в специально выделенном для этого поле ```TypeName``` таблицы. Если такого поля нет (т.е. на таблице построен только один документ) тип в свойство ```DocType``` необходимо передать константой
|
||
|
||
```sql
|
||
select [KEY] = VCode, DocCode = VCode, DocType = 'TestDoc' from dbo.TestDoc
|
||
```
|
||
|
||
Сама связка внутри системы выглядит примерно так:
|
||
|
||

|
||
|
||
#### Скрипт на выборку результирующего набора данных
|
||
|
||
Задается в правой части настроечного документа. Осуществляет сбор результатов поиска, дополняя ее необходимыми свойствами для отображения на форме и применяя к ней заданные аналитические фильтры. Также на него возлагается отсечка документов, удовлетворяющих заданным критериям поиска, но на которые запрашивающий пользователь не имеет прав просмотра. Скрипт должен иметь *строго определенную структуру*, возвращая шесть полей в следующем порядке:
|
||
|
||
* ```DocCode``` – код документа;
|
||
* ```DocType``` – тип документа;
|
||
* ```DocName``` – наименование документа;
|
||
* ```DocTheme``` – тема документа;
|
||
* ```DocDefinition``` – описание документа;
|
||
* ```CanSee``` – флаг, отвечающий за возможность отображения данного документа на форме.
|
||
|
||

|
||
|
||
Пример типового скрипта:
|
||
|
||
```sql
|
||
select
|
||
DocCode = t.VCode
|
||
, DocType = t.TypeName
|
||
, DocName = 'Входящий документ №' + case when isnull(t.DocumentNumber, '') = '' then '...' else t.DocumentNumber end
|
||
+ case when t.DocumentDate is null then '' else ' от ' + convert(varchar(10), t.DocumentDate, 104) end
|
||
, DocTheme = isnull(t.[Subject], '')
|
||
, DocDefinition = isnull(t.[Text], '')
|
||
, CanSee = 1
|
||
from dbo.DocflowDocument as t
|
||
where %WhereMacro
|
||
```
|
||
|
||

|
||
|
||
Особенности написания:
|
||
|
||
* Базовая таблица модели документа должна присутствовать явно или неявно (как в примере: внутри представления ```dbo.VDocflowDocumentReg```) и иметь псевдоним "**t**", т.к. все инструкции аналитических фильтров будут обращаться к ней именно по этому псевдониму.
|
||
* Должна присутствовать инструкция ```where``` и содержать только метку ```%WhereMacro```, которая будет заменяться системой на инструкции аналитических фильтров.
|
||
* Если в таблице не выделено поле для хранения типов, свойство ```DocType``` описывается константой, например ```DocType = 'TestDoc'```.
|
||
* Если для документа не предполагается иметь тему или описание, соответствующим свойствам необходимо присвоить значение ```NULL``` (например, ```DocDefinition = NULL```).
|
||
* Если документ подключен к СЭД, инструкция по формированию наименования документа (свойство ```DocName```) **должна быть синхронизирована** с логикой соответствующей js-функции документооборота ```getReadableName```. Эта инструкция будет применяться только для тех документов, к которым не нашелся текущий маршрут согласования. Если маршрут есть – наименование берется оттуда.
|
||
* Флаг ```CanSee``` должен возвращать значение, действительно отражающее наличие или отсутствие прав у пользователя на просмотр данного документа, т.к. ответственность за показ пользователю не предназначенной ему конфиденциальной информации может быть возложена на прикладника, осуществлявшего настройку (в примере флаг выставлен в "**1**" потому что все возможные проверки уже сделаны в представлении ```dbo.VDocflowDocumentReg```, – она является реестровым представлением документа).
|
||
|
||
#### Завершение настройки
|
||
|
||
* Опции ```FTS2``` и ```Итоги``` позволяют включить документ в поиск в аналитической форме "Архив вложенных документов".
|
||
* Указать значение свойства ```typeNameProperty``` модели документа (если есть). Оно будет использоваться для фильтрации документов, если при вызове поискового запроса был назначен аналитический фильтр по разделам (типам документов).
|
||
* Указать значение свойства ```dateProperty``` модели документа (если есть). Оно будет использоваться для фильтрации документов, если при вызове поискового запроса был назначен аналитический фильтр по расчетному периоду.
|
||
* Аналогично с остальными свойствами.
|
||
|
||
Осталось поставить галочку в поле "Настроен" и сохранить документ.
|
||
|
||

|
||
|
||
#### Дополнительная аналитика в критериях поиска
|
||
|
||
Выше была рассмотрена возможность поиска по символьным реквизитам документа и реквизитам его маршрута согласования. Однако на проектах часто возникает необходимость поиска по специфическим справочным свойствам документа, которые представлены в базовой таблице полем типа ``bigint``, а в шаблоне формы элементом управления ```Lookup``` (список). Например, необходимо найти все входящие письма, в которых фигурирует контрагент (отправитель) "ПАО Мегафон" с возможностью поиска как с настройкой аналитического фильтра (отметить галочкой необходимую организацию в специальном поле ввода в *Настройке расширенных параметров поиска*), так и непосредственным указанием фрагмента наименования организации или её ИНН в окне поискового запроса. Оба этих способа реализуемы.
|
||
|
||
Для поиска по ИНН необходимо, чтобы контекстный поиск искал словоформы в подчиненных базовой таблицах. Реализуется введением в настройку документа обработки скрипта связки справочной таблицы с документом. На практике это выглядит так:
|
||
|
||

|
||
|
||
Т.е. в настройку добавляется строка для обработки таблицы ```dbo.Contractor``` с индексированными полями ```INN``` и ```Name``` (после сохранения настройки необходимо выполнить синхронизацию ```exec dbo.ManageFullTextIndexes```). Запрос на первоначальную выборку будет выглядеть следующим образом:
|
||
|
||
```sql
|
||
select [KEY] = c.VCode, DocCode = t.VCode, DocType = t.TypeName
|
||
from dbo.Contractor as c
|
||
inner join dbo.DocflowDocument as t on t.Contractor = c.VCode
|
||
```
|
||
|
||
Чтобы осуществлять поиск по наименованию контрагента при помощи выбора контрагентов из списка, необходимо заполнить "поле Контрагент" наименованием соответствующего поля в таблице ```dbo.DocflowDocument```:
|
||
|
||

|
||
|
||
### Набор возможных документов и их основных полей { #таблица }
|
||
|
||
| Тип документа | Форма | Наименование документа | Таблица |
|
||
| --------------|-------|------------------------|-------- |
|
||
| IncomingDocument | IncomingDocumentForm | Входящие документы | DocflowDocument |
|
||
| Base.Contract | ContractForm | Договор | Contract |
|
||
| Base.ValidContractDocument | ValidContractDocumentForm | Документ, имеющий силу договора | Contract |
|
||
| DocumentForSigning | DocumentForSigningForm | Документы на подписание | UniversalDocument |
|
||
| Base.AdditionalContract | AdditionalContractForm | Дополнительные документы к договору | AdditionalContract |
|
||
| ServiceDesk | ServiceDeskForm | Заявка в техподдержку | DocflowDocument |
|
||
| ECPCertificateApplication | ECPCertificateApplicationForm | Заявка на выпуск сертификатов ЭЦП | ECPCertificateApplication |
|
||
| EmployeeStatement | EmployeeStatementForm | Заявления от сотрудников | UniversalDocument |
|
||
| OutgoingDocument | OutgoingDocumentForm | Исходящие документы | DocflowDocument |
|
||
| LND | LNDForm | Локальные нормативные акты | UniversalDocument |
|
||
| OrganizationalDocument | OrganizationalDocumentForm | ОРД | DocflowDocument |
|
||
| Instruction | InstructionForm | Поручения | DocflowDocument |
|
||
| ServiceRecordForContract | ServiceRecordForContractForm | СЗ для регистрации договора | DocflowDocument |
|
||
| ServiceRecordForAdditionalDocument | ServiceRecordForAdditionalDocumentForm | СЗ для регистрации доп. документов к договору | DocflowDocument |
|
||
| ServiceRecord | ServiceRecordForm | Служебные записки | ServiceRecord |
|
||
| ServiceRecordForBusinessTrip | ServiceRecordForBusinessTripForm | Служебные записки на командировку | DocflowDocument |
|
||
| UniversalDocument | UniversalDocumentForm | Универсальный документ | UniversalDocument | |