Перейти к содержанию

Справочник типов ДП

Тип ДП задаётся при создании и не может быть изменён после создания. Если тип выбран неверно — удалить ДП и создать заново (удаление невозможно, если ДП используется в задачах).

Полный перечень типов

Все доступные типы ДП, имя типа в базе данных и место хранения значения:

Тип ДП (рус.) ExtParamType (БД) Таблица значений Поле значения Денорм. тип
Текст Text ExtParamValues ExtParamValue, ExtParamValueForSort varchar/nvarchar
Большой текст с форматированием TextArea ExtParamValues ExtParamValue
Большой текст без форматирования TextareaWOFormat ExtParamValues ExtParamValue
Число NumericValue ExtParamValues DecimalValue decimal(18,N)
Деньги Money ExtParamValues MoneyValue money
Дата Date ExtParamValues DateTimeValue datetime
Дата и время Datetime ExtParamValues DateTimeValue datetime
Флажок (чекбокс) Checkbox ExtParamValues BoolValue / ExtParamValueForSort bit
Выпадающий список Select ExtParamValues ExtParamValue, DataSourceItemID varchar/nvarchar(1000)
Выпадающий список с редактированием Combobox ExtParamValues ExtParamValue, DataSourceItemID varchar/nvarchar(1000)
Дерево Tree ExtParamValues ExtParamValue, DataSourceItemID varchar/nvarchar(1000)
Lookup (поле подстановки) LookUpField ExtParamValueSelectedTasks SelectedTaskID int
Multilookup (выбор нескольких задач) MultiSlctSubcatTasks ExtParamValueSelectedTasks SelectedTaskID
Выбор пользователей SelectUsers ExtParamSelectUsersValues + ...Groups + ...OrgUnits UserID / GroupID / OrgUnitID
Таблица Table ExtParamTableValues Value (RowID, ColumnID) varbinary(max)
Файл File FileStorageFileToExtParamLinks FileId
Нумератор Numerator ExtParamValues ExtParamValue
URL (ссылка) URL ExtParamValues ExtParamValue
Адрес Address ExtParamValues + Address AddressId int
Адресаты email ExtParamAddressees ExtParamValues ExtParamValue
Сквозной Through — (вычисляется)

Типы ДП: детальное описание


ДП «Текст» (Text)

Максимальная длина: 8000 символов.

Хранение в БД:

  • ExtParamValues.ExtParamValue — основное значение.
  • ExtParamValues.ExtParamValueForSort — для сортировки.
  • ExtParams.MaxLength (INT, nullable) — ограничение длины на уровне определения ДП.

«Основные настройки» ДП «Текст»: отображение как телефон, локализуемость, подсказка при вводе, настройка маски, регулярное выражение

Настройки:

  • Маска ввода — только в ДП «Текст» (синтаксис — формат библиотеки imask, шаблон задаётся в textSettings.mask (хранится в TextEpOptions.Mask), см. admin.md § 9). Дополнительные параметры маски:
    • lazy: true — символы-заполнители проявляются по мере ввода, а не отображаются сразу;
    • saveUnmaskedValue: true либо extParamSettings: { saveUnmaskedValue: true } — в ExtParamValues.ExtParamValue сохраняется значение без символов маски (например, для маски +{7}(000)000-00-00 и ввода +7(999)123-45-67 в БД попадёт +79991234567); в UI отображается с маской. Без saveUnmaskedValue сохраняется полное значение с символами маски. Оба формата (корневой и через extParamSettings) поддерживаются с 2.268.360 — до этой версии работал только корневой saveUnmaskedValue, формат через extParamSettings игнорировался.
    • С 2.268.360 значение в поле после потери фокуса (Tab, клик вне поля) отображается без задержки — раньше на 300 мс показывалось пустое поле, пока инициализировалась маска, что выглядело как пропажа значения. Само значение в БД сохранялось всегда корректно — баг был чисто визуальным.
  • Регулярное выражение (ExtParams.RegExp) — валидация введённого значения.
  • Сообщение об ошибке регулярного выражения (ExtParams.RegExpErrorMessage).
  • При одновременно заданных mask и regExp приоритет — у регулярного выражения (см. admin.md § 9).
  • С 2.268.x масковое значение в гриде корректно обновляется при последовательном переключении между задачами — до этого фикса значение из ранее открытой задачи могло «залипать» в ДП до обновления страницы. Подробности — domains/grids/known-issues.md § 6.
  • Отображать ДП «Текст» как телефон (TextEpOptions.PhoneOption, bit) — значение отображается с телефонной маской «+X (XXX) XXX-XXXX». При включении заданные регулярное выражение и маска не применяются (маска вшита). При интеграции с телефонией рядом со значением выводится кнопка быстрого вызова.
  • Локализуемый (ExtParams.Localizable, bit) — в карточке задачи у ДП появляется кнопка локализации (модальное окно для ввода значения на активных языках системы); в карточке создания задачи не отображается. Пользователь видит значение в локали своего профиля. ⚠️ Фильтрация в гриде по локализуемым текстовым ДП недоступна — фильтрующий столбец не выводится (текстовых ДП без флага не касается).
  • Подсказка при вводе (TextEpOptions.SuggestType, enum) — автодополнение по данным DaData: ФИО (FullName), Имя (Name), Фамилия (LastName), Отчество (Patronymic), Адрес (Address), Email (Email); по умолчанию None («Выключено»). Требует интеграции с сервисом DaData.

