Справочник типов ДП¶
Тип ДП задаётся при создании и не может быть изменён после создания. Если тип выбран неверно — удалить ДП и создать заново (удаление невозможно, если ДП используется в задачах).
Полный перечень типов¶
Все доступные типы ДП, имя типа в базе данных и место хранения значения:
| Тип ДП (рус.) | 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. При вводе значения за границами — автоматическая замена на граничное значение без предупреждения.

Режимы отображения:
- Текстовое поле (по умолчанию).
- Нумератор — требуется указать 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. Автоматическая замена на граничное при превышении, без предупреждения.

Настройки (вкладка «Основные настройки»; хранятся в 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, enumDateTypeModes): фиксированная дата, относительная (Вчера/Сегодня/Завтра) или смарт-выражение (VisibleDatesSmartExpressionId/AvailableDatesSmartExpressionId). - При выборе относительного режима (любого, кроме «Дата») поле ввода конкретной даты очищается и блокируется.
- Границы включительны: например, режим «Сегодня» разрешает выбрать сегодняшнюю дату и любую будущую.
- Относительные даты определяются по часовому поясу сервера — «сегодня» единообразен для всех пользователей независимо от их часового пояса.
ДП «Дата и время» (Datetime)¶
Аналогично ДП «Дата» (включая ограничения «Видимые/Доступные даты» для компонента даты), но добавляет компонент времени.
Хранение: ExtParamValues.DateTimeValue. Денормализация: datetime.
Настройки времени (таблица ExtParamDateTimeSettings):
- Формат выбора времени (
TimeSelectionFormat) — «Свободный» (по умолчанию, произвольный ввод) или «Слоты» (выбор из фиксированных вариантов). - Диапазон (
TimeRange) — для режима «Слоты»: «24 часа» или «Рабочее время». - Шаг (
TimeStep) — для режима «Слоты»: интервал между вариантами — 5, 15 или 30 минут.

ДП «Флажок / Чекбокс» (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.FileId → FileStorageFiles.
Настройки:
- Мультифайл (несколько файлов в одном ДП).
- Значение по умолчанию (файл).
- Имя файла: не менять / добавить версию / фиксированное / смарт-выражение.
- Логирование действий с файлами (журнал Диск).
- Изображение — ограничить только изображениями.
- Максимальный размер файла (КБ).
- Список допустимых расширений.
- Защита от загрузки (только постраничный просмотр).
- Файловый провайдер.
- Работа с файлами 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 = редактирование.