---
search:
  boost: 2 
---
# Настройка документов

## Общее описание назначения документа

Документы реестра "Настройка документов" предназначены для настройки возможностей и особенностей работы с различными типами документов. В частности, настраиваются доступные пользователям операции при создании маршрута и при перемещении по маршруту.

Для открытия документа необходимо в Меню в поисковой строке ввести - "Настройка документов".

Откроется реестр настроенных типов документов.

<!-- ![Рисунок 2 Реестр "Настройка документов"](./media/registry.png) -->

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

![](./media/create.png)

## Документ

Настройки для документа "Настройка документов" выглядят следующим образом: 

![alt text](./media/setting_documents_scr1.png)

Для некоторых полей названия объединены, соответствующие им ячейки идут в том же порядке, что и их названия: поля "Форма" и "Наименование" – в "Форма\Наименование", поля "Схема" и "Таблица" – в "Схема\таблица". Обязательными полями для заполнения являются:

- Тип документа – ключевое слово, соответствующее типу документа, обычно формируется по правилу *"имя формы" без "Form"*;
- Форма – служебное название формы, обычно содержится в адресной строке при открытии вкладки с формой документа и формируется по правилу *"Тип документа" + "Form"*;
- Наименование – пользовательское название формы, принятое для употребления пользователями системы.

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

### Вкладка "Маршрут документооборота"
  
Вкладка "Маршрут документооборота" разделена на две части: первая содержит логические переменные (опции), вторая содержит таблицу со списком разрешенных действий с документом.

#### Настройка допустимых действий

В правой части вкладки "Маршрут документооборота" содержится таблица со списком возможных действий, которые можно совершить при отправке документа по маршруту.

![alt text](media/image-4.png)

Столбец **"Действие с документом"** соответствует столбцу **"Совершить действие"** в маршруте документа. Столбец **"Статус документа"** соответствует столбцу **"Статус документа"** в маршруте документа. Столбец **"Направление движения документа"** определяет направление, в котором будет отправлен документ после обработки. Имеется три направления:

1. **Далее по маршруту** - после подписания документ направляется далее по маршруту согласования;
2. **Вернется инициатору с повторением маршрута** - документ направляется инициатору в случае не согласования. Маршрут согласования в этом случае повторяется.
3. **Вернется только инициатору для ознакомления** - документ направляется инициатору в случае не согласования документа по маршруту. Маршрут согласования в этом случае не повторяется.
4. **Вернется инициатору и всем несогласным** - документ направляется инициатору и всем несогласным в случае не согласования документа по маршруту.
5. **Ошибочно направлено. Вернется только инициатору** - документ направляется инициатору в случае не согласования документа по маршруту, по причине что документ был ошибочно направлен пользователю на согласование. Маршрут согласования в этом случае не повторяется.
6. **Построить новую итерацию из шаблона маршрута** - документ направляется инициатору в случае не согласования. Маршрут согласования в этом случае повторяется из шаблона маршрута.

Ко всем типам документов действие должно быть выбрано "Далее".

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

![Рисунок 5 Список действий с элементом этапа](./media/stageActions.png)

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

![Рисунок 6 Пример подсветки действий в маршруте](./media/flagsDemo.png)

**"Порядок"** возможно определять порядок отображения допустимых действий в панели инструментов внутри документов. Например, если у действия "Подписать ЭП" установлен порядок равный 1, значит это действие будет на первом месте в панели инструментов.

**В подтипах** возможно настраивать отображение определенных статусов документа при согласовании по маршруту согласования. Данный статус отображается только в выбранном подтипе документа. Если ничего не выбрано показывается во всех подтипах документа. Возможно выбрать как один подтип документа, так и несколько.

**Отрицательный статус** возможно отмечать, имеет ли выбранное допустимое действие отрицательный статус. _Отрицательный статус у электронного документа_ - это отметка, которое указывает на то, что электронный документ не может быть принят или обработан по каким-либо причинам. Это может произойти, если документ содержит ошибки в формате или не соответствует требованиям, установленным для конкретного типа документа.

**"Присвоить номер"** определяется после какого действия с документом в нем будет проставляться номер. Данная настройка работает на служебных записках, исходящих документах, организационно-распорядительных документах.