ДП «Большой текст с форматированием» (TextArea)

Описание: текст длиной свыше 1000 символов с возможностью форматирования, отключения тегов Microsoft Word и просмотра HTML-кода.

Хранение: ExtParamValues.ExtParamValue. Содержит HTML-разметку.

Ограничения: ДП типов TextArea и File/Table не индексируются при денормализации.


ДП «Большой текст без форматирования» (TextareaWOFormat)

Описание: текст длиной свыше 1000 символов без возможности форматирования.

Хранение: ExtParamValues.ExtParamValue. Без HTML.


ДП «Число» (NumericValue)

Хранение: ExtParamValues.DecimalValue. Денормализация: decimal(18, N), где N = Scale из ExtParamNumberSettings (длина дробной части; по умолчанию 0).

Диапазон: от -9 999 999 999 до 9 999 999 999. При вводе значения за границами — автоматическая замена на граничное значение без предупреждения.

«Основные настройки» ДП «Число»: тип отображения, длина дробной части, минимальное и максимальное значения, шаг, флаги «Использовать 0 для пустых значений» и «Разделитель групп разрядов»

Режимы отображения:

  • Текстовое поле (по умолчанию).
  • Нумератор — требуется указать min, max и шаг.
  • Слайдер — визуальная шкала с шагом. Варианты цвета (SliderColor): без цвета, интенсивность цвета, температура (по умолчанию).

Настройки:

  • Длина дробной части (Scale, макс. 8 знаков). Настройка не ограничивает ввод — оригинальное значение хранится без округления и видно при редактировании.
  • Минимальное / максимальное значение (MinValue / MaxValue); шаг (Step) активен только в режимах «Нумератор» и «Слайдер».
  • Использовать 0 для пустых значений (UseZeroAsEmptyValue; по умолчанию null).

При включённой настройке пустое значение (null) отображается в табличном представлении как 0. Фильтрация по значению 0 (равно, меньше или равно, больше или равно, содержит) одновременно находит и задачи с реальным значением 0, и задачи с пустым значением. Исключение значения 0 (не равно, не содержит) исключает оба варианта.

  • Разделитель групп разрядов (UseGroupSeparator; пробел).
  • Отображать с дробной частью / без (IsWithFractionalPart).

ДП «Деньги» (Money)

Хранение: ExtParamValues.MoneyValue. Денормализация: money.

Диапазон: от -922 337 203 685 477 до 922 337 203 685 477. Автоматическая замена на граничное при превышении, без предупреждения.

«Основные настройки» ДП «Деньги»: длина дробной части, минимальное и максимальное значения, шаг, флаги «Использовать 0 для пустых значений», «Разделитель групп разрядов», «Отображать с дробной частью»

