Перейти к основному содержимому

Конструктор заявок

Конструктор заявок — визуальный инструмент администратора для создания и редактирования форм типов заявок в Личном Кабинете Сотрудника (ЛКС). Он позволяет добавлять и настраивать поля формы без ручного редактирования JSON.

:::info Где находится Администратор → Конструктор заявок в боковом меню ЛКС. :::

Список типов заявок

После перехода в раздел открывается список всех типов заявок, сгруппированных по категориям.

Список типов заявок

Для каждого типа заявки отображается:

  • Наименование и краткое название
  • Алиас — технический идентификатор (если задан)
  • Отображать — флаг видимости заявки в списке ЛКС

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

Нажмите кнопку «Редактировать» рядом с нужным типом, чтобы открыть редактор.


Интерфейс редактора

Редактор состоит из трёх вкладок:

ВкладкаНазначение
ОсновноеНастройки типа заявки: название, иконка, видимость, доступность
ФормаВизуальный конструктор полей формы
Сопоставление полейСвязь полей формы с полями бэкенда (1С ЗУП)

В правой части всегда доступен ИИ-Ассистент (если включён в настройках), который помогает автоматически генерировать и изменять схему формы по описанию на естественном языке.

В шапке редактора:

  • Кнопки Отменить/Повторить (undo/redo) историю изменений
  • Кнопка «ИИ-Ассистент» — скрыть/показать панель чата
  • Кнопка «Сохранить» — активна только при наличии изменений
  • Кнопка — закрыть без сохранения

Вкладка «Основное»

Вкладка Основное

Основные настройки

ПолеОписание
НаименованиеКраткое название типа заявки (отображается в ЛКС)
Представление полноеПолное наименование для заголовка формы
ИконкаКод иконки из библиотеки PrimeNG Icons, например pi-file-edit. Вводится или выбирается через пикер
Отображать в списке выбораТип заявки будет виден сотруднику в списке заявок
Быстрый доступТип отображается в блоке быстрого доступа на главной

Доступность заявки

Определяет, кому доступна заявка:

  • Заявитель — сотрудник может подать заявку на себя
  • Другие сотрудники — руководитель может создать заявку в отношении другого сотрудника
примечание

Настройки доступности также влияют на раздел «Сопоставление полей»: в зависимости от выбранных флагов в сопоставлении появятся соответствующие опции привязки.

ИИ-Ассистент

  • Включить создание заявки через ИИ-Ассистента — разрешает создавать заявки данного типа через чат ИИ в ЛКС
  • Дополнительная информация для ИИ — текстовое описание специфики заявки, которое помогает ИИ задавать правильные уточняющие вопросы

Вкладка «Форма»

Вкладка «Форма» — основное рабочее пространство конструктора.

Вкладка Форма

Она состоит из трёх зон:

  1. Доступные поля (левая панель) — список добавленных полей и кнопки управления
  2. Предпросмотр формы (центр) — live-отображение того, как форма выглядит для сотрудника
  3. ИИ-Ассистент (правая панель, если включён)

Управление списком полей

