Конструктор заявок
Конструктор заявок — визуальный инструмент администратора для создания и редактирования форм типов заявок в Личном Кабинете Сотрудника (ЛКС). Он позволяет добавлять и настраивать поля формы без ручного редактирования JSON.
:::info Где находится Администратор → Конструктор заявок в боковом меню ЛКС. :::
Список типов заявок
После перехода в раздел открывается список всех типов заявок, сгруппированных по категориям.

Для каждого типа заявки отображается:
- Наименование и краткое название
- Алиас — технический идентификатор (если задан)
- Отображать — флаг видимости заявки в списке ЛКС
Для поиска нужного типа используйте строку поиска в верхней части — поиск работает по названию, коду и алиасу.
Нажмите кнопку «Редактировать» рядом с нужным типом, чтобы открыть редактор.
Интерфейс редактора
Редактор состоит из трёх вкладок:
| Вкладка | Назначение |
|---|---|
| Основное | Настройки типа заявки: название, иконка, видимость, доступность |
| Форма | Визуальный конструктор полей формы |
| Сопоставление полей | Связь полей формы с полями бэкенда (1С ЗУП) |
В правой части всегда доступен ИИ-Ассистент (если включён в настройках), который помогает автоматически генерировать и изменять схему формы по описанию на естественном языке.
В шапке редактора:
- Кнопки Отменить/Повторить (undo/redo) историю изменений
- Кнопка «ИИ-Ассистент» — скрыть/показать панель чата
- Кнопка «Сохранить» — активна только при наличии изменений
- Кнопка ✕ — закрыть без сохранения
Вкладка «Основное»

Основные настройки
| Поле | Описание |
|---|---|
| Наименование | Краткое название типа заявки (отображается в ЛКС) |
| Представление полное | Полное наименование для заголовка формы |
| Иконка | Код иконки из библиотеки PrimeNG Icons, например pi-file-edit. Вводится или выбирается через пикер |
| Отображать в списке выбора | Тип заявки будет виден сотруднику в списке заявок |
| Быстрый доступ | Тип отображается в блоке быстрого доступа на главной |
Доступность заявки
Определяет, кому доступна заявка:
- Заявитель — сотрудник может подать заявку на себя
- Другие сотрудники — руководитель может создать заявку в отношении другого сотрудника
Настройки доступности также влияют на раздел «Сопоставление полей»: в зависимости от выбранных флагов в сопоставлении появятся соответствующие опции привязки.
ИИ-Ассистент
- Включить создание заявки через ИИ-Ассистента — разрешает создавать заявки данного типа через чат ИИ в ЛКС
- Дополнительная информация для ИИ — текстовое описание специфики заявки, которое помогает ИИ задавать правильные уточняющие вопросы
Вкладка «Форма»
Вкладка «Форма» — основное рабочее пространство конструктора.

Она состоит из трёх зон:
- Доступные поля (левая панель) — список добавленных полей и кнопки управления
- Предпросмотр формы (центр) — live-отображение того, как форма выглядит для сотрудника
- ИИ-Ассистент (правая панель, если включён)
Управление списком полей
В левой панели отображается список всех полей текущей формы. Каждое поле показывает:
- Название (label) или formControlName, если label не задан
- Тип поля — цветной бейдж с техническим типом
Для каждого поля доступны действия:
- ✏️ Редактировать — открыть панель настроек поля
- 🗑️ Удалить — удалить поле из формы
- ↕️ Перетащить — изменить порядок полей (drag & drop за иконку
≡слева)
Добавление полей
Нажмите «Добавить поле в начало» или «Добавить поле в конец» — откроется всплывающая панель выбора типа поля.