Настройки (вкладка «Основные настройки»; хранятся в ExtParamNumberSettings — общей с «Число», Type = Money):

  • Длина дробной части (Scale, макс. 8). По умолчанию 2.
  • Минимальное / максимальное значение (MinValue / MaxValue).
  • Шаг (Step) — не работает для данного типа.
  • Использовать 0 для пустых значений (UseZeroAsEmptyValue).

При включённой настройке пустое значение (null) отображается в табличном представлении как 0. Фильтрация по значению 0 (равно, меньше или равно, больше или равно, содержит) одновременно находит и задачи с реальным значением 0, и задачи с пустым значением. Исключение значения 0 (не равно, не содержит) исключает оба варианта.

  • Разделитель групп разрядов (UseGroupSeparator).
  • Отображать с дробной частью / без (IsWithFractionalPart).

Сохранение введённого значения происходит при следующих действиях:

  • клик вне поля;
  • нажатие Enter;
  • потеря фокуса полем;
  • нажатие Tab.

ДП «Дата» (Date)

Хранение: ExtParamValues.DateTimeValue. Денормализация: datetime.

«Основные настройки» ДП «Дата»: видимые даты (от/до) и их режимы, доступные даты (от/до) и их режимы

Настройки (таблица ExtParamDateSettings):

  • Видимые даты — диапазон отображаемых дат (VisibleDateFrom / VisibleDateTo); даты вне диапазона не отображаются.
  • Доступные даты — диапазон выбираемых дат (AvailableDateFrom / AvailableDateTo), подмножество видимых: начало ≥ начала «Видимых», конец ≤ конца «Видимых».

Валидация при ручном вводе. При ручном вводе даты в поле (а не выборе через календарь) ограничения «Доступные даты» и «Видимые даты» применяются так же, как при выборе через календарь: после снятия фокуса значение вне диапазона не применяется и не сохраняется в задачу. Ограничение «Видимые даты» теперь блокирует не только отображение в календаре, но и выбор/ввод даты вне заданного диапазона. Поведение единое для ДП «Дата» и компонента даты в ДП «Дата и время».

  • Режим каждой границы (раздельно «от» и «до» для видимых и доступных дат — VisibleFromMode / VisibleToMode / AvailableFromMode / AvailableToMode, enum DateTypeModes): фиксированная дата, относительная (Вчера/Сегодня/Завтра) или смарт-выражение (VisibleDatesSmartExpressionId / AvailableDatesSmartExpressionId).
  • При выборе относительного режима (любого, кроме «Дата») поле ввода конкретной даты очищается и блокируется.
  • Границы включительны: например, режим «Сегодня» разрешает выбрать сегодняшнюю дату и любую будущую.
  • Относительные даты определяются по часовому поясу сервера — «сегодня» единообразен для всех пользователей независимо от их часового пояса.

ДП «Дата и время» (Datetime)

Аналогично ДП «Дата» (включая ограничения «Видимые/Доступные даты» для компонента даты), но добавляет компонент времени.

Хранение: ExtParamValues.DateTimeValue. Денормализация: datetime.

Настройки времени (таблица ExtParamDateTimeSettings):

  • Формат выбора времени (TimeSelectionFormat) — «Свободный» (по умолчанию, произвольный ввод) или «Слоты» (выбор из фиксированных вариантов).
  • Диапазон (TimeRange) — для режима «Слоты»: «24 часа» или «Рабочее время».
  • Шаг (TimeStep) — для режима «Слоты»: интервал между вариантами — 5, 15 или 30 минут.

«Основные настройки» ДП «Дата и время»: формат выбора времени «Слоты», диапазон «Рабочее время», шаг «15 минут»


ДП «Флажок / Чекбокс» (Checkbox)

Допустимые значения при передаче: 1, 0, false, true, да, нет.

Хранение: ExtParamValues.BoolValue / ExtParamValueForSort. Денормализация: bit.

Стиль отображения (поле CheckboxStyle в TextEpOptions) задаётся на вкладке «Основные настройки» карточки ДП и определяет, как параметр выглядит в задаче:

«Основные настройки» ДП «Флажок»: поле «Стиль отображения»

