ДП «Таблица» — справочник настроек¶
Полный перечень настроек ДП Таблица с указанием где хранится, что делает, ограничения
Настройки таблицы (ExtParamTableCommonSettings)¶
Вкладка «Дополнительные настройки» в админке ДП.
| Настройка (UI) | Поле БД | Тип | Что делает | Ограничения |
|---|---|---|---|---|
| Ключевой столбец | KeyColumnId |
int FK → ExtParamTableSettings | Столбец для сопоставления строк при импорте и для множественного выбора | Допустимые типы: Текст, Число, Дата, Дата-время, Деньги, Телефон, Lookup, Выпадающий список, RowID. Без ключевого столбца импорт = полная перезапись |
| Использовать RowID как ключ | UseRowIdAsKeyColumn |
bit | При импорте строки сопоставляются по порядковому номеру | |
| Отображать как | DisplayMode |
int | Режим: 0 = Таблица, 1 = Ссылка. Динамический набор полей — отдельный флаг DisplayAsDynamicSetOfFields (bit) |
|
| Максимальная высота (px) | TableMaxHeight |
int | Макс высота области строк; при превышении — вертикальный скролл. По умолчанию высота строк подстраивается автоматически под содержимое ячеек (учитываются переносы текста, превью изображений, кнопки управления). Минимальная высота строки — 150px. Таблица работает без пагинации, единым списком; при достижении максимальной высоты появляется скролл. Предусмотрена кнопка раскрытия таблицы в модальное окно. | |
| Разрешить экспорт | ExportEnabled |
bit | Иконка экспорта в правом верхнем углу таблицы | Экспортируются только столбцы с включённым ExportEnabled |
| Разрешить импорт | ImportEnabled |
bit | Иконка импорта в правом верхнем углу таблицы | Импортируются только столбцы с включённым ImportEnabled; без ключевого столбца -- полная перезапись |
| Загружать файлы в момент вкладывания | UploadWhenFileAttach |
bit | Файл загружается в БД сразу при выборе, а не при сохранении таблицы | |
| Число параллельных загрузок | NumberOfParallelDownloads |
int | Количество одновременных загрузок файлов | |
| Файловый провайдер | FileProviderId |
int FK → FileProviders | Провайдер хранения файлов для файловых колонок | Учитывается только при ручном изменении, смарт-действии «Скачать файл» и LUA. Другие смарт-действия используют провайдер по умолчанию |
| Сохранять строку после редактирования (автосохранение) | AutosaveEnabled |
bit | После Add/Delete/Edit строка сохраняется автоматически; кнопка «Сохранить» скрыта | Tab/Enter не сбрасывает выделение ячейки |
| Создавать строки в модальном окне | AddNewRowModal |
bit | При нажатии «+» открывается модальное окно для ввода значений | |
| Включить секции столбцов | IsSectionsEnabled |
bit | Включает группировку колонок в секции | Требует включённого автосохранения |
| Режим ширины по умолчанию | TableWidthDefault |
int | 0 = По умолчанию, 1 = По размеру экрана, 2 = По содержимому, 3 = По содержимому и заголовкам | |
| Скрыть кнопку добавления строк | HideAddRowsButton |
bit | Кнопка «+» скрыта; строки можно добавлять только через множественный выбор | |
| Хранить html представление | StoreHtmlPresentation |
bit | Сохранение HTML-представления в GZip для отображения в гриде категории | Без этого флага значение не пишется в ExtParamValues.ExtParamValueGZip. Ограничение размера: HTML-снимок ограничен 6900 байт; строки, не поместившиеся в лимит, тихо отбрасываются без предупреждения. Фактическое количество строк в снимке может быть меньше RowsToRender. Данные в таблице сохраняются полностью — ограничение касается только отображения в гриде и Excel-экспорта из грида. В карточке задачи все строки отображаются корректно. |
| Режим Excel | IsExcelMode |
bit | Функция в разработке | |
| Столбец для множественного выбора | MultiselectColumnId |
int FK → ExtParamTableSettings | Ключевой Lookup-столбец для режима multiselect | Тип столбца = Lookup |
Типы столбцов (ExtParamTableSettings.Type)¶
| Тип (UI) | Type (tinyint) | Особенности |
|---|---|---|
| Текст | 0 | Маска, столбец шаблона значения |
| Большой текст без форматирования | 1 | Textarea, без маски |
| Выпадающий список | 2 | Опции в ExtParamTableOptions; или ссылка на ДП через ReferencedExtParamId |
| Текст с маской | 3 | Маска: Email, Phone, кастомные через спецсимволы (0 = цифра, a = буква, * = любой) |
| Деньги | 4 | Поддержка итогов (EnableTotal); диапазон ±922 337 203 685 476.99 |
| Дата и время | 5 | Формат DD-MM-YYYY hh:mm для дефолтного значения |
| Дата | 6 | Формат DD-MM-YYYY для дефолтного значения |
| Телефон | 7 | Форматированное отображение |
| Lookup | 8 | Настройки через ReferencedExtParamId (→ ExtParams) и LookupParamSettingID (→ LookupParamSettings); поддержка смарт-фильтров, каскадных зависимостей |
| Чекбокс | 9 | bool |
| Число | 10 | Поддержка итогов (EnableTotal); диапазон ±99 999 999 999 999; настройки через ReferencedExtParamNumberSettings |
| Файл | 11 | Мультифайл, сканирование, превью, логирование действий; провайдер наследуется от таблицы |
| Виртуальная | 12 | Только для чтения; ссылка на Lookup-столбец + поле категории; наследует настройки Lookup (включая «Отображать как текст»); режим «Невидимая» не поддерживается |
| Шаблонная | 13 | Mustache-подобный шаблон: {{c123.stringValue}}; регистрозависимо; без фильтрации |
| Блок кнопок | 14 | JS-выражение или смарт-пакет; видимость/активность по колонкам или смарт-фильтру; без фильтрации |
| Выбор пользователей | 15 | Настройки через ReferencedExtParamId (→ ExtParams типа Users); перенос строк влияет на множественный выбор |
Настройки столбца (ExtParamTableSettings)¶
Вкладка «Столбцы» в админке ДП.
| Настройка (UI) | Поле БД | Тип | Что делает |
|---|---|---|---|
| ID | ID |
int PK | Идентификатор столбца |
| Имя | Name |
varchar | Название столбца в UI |
| Порядок | OrderID |
int | Порядок расположения; 0 = по порядку создания |
| Тип | Type |
tinyint | Тип данных (см. таблицу выше) |
| Режим | Mode (в DTO) / Locked + IsHidden (в БД) |
— | Необязательно / Обязательно / Только для чтения / Скрытая / Невидимая |
| Значение по умолчанию | DefaultValue |
varchar | Пустое / Фиксированное / Smart-выражение (DefaultValueSmartExpressionId) |
| Смарт-выражение | SmartExpressionId |
int FK | Вычисление значения; вычисляется после сохранения «не-смарт» столбцов; порядок -- по OrderID |
| Маска | Mask |
varchar | Для текстовых столбцов; новая таблица: 0=цифра, a=буква, *=любой |
| Столбец шаблона значения | TemplateColumnId (в ExtParamTableTextColumnSettings) |
int FK | Ссылка на Lookup/Текст столбец с шаблоном RegEx; только для типа Текст |
| Ширина | ColumnWidth |
int | 0 = авто, 1/2/4/6 = диапазон растягивания, другие = px |
| Макс высота | — | — | Устаревшее, не используется |
| Выравнивание | Align |
tinyint | 0=лево, 1=центр, 2=право, 3=ширина (не поддерж. в новой таблице) |
| Прикрепить слева | Locked |
int | Фиксация столбца при горизонтальной прокрутке |
| Итого | EnableTotal |
bit | Строка итогов под таблицей; только Число и Деньги |
| Сортировка по умолчанию | DefaultSort (в DTO) / DefaultGroupingOrder (в БД) |
tinyint | 0=нет, 1=по возрастанию, 2=по убыванию; только один столбец; пересортировка срабатывает автоматически после любого изменения значения в строке (ручное редактирование или смарт-кнопка) |
| Разрешить экспорт | ExportEnabled |
bit | Столбец участвует в экспорте; скрытые не экспортируются |
| Разрешить импорт | ImportEnabled |
bit | Столбец участвует в импорте; скрытые и readonly не импортируются |
| Перенос строк | UseLineBreak (в DTO) |
bit | Текст переносится по ширине вместо обрезки; для Users -- ограничение одним пользователем |
| Название секции | SectionId |
int FK → ExtParamTableSections | Принадлежность к секции |
| Видимость в закрытой секции | IsVisibleInClosedSection (в DTO) |
bit | Столбец виден когда секция свёрнута |
| Видимость в открытой секции | IsVisibleInOpenSection (в DTO) |
bit | Столбец виден когда секция развёрнута |
| Участвует в поиске | IsUsedInSearch (в БД) |
bit | Управляет двумя механизмами: (1) Поиск «в полях» — столбец включается в полнотекстовый поиск по задачам категории в режиме «в полях»; (2) Фильтр «Содержит» на колонке ДП Таблица в гриде категории — поиск ведётся только по строкам столбцов, у которых флаг включён. Если флаг отключён у всех столбцов, фильтр «Содержит» вернёт 0 задач. Фильтры «Нет значения» и «Есть значение» от этого флага не зависят. Troubleshooting: если фильтрация по содержимому ДП Таблица не работает / поиск «в полях» не находит значения из таблицы — первым делом проверить этот флаг. Также требуется настроенный шаблон (ItemTemplate) и StoreHtmlPresentation = true. См. docs/domains/grids/support-guide.md § 1.3. |
| Логировать действия с файлами | IsLogFileReadsAction (в DTO) |
bit | Запись в журнал Диск; только для типа Файл |
| Локализованное название | LocalizedNameId |
int FK → LocalizedBusinessObjects | Перевод названия столбца |
| Ссылка на ДП | ReferencedExtParamId |
int FK → ExtParams | Для Lookup, Select, Users, Number -- ДП-источник настроек |
| Виртуальная: Lookup-столбец | VirtualColumnReferencedLookupColumnId |
int FK | Lookup-столбец, из которого берётся ссылка на задачу |
| Виртуальная: ДП категории | VirtualColumnReferencedExtParamId |
int FK → ExtParams | Поле категории для отображения |
| Настройки Lookup | LookupParamSettingID |
int FK → LookupParamSettings | Полные настройки Lookup (фильтры, каскады, вид) |
| Источник данных | DataSource, DataValueField, DataTextField |
varchar | Для Выпадающего списка -- SQL или набор опций |
| Set of elements as DataSource | SetOfElementsAsDataSource (в DTO) |
bit | Опции берутся из ExtParamTableOptions |
Дополнительные настройки столбцов по типам¶
Lookup¶
Настраивается через создание/выбор ДП типа Lookup (ReferencedExtParamId). Наследует все настройки ДП Lookup: категория, смарт-фильтр, каскадные зависимости, вид.
Выбор пользователей¶
Настраивается через создание/выбор ДП типа Users (ReferencedExtParamId). Настройки: группы, фильтры пользователей.
Выпадающий список¶
Варианты: через ExtParamTableOptions (локальные опции) или через ReferencedExtParamId → ДП типа List.
Файл¶
| Настройка | Описание |
|---|---|
| Разрешить сканирование | Иконка сканирования при добавлении строки |
| Создавать системные копии при акцепте подписи | Системная копия файла при подписании |
| Отображать превью для картинок | Превью с размерами; не работает для мультифайл |
| Мультифайл | Несколько файлов в ячейке |
| Работа с Word | Наследует настройки ДП «Файл» (блок «Работа с файлами Word») |
Число¶
Настраивается через ДП типа Число (ReferencedExtParamId). Диапазон: ±99 999 999 999 999.
Деньги¶
Настраивается через ДП типа Деньги (ReferencedExtParamId). Диапазон: ±922 337 203 685 476.99.
Виртуальная¶
| Настройка | Описание |
|---|---|
| Lookup-столбец | Уже настроенный Lookup-столбец в этой таблице |
| ДП категории | Параметр из категории, на которую смотрит Lookup |
| Превью (для файлового ДП) | Высота/ширина превью, флаг отображения |
Режим: только для чтения. Режим «Невидимая» не поддерживается.
Шаблонная¶
Mustache-подобный шаблон. Синтаксис: {{c123.stringValue}} где 123 = ID столбца. Регистрозависимо. Фильтрация по столбцу невозможна.
Блок кнопок¶
| Настройка | Описание |
|---|---|
| Имя | Текст на кнопке (если нет иконки) или tooltip (если есть) |
| Описание | Tooltip при отсутствии иконки |
| Иконка | Из набора /spa/content-icons |
| JavaScript выражение | JS-код; доступны event.originalEvent, event.data, event.block.reload/freeze/unfreeze |
| Колонка идентификатора (int) | Столбец с ID объекта для смарт-пакета |
| Пакеты действий | Смарт-пакет по нажатию; доступны: ID объекта, JSON строки, ID кнопки, текущий пользователь |
| URL | Смарт-выражение → URL для модального окна после смарт-пакета |
| Колонка видимости (bool) | Столбец, определяющий видимость кнопки |
| Колонка активности (bool) | Столбец, определяющий активность кнопки |
| Сообщение при успехе | Текст после успешного выполнения |
| Сообщение при ошибке | Текст при ошибке |
| Информационное сообщение при нажатии | Подтверждение перед выполнением |
| Режим видимости | Смарт-фильтр: Блокировать (disabled) или Скрыть (hidden) |
JS или смарт-пакет -- взаимоисключающие. Фильтрация по столбцу невозможна. При нажатии все кнопки автоблокируются; разблокировка через event.block.unfreeze().
Секции столбцов (ExtParamTableSections)¶
| Настройка | Поле БД | Описание |
|---|---|---|
| Имя | SectionName |
Название секции |
| Порядок | SectionOrder |
Порядок расположения |
| По умолчанию развёрнуто | IsDefaultExpanded |
Секция развёрнута или свёрнута |
Требования: включён флаг IsSectionsEnabled и AutosaveEnabled в настройках таблицы.
Для каждого столбца: SectionId + IsVisibleInClosedSection + IsVisibleInOpenSection.
Множественный выбор (Multiselect)¶
Настройка: MultiselectColumnId → Lookup-столбец в таблице.
Во вкладке «Настройки множественного выбора»: для каждого столбца -- флаг «Использовать в множественном выборе», ширина, порядок, прикрепление.
Кнопка multiselect не отображается в следующих случаях: - В задаче активны настройки «Ограничить добавление новых строк» или «Ограничить удаление строк» (из настроек ДП в подкатегории). - Таблица открыта в NTF (форме постановки задачи) — кнопка не отображается до момента создания задачи. Это ожидаемое ограничение, не баг.
Права доступа к столбцам¶
По группам пользователей (ExtParamTableSettingsInSubcatGroupPermissions)¶
Настраивается per столбец + per подкатегория. Режим контроля: GroupAccessControlMode.
По статусам задачи (ExtParamTableSettingsInSubcatStatePermissions)¶
Настраивается per столбец + per подкатегория. Включается флагом StateAccessControlEnabled.
AccessType: чтение / запись.
Шаблон в табличных представлениях (ExtParamTableTemplate)¶
Для отображения ДП Таблица в гриде категории.
| Настройка | Поле БД | Описание |
|---|---|---|
| Использовать шаблон | Enabled |
Активация шаблона |
| Отображать количество строк | RenderTotalRows |
Показ общего числа строк |
| Количество отображаемых строк | RowsToRender |
Сколько первых строк рендерить; 0 = пустой объект, без HTML |
| Заголовок | HeaderTemplate |
HTML в начале |
| Шаблон строки | ItemTemplate |
HTML с тегами <cell columnid="..."> для каждой строки |
| Разделитель | SeparatorTemplate |
HTML между строками |
| Футер | FooterTemplate |
HTML в конце |
| Хранить html представление | → StoreHtmlPresentation в CommonSettings |
GZip-хранение в ExtParamValues.ExtParamValueGZip |
| Синхронизировать существующие задачи | — | Пересчёт HTML для существующих задач при изменении шаблона |
HTML-представление хранится в ExtParamValues.ExtParamValueGZip. При денормализации → ExtParamNativeValue. Job TableExtParamValuesGZipCompressJob каждые 3 минуты сжимает по 10000 строк.
С версии 2.265: значение ДП Таблица не хранится в ExtParamValues.ExtParamValue и TasksInSubcatXXXDenormalized.ExtParamXXXValue. Наличие в ExtParamXXXNativeValue зависит от флага «Хранить html представление».
Импорт/экспорт Excel¶
Экспорт: выгрузка в XLS. Первая строка -- названия столбцов. Lookup -- текст задачи. Файл -- ссылка на файл.
Импорт: XLS/XLSX, одна страница.
| Режим | Описание |
|---|---|
| С заголовками (опция включена) | Сопоставление по названиям столбцов |
| Без заголовков (опция выключена) | Сопоставление по порядку столбцов |
Важно: - Без ключевого столбца: полная перезапись (все строки удаляются, загружаются новые) - С ключевым столбцом: строки матчатся по ключу (обновление + добавление новых) - Файловые столбцы при импорте игнорируются - Lookup при импорте: можно использовать текст задачи или ID задачи - Скрытые и readonly столбцы не импортируются - Имена столбцов не должны содержать лишних пробелов