Доступные типы полей разбиты на группы:
Группа «Основное»
| Тип | Описание |
|---|---|
text | Текстовое поле однострочного ввода |
textarea | Многострочное поле ввода |
checkbox | Чекбокс (да/нет) |
arr-smart | Группа произвольных полей — повторяющиеся строки (таблица) |
password | Поле ввода пароля (скрытый ввод) |
file | Загрузка одного файла |
file-multi | Загрузка нескольких файлов |
radio | Радио-кнопки |
computed-static | Вычисляемый статичный текст (подставляет данные из других полей) |
static | Статичный текст или HTML (информационный блок) |
Группа «Дата и время»
| Тип | Описание |
|---|---|
datepicker | Выбор даты |
datepicker-range-start | Дата начала диапазона (пара с datepicker-range-end) |
datepicker-range-end | Дата окончания диапазона |
timepicker | Выбор времени |
datepicker-month | Выбор месяца |
datepicker-year | Выбор года |
Группа «Списки»
| Тип | Описание |
|---|---|
select-employee | Выпадающий список с поиском сотрудника |
select | Выпадающий список |
select-multi | Выпадающий список с множественным выбором |
select-filter | Выпадающий список с фильтрацией и множественным выбором |
После выбора типа сразу открывается панель настроек поля. Поле добавляется в форму только после нажатия «Сохранить» в этой панели.
Предпросмотр формы
Центральная панель отображает форму в режиме реального времени. Доступны:
- Переключатель 🖥 Desktop / 📱 Mobile — посмотреть как форма выглядит на разных устройствах
- Кнопка Инспектор — при наведении на поле в предпросмотре подсвечивает его в списке слева
JSON-редактор
Кнопка <> (в заголовке левой панели) открывает диалог прямого редактирования JSON-шаблона формы. Полезно для:
- Копирования конфигурации между типами заявок
- Вставки готовой схемы из Confluence
- Массовых изменений
Изменения в JSON-редакторе применяются к форме целиком. Некорректный JSON будет отклонён с ошибкой.
Настройки поля
При нажатии ✏️ Редактировать (или при добавлении нового поля) открывается панель настроек справа.
Панель состоит из четырёх разделов-вкладок:
Вкладка «Основное»

Отображение
| Параметр | Описание |
|---|---|
Имя поля (formControlName) | Уникальный технический идентификатор поля в форме. Используется в сопоставлении и зависимостях. Обязателен для всех полей, кроме static |
Название поля (label) | Текст, который видит сотрудник над полем |
Подсказка в поле (placeholder) | Серый текст внутри пустого поля ввода |
Помощь под полем (hintMessage) | Поясняющий текст под полем |
Начальное значение (value) | Значение, установленное при загрузке формы. Поддерживает подстановку статических данных: staticd['id поля']?.value |
Поведение
| Параметр | Описание |
|---|---|
Заблокировать поле (disabled) | Поле отображается, но недоступно для ввода |
Редактируемое (edited) | Поле разрешено для изменения (если false — отображается как текст) |
Автовыбор первого (autoSelectFirst) | Для списков: автоматически выбирает первый элемент при скрытом поле |
Множественный выбор (selectMultiple) | Для select: включает множественный выбор |
Иерархический список (selectParentTree) | Для select: показывает элементы как дерево по parentID |
Блокировать кроме первого (onlyFirst) | Для arr-smart: блокирует поле во всех строках, кроме первой |
Форматирование (для дат)
| Параметр | Описание |
|---|---|
Формат даты (format) | dd.mm.yyyy, mm.yyyy, yyyy |
Маска ввода (mask) | Произвольная маска (например (999) 999-99-99 для телефона) |
Настройки файлов
| Параметр | Описание |
|---|---|
Допустимые типы файлов (fileTypesAccept) | Расширения через запятую: .pdf, .docx, .xlsx |
Вкладка «Опции»

Раздел активен для типов полей со списком: select, select-multi, select-filter, radio.
Источники данных для списка:
-
Ручной ввод (
optionList) — добавление вариантов вручную. Для каждого варианта задаётся:value— техническое значение (отправляется на сервер)title— отображаемое название- Можно перетаскивать варианты для изменения порядка
- Предустановленные наборы: «Да/Нет», «Приоритет», «Статус»
-
API-запрос (
optionListRequestAlias) — строковый алиас для получения вариантов через эндпоинт:GET /wa_issueTypes/optionList/<alias> -
Зависимый список (
optionListRequestParams) — список вариантов зависит от значения другого поля:name— имя параметра в запросеcontrol—formControlNameполя, значение которого передаётся как параметр
Вкладка «Валидация»