Чекбокс — стандартный квадрат с галочкой (вид по умолчанию).

Стиль «Чекбокс»: квадрат с галочкой

Свитчер — переключатель, наглядно показывающий два состояния: «включено» / «выключено».

Стиль «Свитчер»: переключатель вкл/выкл

Радио выбор — два взаимоисключающих варианта: «Да» и «Нет».

Стиль «Радио выбор»: варианты «Да» / «Нет»


ДП «Выпадающий список» (Select)

Описание: выбор одного значения из фиксированного перечня.

Максимальная длина значения: 200 символов.

Хранение: ExtParamValues.ExtParamValue (текст) + DataSourceItemID (ID элемента). Денормализация: varchar/nvarchar(1000).

«Основные настройки» выпадающего списка: источник данных, автосортировка, опции отображения радиокнопками

Отображение. По умолчанию ДП — выпадающий список; флаг «Использовать отображение в виде радиокнопок» (ExtParamSelectSettings.PresentRadioButtons) переключает его на блок радиокнопок, а «Расположить радиокнопки в ряд» (PresentRadioButtonsInRow) выводит их горизонтально (иначе вертикально). ⚠️ В режиме радиокнопок выбор нельзя отменить — применяйте его только для обязательных ДП и задавайте значение по умолчанию. Опция «Автоматически сортировать по алфавиту» сортирует значения и имеет приоритет над колонкой сортировки.

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

  • Набор элементов — задаётся вручную в свойствах ДП на вкладке «Набор элементов».
  • Из таблицы — значения подтягиваются из таблицы БД или SQL View.

Источник «Из таблицы». Настраивается: имя таблицы; колонка значения (уникальные ID записей — пишутся в БД); колонка текста (отображается пользователю); колонка сортировки; колонка контекста текущей задачи (если непуста — список фильтруется по строкам, где в этой колонке стоит ID текущей задачи). Текстовые значения в колонке значения поддерживаются, в том числе на PostgreSQL. ⚠️ Колонки значения и текста не должны содержать пустых значений. ⚠️ Через API (в т.ч. мобильное приложение) при создании/редактировании задачи передаются все возможные значения списка — для больших таблиц это перегружает клиент; ограничивайте число записей.

Набор элементов (ExtParamOptions). Вкладка доступна, когда источник — «Набор элементов». Поля элемента: текст (OptionValue), «Выбран по умолчанию» (IsDefault — подставляется в ДП по умолчанию), локализованное значение (LocalizedOptionId — форма ввода на доступных языках системы). Кнопка «Добавить» создаёт элемент.

Вкладка «Набор элементов»: поля «Текст»/«Выбран по умолчанию» и список элементов с колонками «Имя»/«Выбран по умолчанию»/«Локализованное значение»

Клик по элементу в списке открывает его на редактирование.

Окно «Редактирование элемента»: имя и флаг «Выбран по умолчанию»

Быстрые подсказки. Для списков на основе «Набора элементов» в карточке задачи над перечнем значений показываются три последних значения, выбранных пользователем в этом ДП в любой задаче категории, — для быстрого выбора. Для списков на основе таблицы быстрые подсказки не появляются.

Быстрые подсказки в карточке задачи: три последних выбранных значения над списком


ДП «Выпадающий список с редактированием» (Combobox)

Аналогичен Select, но пользователь может ввести своё значение.

Максимальная длина: 200 символов.

Поведение фокуса при открытии (с 2.268.x). При клике на стрелку раскрытия списка фокус сразу устанавливается в поле поиска — можно начинать печатать и фильтровать значения без дополнительных действий. При клике в основное поле ввода фокус остаётся там, чтобы сохранить возможность редактирования текущего значения или ввода произвольного текста. На форме создания новой задачи автофокус на поиске не применяется.


ДП «Дерево» (Tree)

Описание: отображение древовидной структуры для выбора значения.

Хранение: ExtParamValues.ExtParamValue + DataSourceItemID. Денормализация: varchar/nvarchar(1000).