**Статус** определяется после какой действия с документом в нем будет изменен выпадающий список "Статус". Данная настройка работает на договорах.

**Уведомление инициатору** определяется какой вид [уведомления](../Конструктор уведомлений/#вид_уведомления_уведомления_инициатора_о_работе_с_документом) будет направлен инициатору. Должна быть включена галка **Оповещать инициатора о каждом действии**.

**О завершении маршрута** возможно задать вид [уведомления](../Конструктор уведомлений/#вид_уведомления_о_завершении_маршрута) о завершении маршрута согласования для инициатора документа. Заданный вид уведомления назначается один раз (заполняется в одной строке с любым действием). Должна быть включена галка **Оповещать инициатора о завершении маршрута**.

!!! note "Примечание"
    Для некоторых действий с документом в системе необходимо заполнить обязательный комментарий при отправке далее по маршруте:
    **Исполнен, Исполнен Отв., Согл. с замечаниями, Ошибочно направлено, Рассмотрено, Не согласовано, Отказ ЭП, далее, Отказ ЭП, аннулирован, Отказ КЭП, далее, Отказ КЭП, аннулирован, Отклонен, Отказ от ознакомления, Отказ от ознакомления ЭП, Отправлен на доработку, На этап назад, На два этапа назад, На три этапа назад.**

#### Опции

- **Разрешено отклонение** – участники маршрута, имеющие статус "Текущий", могут отклонить документ и отправить его на доработку инициатором;
- **Разрешен отзыв** – инициатор маршрута может отозвать документ на любом этапе маршрута для доработки, пока маршрут по документу не завершен;
- **Полностью повторять маршрут при отклонении** – после отклонения документа маршрут перестроится следующим образом: документ отзывается с согласования у других участников и возвращается к инициатору, завершённые и назначенные этапы маршрута добавятся в конец маршрута со статусом "Ожидание";
- **Полностью повторять маршрут при отзыве** – после отзыва документа инициатором маршрут перестроится следующим образом: документ отзывается с согласования у других участников и возвращается к инициатору, завершённые и назначенные этапы маршрута добавятся в конец маршрута со статусом "Ожидание";
- **Разрешено редактирование сроков обработки в маршруте** - участник, обладающий специальной ролью, может редактировать сроки обработки документов для последующих согласовантов в окне маршрута. Необходима константа [**маршрут_подтип_редактировать_срок_роли**](../Настройка констант/#система_электронного_и_кадрового_документооборота).
- **Отмена сразу** – используется в *Поручениях*, при отправке документа инициатору на доработку, документ не задерживается у отклоняющего для корректировки маршрута после отмены;
- **Добавлять в Контроль при делегировании с контролем** - при делегировании с контролем документ автоматически добавляется во вкладку "Контроль" в окне документооборота во вкладку "Контроль".
- **Разрешено к массовой обработке** - разрешено [массово обработать документы](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/Общие принципы работы с приложением/#история).
- **Скрыть "Лист согласования"** - скрывает кнопку "Лист согласования" в панели инструментов в документах;
- **Скрыть "Маршрут"** - скрывает кнопку "Маршрут" в панели инструментов в документах;
- **Показывать онлайн-чат** - включает онлайн-чат внутри документа.
- **Показывать жизненный цикл** - включает отображение кнопки "Жизненный цикл" в панели инструментов документа, где отображаются комментарии согласующих по маршруту.
- **Фильтровать связки по правам** - включает фильтрацию по отображению документов по ролям в связках. Если пользователь не имеет прав на документ, то он не будет отображаться в связках к документу.
- **ЭП в списках рассылки** – ознакомление с документом происходит с использованием электронной подписи (ЭП);
- **Кол-во дней на ознакомление в списках рассылки** - указывается количество дней для ознакомления с документами, полученными через рассылку. Если поле не заполнено - по умолчанию 2 дня;
<!-- - **Правит любой участник** – редактировать редактировать содержимое таких документов как: входящие документы, исходящие документы, ОРД, Поручение, служебная записка, заявки в техническую поддержку, служебная записка для договора, договоров и дополнительных документов к договору, может любой участник маршрута, имеющий статус "Текущий"; -->
<!-- - **Разрешено "горячее редактирование" без отзыва** – участник, обладающий специальной ролью, может в любой момент времени (при любом статусе в маршруте) откорректировать маршрут документа; -->
<!-- - **Постановка на контроль после отправки** – после отправки документа далее по маршруту в разделе "Контроль" окна "Документооборот" отслеживается маршрут обработанного документа; -->

### Вкладка "Допустимые статусы по подтипам"

На этой вкладке отображаются [допустимые статусы по подтипам документов](../Подтипы документов/#вкладка_настройки). Если для данного типа документов отсутствуют статусы по подтипам, то вкладка автоматически скрывается.

![alt text](media/image.png)

### Вкладка "Сервисы документооборота"

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

<!-- ![Вкладка](media/serviceDoc.png) -->

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

![Рисунок 7 Раздел "Документооборот"](./media/docflow.png)

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

![Рисунок 8 До включения опции](./media/beforeUseMechanism.png)

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

![Рисунок 9 После включения опции](./media/afterUseMechanism.png)

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

![Рисунок 10 После включения опции](./media/afterShowByDefault.png)

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

![Рисунок 11 После задания итераций](./media/afterIterByDefault.png)

### Вкладка "Поисковая система"

На этой вкладке происходит подключение документов определенного типа к системе контекстного поиска документов. Более подробно про взаимодействие пользователей с контекстным поиском можно прочесть в разделе [Контекстный поиск](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/Контекстный поиск/).

Для идентификации подключаемого документа поисковой системой в настроечном документе ему необходимо присвоить тип, указать наименование и ключ формы. Дальнейшая настройка производится на закладке "Поисковая система". Здесь и далее на примере документа "Входящее письмо".

### Вкладка "Правила наименования" 

В данной вкладке присутствует поле "Правило для заголовка вкладки документа". Данное поле работает аналогично настройке наименования заголовка в [Конструкторе документа](https://ecm-administrator-manuals.readthedocs.io/ru/latest/Admin%20manuals/%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%BE%D1%80%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2/#%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0_%D1%81%D1%84%D0%BE%D1%80%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D0%BD%D0%B0%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%B8%D0%B7_%D1%80%D0%B5%D0%BA%D0%B2%D0%B8%D0%B7%D0%B8%D1%82%D0%BE%D0%B2).  
Наименование задается как текстовым наименованием так и служебными наименованиями.

![Рисунок](./media/nastr_doc-1.png)  


### Настройка значений по умолчанию и обязательность

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

![Рисунок](./media/setting_values.png)  

В таблице имеются 3 колонки:  
* **_Описание_** - данная колонка предназначена для описания действия данной настройки.
* **_При значениях_** - при открытии данной колонки, появляется дополнительное окно с табличиной формой. Предназначено для обозначения условия необходимого поля документа.
* **_Присвоить/Обязательные значения_** - указывается действие, которое должно выполниться при соблюдении условия

Таким образом, система автоматически проверяет условия и применяет заданные правила, что упрощает и стандартизирует работу с документами. Графическое представление структуры таблицы и интерфейса редактирования показано на рисунках ниже. 

Столбец **_При значениях_**:
![Рисунок](./media/condition.png)

Столбец **_Присвоить/Обязательные значения_**:
![Рисунок](./media/examination.png)





<!-- ![Рисунок 12 Итоговый вариант заполнения вкладки](./media/FTSTabFilled.png) -->

<!-- #### Настройка полнотекстовых индексов

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

![Рисунок 13 Заполнение IndexedFields](./media/IndexedFieldsFilled.png)

После этого необходимо сохранить документ и в базе данных (БД) вручную запустить на исполнение процедуру *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
```

![Рисунок 14 Пример результата выполнения скрипта](./media/scriptres1.png)

Поэтому системе необходим специальный скрипт, который связал бы результат поиска с документами. Он вводится в поле ```SelectQuery``` следующим образом:

```sql
select [KEY] = VCode, DocCode = VCode, DocType = TypeName from dbo.DocflowDocument
```

![Рисунок 15 Заполнение SelectQuery](./media/SelectQueryFilled.png)

Скрипт должен возвращать три ```NOT NULL```-поля:

- ```KEY``` – ключ для связки с выборкой;
- ```DocCode``` – код документа;
- ```DocType``` – тип документа.

В примере рассматривается случай, когда тип документа хранится в специально выделенном для этого поле ```TypeName``` таблицы. Если такого поля нет (т.е. на таблице построен только один документ) тип в свойство ```DocType``` необходимо передать константой

```sql
select [KEY] = VCode, DocCode = VCode, DocType = 'TestDoc' from dbo.TestDoc
```

Сама связка внутри системы выглядит примерно так:

![Рисунок 16 Пример результата выполнения скрипта](./media/scriptres2.png)

#### Скрипт на выборку результирующего набора данных

Задается в правой части настроечного документа. Осуществляет сбор результатов поиска, дополняя ее необходимыми свойствами для отображения на форме и применяя к ней заданные аналитические фильтры. Также на него возлагается отсечка документов, удовлетворяющих заданным критериям поиска, но на которые запрашивающий пользователь не имеет прав просмотра. Скрипт должен иметь *строго определенную структуру*, возвращая шесть полей в следующем порядке:

* ```DocCode``` – код документа;
* ```DocType``` – тип документа;
* ```DocName``` – наименование документа;
* ```DocTheme``` – тема документа;
* ```DocDefinition``` – описание документа;
* ```CanSee``` – флаг, отвечающий за возможность отображения данного документа на форме.

![Рисунок 17 Пример результата выполнения поиска](./media/searchResStructure.png)

Пример типового скрипта:

```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
```

![Рисунок 18 Расположение скрипта](./media/scriptExample.png)

Особенности написания:

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

#### Завершение настройки -->

<!--* Опции ```FTS2``` и ```Итоги``` позволяют включить документ в поиск в аналитической форме "Архив вложенных документов".
<!-- * Указать значение свойства ```typeNameProperty``` модели документа (если есть). Оно будет использоваться для фильтрации документов, если при вызове поискового запроса был назначен аналитический фильтр по разделам (типам документов).
* Указать значение свойства ```dateProperty``` модели документа (если есть). Оно будет использоваться для фильтрации документов, если при вызове поискового запроса был назначен аналитический фильтр по расчетному периоду.
* Аналогично с остальными свойствами.

Осталось поставить галочку в поле "Настроен" и сохранить документ.

![Рисунок 19 Пример заполнения полей](./media/lastFieldsFilled.png) -->

<!-- #### Дополнительная аналитика в критериях поиска

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

Для поиска по ИНН необходимо, чтобы контекстный поиск искал словоформы в подчиненных базовой таблицах. Реализуется введением в настройку документа обработки скрипта связки справочной таблицы с документом. На практике это выглядит так:

![Рисунок 20 Вторая строка с контрагентом](./media/FTSContractorAdded.png)

Т.е. в настройку добавляется строка для обработки таблицы ```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```:

![Рисунок 21 Скрипт и поле Контрагент](./media/lastFieldsFilledWithContractor.png)

### Набор возможных документов и их основных полей { #таблица }

| Тип документа | Форма | Наименование документа | Таблица |
| --------------|-------|------------------------|-------- |
| 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 |  -->

<!-- ### Вкладка "Статические поля"

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

Данные настройки работают по аналогии с дополнительными атрибутами:

- **id контрола** - в этом поле указывается id необходимого поля 
- **Поле в таблице** - указывается поле которой требуется задать настройки 
- **Тип** - задается тип необходимого поля 
- **Заголовок** - задается значение для настройки, например количество дней по умолчанию
- **Видимость** - булевое значение для отображения поля в документе
- **Обязательность** - настройка с галочкой для обязательного заполнения 
- **Текст** - текстовое значение для типов атрибута "Строка"
- **Код/число** - числовое значение для настройки
- **Флаг** - булевое значение для типов атрибута "Логическое"
- **Вычисление значения лукапа** - всплывающее окно в котором возможно указать условие по вычислению данных для выпадающего списка в документе. Возможно указать вычисление в виде SQL запроса либо JSON. -->

<!-- ### Вкладка "Копирование вложений"

Вкладка _"Копирование вложений"_ необходима для того чтобы вложение в документе при отправке по маршруту автоматически дублировалась в карточку контрагента.  
Пример скрипта:

![Рисунок](media/nastroyka-documents-2.png)  -->