Нажмите на карточку нужного правила, чтобы добавить его к полю. Для каждого добавленного правила можно указать сообщение об ошибке.
Базовые правила
| Правило | Описание |
|---|---|
required | Обязательное поле — поле должно быть заполнено |
dynamic-required | Обязательное только если поле видимо (для динамически скрытых полей) |
email | Проверка формата email |
minLength / maxLength | Ограничение длины строки |
min / max | Числовые ограничения (или ограничения для дат) |
pattern | Проверка по регулярному выражению |
needToBeChanged | Значение должно быть изменено по сравнению с начальным |
notEqual | Значение не должно совпадать со значением другого поля (formControlName) |
Специальные правила
| Правило | Описание |
|---|---|
date | Ограничение выбора дат: "workday" — только рабочие, "dayoff" — только выходные, [1,2,3,4,5] — конкретные дни недели |
syncWorkSchedule | Учёт индивидуального рабочего графика: "workday" / "dayoff" |
filesType | Допустимые типы файлов для поля загрузки: .pdf, .docx |
periodsGap | Для arr-smart с диапазонами дат: контроль разрыва между периодами |
Вкладка «Зависимости»

Здесь настраиваются связи между полями — то, как значение текущего поля влияет на другие поля формы.
Для каждой зависимости задаётся:
- Название поля (control) —
formControlNameзависимого поля - Один из режимов:
- Клонировать значение — зависимое поле всегда принимает значение текущего поля
- Условие отображения — JavaScript-выражение, при истинности которого зависимое поле показывается
Синтаксис условий
| Синтаксис | Значение |
|---|---|
$V | Значение текущего поля |
$V === 'да' | Проверка равенства |
$V !== '' | Проверка на непустое значение |
$V > 18 | Числовое сравнение |
m($V).day() > 0 && m($V).day() < 6 | Только будние дни (по дате в поле) |
!== / >= / <= / && / || / ! | Стандартные логические операторы |
:::important Важно
Зависимые поля, которые должны скрываться при первой загрузке, добавьте через JSON-редактор с "gridClasses": ["hidden"] — конструктор пока не поддерживает настройку gridClasses визуально.
:::
Обязательные поля (requiredToFill)
В этом же разделе можно настроить блокировку поля: добавьте formControlName полей, которые должны быть заполнены, прежде чем текущее поле станет доступным.
Вкладка «Сопоставление полей»

Этот раздел связывает поля формы ЛКС с полями данных в бэкенде (1С ЗУП / EmplDocs API).
Левая панель — Поля формы: список всех formControlName из формы с их типами.
Правая панель — Сопоставления: настройка для выбранного поля.
Нажмите на поле слева, чтобы настроить его сопоставление.