Дерево узлов. Само дерево, из которого пользователь выбирает значение, администратор строит на вкладке «Основные настройки» карточки ДП. Узлы хранятся в ExtParamTreeNodes (Text — название, ParentNodeID — родитель, OrderID — порядок).

  • Создание узла: ввести название в поле «Текст создаваемого узла» и нажать «Создать узел» — узел добавляется на верхний уровень. Для дочернего узла предварительно выделите родительский — новый узел создаётся внутри него.
  • Иерархию меняют перетаскиванием узлов мышью.
  • Кнопки справа от узла — редактирование названия и удаление.

Вкладка «Основные настройки» ДП «Дерево»: поле «Текст создаваемого узла», кнопка «Создать узел» и список узлов дерева


ДП «Lookup (поле подстановки)» (LookUpField)

Описание: выбор одной задачи из категории-источника. Единственным допустимым значением является ID существующей задачи.

Хранение: ExtParamValueSelectedTasks.SelectedTaskID. Денормализация: int.

Настройки (ключевые):

  • Источник данных: категория или сводный раздел + фильтр по статусам.
  • Смарт-фильтр (работает только в карточке уже созданной задачи).
  • Иерархический режим (отображение в виде дерева).
  • Колонка сортировки.
  • Отображать как радио кнопки (до 10 значений).
  • Быстрые подсказки (3 последних выбранных значения).
  • Отображение в задаче: текст, текст+цвет, иконка, иконка+цвет.
  • Табличный вид для выбора значений.

ДП «Multilookup (выбор нескольких задач)» (MultiSlctSubcatTasks)

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

Хранение: ExtParamValueSelectedTasks — несколько записей с одним TaskID + ExtParamID.

Схема списка задач (To-do): дополнительная таблица ExtParamValueSelectedTaskFolders (вкладки с именами).

Операции через API/SmartScript:

  • Добавить: ВСтроку(ID_задачи).
  • Удалить: '-' + ВСтроку(ID_задачи).

ДП «Выбор пользователей» (SelectUsers)

Описание: выбор пользователей, групп, элементов орг. структуры.

Хранение (три таблицы):

  • ExtParamSelectUsersValues — пользователи (UserID).
  • ExtParamSelectUsersValuesGroups — группы (GroupID).
  • ExtParamSelectUsersValuesOrgUnits — орг. единицы (OrgStructureUnitID).

Денормализация в SelectUserValue / NativeValue: только если одновременно: (1) включен «Разрешить сохранять не более одного элемента» и (2) активна только одна из настроек: пользователи, группы или орг. единицы.

Настройки:

  • Разрешить сохранять не более одного элемента.
  • Разрешить выбирать пользователей / группы / орг. единицы (независимые флаги).
  • Ограничить выбор: без ограничений, членами группы, смарт-выражением.
  • Ограничить выбор орг. единиц: без ограничений, из подразделения, смарт-выражением.
  • Ограничить выбор типами орг. структуры.
  • Фильтрация групп по типу и синхронизации с Active Directory — см. Справочник ДП «Выбор пользователя» → Фильтрация групп

Формат значения через API:

{"Users":{"Deleted":[...],"Added":[...]},"Groups":{"Deleted":[...],"Added":[...]},"OrgUnits":{"Deleted":[...],"Added":[...]}}

JS API (ep.val()):

При передаче значения через JS API (JS-вставки) используйте объектный формат без обёртки в кавычки:

ep3606.val({"users":[{"userId": 4561}],"groups":[],"orgUnits":[]})

ДП «Таблица» (Table)

Описание: ввод данных в табличном виде. При действиях с ДП «Таблица» автоматически сохраняются другие ДП на карточке задачи.

Хранение: ExtParamTableValues (RowID, ColumnID, Value). Настройки колонок: ExtParamTableSettings. Денормализация: varbinary(max).

Типы колонок: Текст, Большой текст без форматирования, Выпадающий список, Текст с маской, Деньги, Дата и время, Дата, Телефон, Lookup, Чекбокс, Число, Файл, Виртуальная, Шаблонная, Блок кнопок, Выбор пользователей.

Колонки таблицы настраиваются на вкладке «Общие настройки» в карточке ДП: для каждой колонки задаются имя, порядок, тип, режим, значение по умолчанию и смарт-выражение.