В левой панели отображается список всех полей текущей формы. Каждое поле показывает:

  • Название (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
  • Массовых изменений
warning

Изменения в 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.

Источники данных для списка:

  1. Ручной ввод (optionList) — добавление вариантов вручную. Для каждого варианта задаётся:

    • value — техническое значение (отправляется на сервер)
    • title — отображаемое название
    • Можно перетаскивать варианты для изменения порядка
    • Предустановленные наборы: «Да/Нет», «Приоритет», «Статус»
  2. API-запрос (optionListRequestAlias) — строковый алиас для получения вариантов через эндпоинт:

    GET /wa_issueTypes/optionList/<alias>
  3. Зависимый список (optionListRequestParams) — список вариантов зависит от значения другого поля:

    • name — имя параметра в запросе
    • controlformControlName поля, значение которого передаётся как параметр

Вкладка «Валидация»

Настройки поля - Валидация

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

Базовые правила

ПравилоОписание
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 будет доступно для КЭДО-подписания

Настройка доступности полей (при нескольких режимах заявки)

Если в настройках типа заявки включены оба режима («Заявитель» и «Другие сотрудники»), для каждого поля появляется возможность указать:

  • Заявитель — поле доступно при оформлении на себя
  • Является полем сотрудник (для режима Заявитель) — поле содержит данные о сотруднике-заявителе
  • Другие сотрудники — поле доступно при оформлении на другого сотрудника
  • Является полем сотрудник (для режима Другие сотрудники) — поле содержит данные о сотруднике, в отношении которого создаётся заявка

Стандартные поля бэкенда

Ниже приведены часто используемые имена полей:

Поле бэкендаОписание
userIDID пользователя (физического лица)
EmployeeIDID сотрудника
issueTypeIDID типа заявки
dateBeginДата начала
dateEndДата окончания
messageПроизвольный комментарий / причина
vacationTypeIDID вида отпуска
stateCityСтрана/город
purposeЦель поездки

ИИ-Ассистент

Панель ИИ-Ассистента доступна на всех вкладках редактора (если включена функция в Основном).

Используйте её для быстрого изменения формы с помощью запросов на естественном языке:

  • «Добавь поле для загрузки файла»
  • «Сделай поле email обязательным»
  • «Добавь валидацию для телефона»

ИИ обновляет схему формы автоматически. Результат отображается в конструкторе и его можно отменить кнопками undo/redo.


Что конструктор не покрывает: настройки на бэкенде

Ряд параметров пока недоступен в визуальном конструкторе — их нужно задавать через JSON-редактор (кнопка <>) или напрямую в справочнике «Типы заявок» в 1С ЗУП.

Параметры полей, доступные только через JSON

Параметр JSONОписание
gridClassesCSS-классы Bootstrap Grid для ширины поля (["col-md-6"], ["hidden"])
startDateControl / endDateControlСвязь полей диапазона дат (для datepicker-range-start/end)
startDateMathDay / endDateMathDayСмещение минимальной/максимальной допустимой даты в днях или объект {type: 'month', count: 1}
minReferenceDateControl / maxReferenceDateControlformControlName поля-точки отсчёта для 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: поля начала и конца периода
initCopyFromformControlName поля, из которого копируется начальное значение
requiredWorkdayБулево: дата должна быть рабочим днём

Настройки в 1С ЗУП (вне конструктора)

Следующие настройки выполняются в справочнике «Типы заявок» в 1С ЗУП и недоступны через конструктор ЛКС:

НастройкаГде
Этапы согласованияВкладка «Этапы» в карточке типа заявки
Печатные формыВкладка «Этапы» → «Печатные формы»
Шаблоны уведомленийВкладка «Шаблоны сообщений»
Создание документовВкладка «Документы» — автоматическое создание документов ЗУП
Отображение в разделахВкладка «Отображение типов заявок в разделах»
Файлы для скачиванияВкладка «Присоединённые файлы»
Настройки optionschangeStrategy, staticInfo, loadFileType, markRequired, и др. — через поле «Настройки (options)» в 1С

Подробнее о настройках в 1С: Заполнение карточки «Тип заявки»


Порядок настройки нового типа заявки

  1. Откройте Конструктор заявок → нажмите «Редактировать» у нужного типа
  2. На вкладке «Основное» заполните название, иконку, доступность
  3. На вкладке «Форма» добавьте и настройте поля:
    • Нажмите «Добавить поле в начало/конец»
    • Выберите тип поля
    • Заполните настройки (имя, метка, валидации, зависимости)
    • Используйте предпросмотр для проверки
  4. На вкладке «Сопоставление полей» привяжите поля формы к полям бэкенда
  5. Нажмите «Сохранить»
  6. При необходимости — откройте карточку типа в 1С ЗУП для настройки этапов, уведомлений и документов