Для каждого поля можно задать:
| Параметр | Описание |
|---|---|
| Имя | Техническое имя поля (обычно совпадает с formControlName) |
| Поле на бэкенде | Название поля в API EmplDocs (например dateBegin, EmployeeID, message) |
| Контроль уникальности | Значение поля проверяется на уникальность перед отправкой |
| Файл для подписания | Поле типа file будет доступно для КЭДО-подписания |
Настройка доступности полей (при нескольких режимах заявки)
Если в настройках типа заявки включены оба режима («Заявитель» и «Другие сотрудники»), для каждого поля появляется возможность указать:
- Заявитель — поле доступно при оформлении на себя
- Является полем сотрудник (для режима Заявитель) — поле содержит данные о сотруднике-заявителе
- Другие сотрудники — поле доступно при оформлении на другого сотрудника
- Является полем сотрудник (для режима Другие сотрудники) — поле содержит данные о сотруднике, в отношении которого создаётся заявка
Стандартные поля бэкенда
Ниже приведены часто используемые имена полей:
| Поле бэкенда | Описание |
|---|---|
userID | ID пользователя (физического лица) |
EmployeeID | ID сотрудника |
issueTypeID | ID типа заявки |
dateBegin | Дата начала |
dateEnd | Дата окончания |
message | Произвольный комментарий / причина |
vacationTypeID | ID вида отпуска |
stateCity | Страна/город |
purpose | Цель поездки |
ИИ-Ассистент
Панель ИИ-Ассистента доступна на всех вкладках редактора (если включена функция в Основном).
Используйте её для быстрого изменения формы с помощью запросов на естественном языке:
- «Добавь поле для загрузки файла»
- «Сделай поле email обязательным»
- «Добавь валидацию для телефона»
ИИ обновляет схему формы автоматически. Результат отображается в конструкторе и его можно отменить кнопками undo/redo.
Что конструктор не покрывает: настройки на бэкенде
Ряд параметров пока недоступен в визуальном конструкторе — их нужно задавать через JSON-редактор (кнопка <>) или напрямую в справочнике «Типы заявок» в 1С ЗУП.
Параметры полей, доступные только через JSON
| Параметр JSON | Описание |
|---|---|
gridClasses | CSS-классы Bootstrap Grid для ширины поля (["col-md-6"], ["hidden"]) |
startDateControl / endDateControl | Связь полей диапазона дат (для datepicker-range-start/end) |
startDateMathDay / endDateMathDay | Смещение минимальной/максимальной допустимой даты в днях или объект {type: 'month', count: 1} |
minReferenceDateControl / maxReferenceDateControl | formControlName поля-точки отсчёта для startDateMathDay/endDateMathDay |
minDateFromMaxOfControls | Массив formControlName — минимальная дата вычисляется как максимум из этих полей |
minDateOffset | Смещение от вычисленной максимальной даты (по умолчанию 1 день) |
fixedDateFromControls | Фиксирует дату (min=max=вычисленная), пользователь не может выбрать другую |
autoSetValueFromControls | Автоматически устанавливает значение при изменении связанных полей |
availableDays | Массив конкретных дат или чисел месяца, доступных для выбора |
dateHighlightType | Выделение выходных в календаре: "common", "schedule", "none" |
arrSmartList | Вложенные поля внутри arr-smart — конструктором создаются, но редактировать вложенную структуру нужно через JSON |
arrSmartOpened | Количество строк arr-smart, открытых по умолчанию |
computedStaticDateControls | Для computed-static: поля начала и конца периода |
initCopyFrom | formControlName поля, из которого копируется начальное значение |
requiredWorkday | Булево: дата должна быть рабочим днём |
Настройки в 1С ЗУП (вне конструктора)
Следующие настройки выполняются в справочнике «Типы заявок» в 1С ЗУП и недоступны через конструктор ЛКС:
| Настройка | Где |
|---|---|
| Этапы согласования | Вкладка «Этапы» в карточке типа заявки |
| Печатные формы | Вкладка «Этапы» → «Печатные формы» |
| Шаблоны уведомлений | Вкладка «Шаблоны сообщений» |
| Создание документов | Вкладка «Документы» — автоматическое создание документов ЗУП |
| Отображение в разделах | Вкладка «Отображение типов заявок в разделах» |
| Файлы для скачивания | Вкладка «Присоединённые файлы» |
| Настройки options | changeStrategy, staticInfo, loadFileType, markRequired, и др. — через поле «Настройки (options)» в 1С |
Подробнее о настройках в 1С: Заполнение карточки «Тип заявки»
Порядок настройки нового типа заявки
- Откройте Конструктор заявок → нажмите «Редактировать» у нужного типа
- На вкладке «Основное» заполните название, иконку, доступность
- На вкладке «Форма» добавьте и настройте поля:
- Нажмите «Добавить поле в начало/конец»
- Выберите тип поля
- Заполните настройки (имя, метка, валидации, зависимости)
- Используйте предпросмотр для проверки
- На вкладке «Сопоставление полей» привяжите поля формы к полям бэкенда
- Нажмите «Сохранить»
- При необходимости — откройте карточку типа в 1С ЗУП для настройки этапов, уведомлений и документов