Настройка колонок ДП «Таблица»: список колонок с типами, режимами и значениями по умолчанию

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

Доступ на чтение/редактирование по колонкам: для каждой колонки в «Дополнительных настройках блока» можно настроить доступ на чтение и редактирование отдельно.

Режимы колонки: Необязательно, Обязательно (в рамках таблицы), Только для чтения, Скрытая (нет доступа из автоматизаций), Невидимая (есть доступ из автоматизаций).

Режимы отображения таблицы: Таблица, Ссылка (открытие в новой вкладке), Динамический набор полей.

Настройки таблицы:

  • Ключевой столбец (для импорта/множественного выбора).
  • Максимальная высота в пикселях.
  • Экспорт / Импорт (Excel).
  • Сохранять строку после редактирования (автосохранение).
  • Создавать строки в модальном окне.
  • Секции столбцов.
  • Динамическая обязательность (условные правила обязательности ячеек).
  • Условное форматирование колонок: подсветка ячеек по условию для колонок Число/Деньги/Текст — правила вида «больше», «между», «содержит», «минимум», «максимум», «дубликаты», палитра 12 цветов × 5 тонов, до 50 правил на колонку. Настраивается на странице ДП «Таблица». Подробно — в справочнике ДП «Таблица» (§ «Условное форматирование колонок»).
  • Сортировка по умолчанию (один столбец).
  • Смарт-выражения для вычисления значений колонок.
  • Итоговая строка (для типов Число, Деньги).

Ограничение: настройка «Обязателен для завершения» (ExtParamsInSubcat.IsRequired) к ДП «Таблица» неприменима — тип является составным, механизм IsRequired для него не работает. Для контроля заполненности используйте обязательность колонок (режим «Обязательно») или динамическую обязательность.

Диапазон значений в колонках таблицы:

  • Число: от -99 999 999 999 999 до +99 999 999 999 999.
  • Деньги: от -922 337 203 685 476.99 до +922 337 203 685 476.99.

Операции через API/SmartScript:

  • Добавить строку: '+[{ID_колонки:{"First":"значение"}}]'.
  • Обновить строку: '={"First":"ID_строки","Second":{ID_колонки:{"First":"значение"}}}'.
  • Удалить строку: '-ID_строки'.
  • Полная перезапись: '|{...}' (удалить все + создать) или '#{...}' (только изменения).

First/Second — два уровня использования. Эта конструкция используется в двух разных контекстах и имеет разную семантику:

  • Уровень строки (операция «Обновить»): {"First": "RowID", "Second": {объект_колонок}} — здесь First — идентификатор обновляемой строки, Second — объект со значениями колонок.
  • Уровень значения ячейки: {"First": "значение", "Second": "доп.значение"} — здесь First — основное значение ячейки, Second — вспомогательное (используется только в отдельных типах колонок, см. таблицу ниже).

Формат значений по типам колонок:

Тип колонки First Second
Текст / Большой текст без форматирования строка
Текст с маской / Телефон строка
Число / Деньги число в виде строки ("7", "1234.56") — десятичный разделитель — точка
Чекбокс "true" или "false" (строкой)
Дата "yyyy-MM-dd"
Дата и время "yyyy-MM-ddTHH:mm:ss" строка часового пояса (опционально)
Выпадающий список (Select, Combobox) Id варианта (рекомендуется) или текстовое значение
Lookup (LookUpField) TaskID целевой задачи taskText для отображения (опционально)
Выбор пользователей (SelectUsers) список идентификаторов через запятую: UserID, g{GroupID}, o{OrgUnitID} (например "123,456,g78,o12")
Файл FileID или массив FileID через запятую

Пример добавления строки с несколькими типами колонок (псевдокод, ColumnID — числовые идентификаторы конкретных колонок):

'+[{
  101: {"First": "123,456"},
  102: {"First": "7"},
  103: {"First": "true"},
  104: {"First": "текст значение"},
  105: {"First": "2026-04-30"},
  106: {"First": "2080000", "Second": "Связанная задача"}
}]'

Где: 101 — колонка SelectUsers (IDs через запятую), 102 — Число, 103 — Чекбокс, 104 — Текст, 105 — Дата, 106 — Lookup (Second — отображаемый текст, опционально).

Экранирование. В Lua ChangeExtParamValue и других SmartScript-движках строка-команда передаётся как обычный строковый литерал; внутренние двойные кавычки JSON экранируются по правилам языка-источника (\" в C#/Lua-string, \\" при двойной строковой обёртке). Спецсимволы внутри значений (", \, перевод строки) экранируются по стандарту JSON.

Поведение при ошибке. При невалидной структуре операции (неизвестный ColumnID, неподходящий тип значения, нарушение обязательности колонки, отсутствие прав на колонку) операция возвращает ошибку валидации и строка не сохраняется. Идентификатор проблемной колонки и причина возвращаются в тексте ошибки SmartScript-движка.

⚠️ Колонка SelectUsers ≠ самостоятельный ДП SelectUsers. Внутри табличного ДП колонка типа «Выбор пользователей» принимает строку идентификаторов через запятую ("123,456,g78,o12"), а не JSON. Самостоятельный ДП SelectUsers (вне таблицы) при модификации через ChangeExtParamValue ожидает JSON вида {"Users":[...], "Groups":[...], "OrgUnits":[...]}. Это разные форматы — не путать.


ДП «Файл» (File)

Описание: электронный файл любого разрешённого типа. Поддерживает мультифайл.

Настройки ДП «Файл» разнесены по вкладкам карточки: «Основное» (мультифайл, файл по умолчанию, правило имени файла), «Доп. настройки», «Файлы Word».

Карточка настроек ДП «Файл»: переключатель «Мультифайл», файл по умолчанию и правило имени файла

Хранение: FileStorageFileToExtParamLinks.FileIdFileStorageFiles.

Настройки:

  • Мультифайл (несколько файлов в одном ДП).
  • Значение по умолчанию (файл).
  • Имя файла: не менять / добавить версию / фиксированное / смарт-выражение.
  • Логирование действий с файлами (журнал Диск).
  • Изображение — ограничить только изображениями.
  • Максимальный размер файла (КБ).
  • Список допустимых расширений.
  • Защита от загрузки (только постраничный просмотр).
  • Файловый провайдер.
  • Работа с файлами Word: сравнение версий, объединение.
  • Сканирование (утилита 1Формы).

ДП «Нумератор» (Numerator)

Описание: автоматический нумератор с шаблоном.

Хранение: ExtParamValues.ExtParamValue.

Шаблон нумератора: статический текст + вставки:

  • <number:X;Y> — X = начальное значение, Y = шаг.
  • <datetime:dd.MM.yyyy> — дата/время.
  • Пример: СЧЕТ<datetime:ddMMyy><number:1;1>.

Шаблон и поведение счётчика задаются на вкладке «Основные настройки» карточки ДП.

Настройки ДП «Нумератор»: поле «Шаблон нумератора», флаги «Устанавливать только на переходе» и «Обнулить значение счётчика»

Настройки:

  • Устанавливать только на переходе (не при создании задачи).
  • Обнулить текущее значение счётчика.

Категории и статусы. Нумератор может действовать только в выбранных категориях — при переходе задачи в выбранный статус. Настраивается на вкладке «Категории и статусы» карточки ДП; пока привязки не заданы, таблица пуста.

Вкладка «Категории и статусы» ДП «Нумератор»: поля выбора категории и статусов, кнопка «Добавить», пустая таблица

В списке статусов варианты сгруппированы на «Активные задачи» и «Неактивные задачи»; можно отметить несколько.

Выбор статусов нумератора: статусы сгруппированы на «Активные задачи» и «Неактивные задачи», отмечается несколько

По кнопке «Добавить» пара «категория — статус» попадает в таблицу. Привязки хранятся в ExtParamNumeratorSubcatSteps (категория SubcatId + статус StateId).

Вкладка «Категории и статусы» с добавленными привязками: строки «Категория — Статус» в таблице


ДП «URL (ссылка)» (URL)

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

  • Ссылка с явным протоколом (http://, https://, ftp:// и т.д.) — открывается в новой вкладке браузера.
  • Ссылка с URI-схемой без // (mailto:, tel:, regplay:, data:, slack: и др. — любая валидная схема по RFC 3986) — открывается системным обработчиком браузера, без подстановки https://. Например, mailto:user@example.com открывает почтовый клиент, tel:+74951234567 — набирает номер.
  • Голый домен (например, example.com) — система автоматически добавляет https:// и открывает как веб-ссылку.

Определение типа ссылки выполняется по регулярному выражению ^[a-z][a-z0-9+.-]*(?=:) — проверяется наличие схемы (X:) перед остальной частью значения. Обработка унифицирована с 2.268.344 в двух местах: глобальный обработчик клика приложения (apps/spa/src/app/built-in-dom-elements-extend/when-app-boostrapped.ts) и универсальный хелпер isExternalLink (libs/utils/src/lib/link.ts). До 2.268.344 первый использовал жёсткий чек на javascript:void, второй — ['//', '://'].some(...); ссылки mailto:/tel:/regplay: ломались, превращаясь в https://mailto:....

Известное ограничение: при отображении ссылок в тексте комментариев (comment-text-to-html.pipe.ts) логика определения схемы не унифицирована в этой итерации — возможны артефакты вида https://mailto:. Требует отдельной проверки и доработки.

Хранение: ExtParamValues.ExtParamValue.


ДП «Адрес» (Address)

Описание: почтовый адрес в формате, совместимом с КЛАДР. Хранит координаты (широта, долгота) для позиционирования на карте.

Хранение: ExtParamValues.AddressId → таблица Address. Денормализация: int.

Требование: для корректной работы необходим хотя бы один подключённый адресный провайдер.


ДП «Адресаты email» (ExtParamAddressees)

Описание: e-mail адреса или имена пользователей.

Хранение: ExtParamValues.ExtParamValue.


ДП «Сквозной» (Through)

Описание: автоматическое вычисление значения на основании настроенной цепочки связей (через Lookup). Значения не хранятся — вычисляются по цепочке.

Настройки: ExtParamTroughSettings. Связи: vwExtParamTroughLinks.

Пересчёт: SP PullThroughExtParam.

Общие настройки ДП (на уровне определения)

Эти настройки задаются в свойствах ДП и действуют во всех категориях, где ДП используется:

Настройка Поле DDL Описание
Имя ДП ExtParamName VARCHAR(900) Название
Тип ExtParamType VARCHAR(20) Неизменяемый после создания
Мнемоника ExtParamMnemo VARCHAR(200) Для API и автоматизаций
Подсказка ToolTip VARCHAR(2000) Макс. 1000 символов (ограничение интерфейса); отображается иконкой
Только для чтения ReadOnly BIT По умолчанию: 1
RegExp RegExp VARCHAR(1000) Валидация значения
Сообщение ошибки RegExp RegExpErrorMessage VARCHAR(1000)
MaxLength MaxLength INT Для текстовых типов
Не копировать при создании DontCopySourceTaskValue BIT
Сортировка по алфавиту SortByAlphabet BIT Для списковых типов

Настройки ДП в категории (ExtParamsInSubcat)

Эти настройки индивидуальны для каждой привязки ДП к категории:

Настройка Область действия
Видимость (блок, порядок) Только эта категория
Обязательность Только эта категория
Доступ (по задаче / по группам / по матрице / по SQL-функции) Только эта категория
Синхронизация в родительскую / дочернюю Только эта категория
Значение по умолчанию Только эта категория
Подсказка (ДП в категории) Макс. 1000 символов
Новая задача: режим отображения на НТФ Только эта категория

Типы доступа к ДП

Для каждого ДП в категории можно выбрать способ разграничения доступа:

Способ Когда применять
По задаче Нет специфических ограничений
Только по группам Доступ зависит только от группы
По матрице доступа Комбинация группа + роль + статус
По SQL-функции Доступ зависит от данных задачи

Уровни: 0 = нет доступа, 1 = чтение, 2 = редактирование.