Доработки модуля ввода данных
Бизнес-требования
- Пользователь должен видеть корректную подпись и форматирование строки итогов, без схлопывания текста и с явным словом «Итого»; ввод и отображение должны соответствовать типу данных полей.
- При настройке консолидации и сопоставлении полей пользователь может задавать идентификаторы в привычном для данных виде (не только латиница) и при необходимости использовать понятные человеку алиасы.
- После удаления строк идентификаторы строк должны оставаться последовательными и предсказуемыми для ссылок, формул и интеграций.
- Наличие комментария к ячейке должно быть заметно в интерфейсе без открытия каждой ячейки.
- Ограничения видимости столбцов формы, заданные в DIS для пользователя, не должны обходиться при открытии той же формы во Fastboard: пользователь не видит столбцы, которые ему запрещены.
- В модальных окнах со длинными списками выбора должен быть быстрый поиск по списку.
- В базовом и режиме редактирования доступность элементов настройки и работы с формой должна соответствовать правилам: выражение настраивается только в режиме редактирования; строка итогов доступна всегда; бизнес-процесс виден в режиме редактирования, но не настраивается; консолидация работает в штатном режиме без лишних ограничений.
Решение
Строка итогов
Пользовательский интерфейс
Расположение:
- Модуль ввода данных → ПКМ по форме → Добавить/редактировать строку итогов → Модальное окно редактирования строки итогов
Изменения:
- Добавить чекбокс "Показывать подпись «Итого» в первом столбце", по умолчанию не выбран
- Если выбран чекбокс "Показывать подпись «Итого» в первом столбце", то для первого столбца в блоке выбора операции агрегирования будет недоступен раскрывающийся список
ЗнВ раченскрывающихсяв ячейспискахитогов форматируются по типу данных соответствующего столбца (число, дата, текст и т.д.). При попытке указать функциюдля выбора агрегации недоступодходящегонытварипа данты, которые ныхе(например, суниммы длястрокового типа) появляется ошибка
Системная логика – фронтенд
Перед отображением итога выполняется проверкатипа данных столбца: функции СУММ, СРЗНАЧ, ПРОИЗВЕД, МАКС, МИН не работают на столбцах с НЕ числовым типом данных
Системная логика – фронтенд
- Если выбран чекбокс "Показывать подпись «Итого» в первом столбце", то блокируется возможность подсчета итогов по этому столбцу, в этом столбце в строке итогов пишется "Итого"
Консолидация: сопоставление полей (латиница, алиасы)
Пользовательский интерфейс
Расположение:
Модуль ввода данных -> настройки консолидации -> сопоставление полей.
Изменения:
Поле ключа или технического имени при сопоставлении принимает значения не только в латинице: допускаются правила, согласованные с хранением (единый набор символов в реализации).+ДоступноВзадание алираскрыва(отображаемоеющимхся) для сопоставленного поля: вспискахидляподсказкахждогопстользователь видит алиас, внутренний идентификатор может отличаться.
Системная логикбца –должны фронтенд
Снябытьили расширить ограничение «тольколатиница» в поле вводарив клиеантскойывалидгрегации;, которые досообщетупниы дляоб ошибукахзанного типа:- Для типов
т"Целом же чистиле, что" и "Дробное число" – все варианты агрегации - Для остальных
формах. Поля вводатиотображения для алиаса; передача алиаса при сохранении настроек в теле запроса вместе с остальнымиполями консолидации.
Системная логикав –бэкендВвалридация идентификы атогра поля при сохранении настроек консолидгациисогласованаНЕсСЧИТАТЬ,фронтендом;СЧЁТ,при необходимости экранирование или каноническая форма хранения.В модели настроек консолидации добавлены поля алиасов при их отсутствии; миграции и обратная совместимость для старых конфигураций без алиасов.СЧЁТЗ
- Для типов
Пересчёт идентификаторов строк при удалении
Пользовательский интерфейс
Расположение:
Модуль ввода данных -> таблица строк формы (если в интерфейсе отображаются порядковый номер строки или иной идентификатор, зависящий от порядка).
Изменения:
После удаления строки нет «дыр» в отображаемой нумерации или в показанных пользователю идентификаторах, если такие выводятся в UI.Целевая модель (строгий пересчёт порядковых id, либо стабильные UUID с отдельным полем порядка) фиксируется в реализации и в описании задачи для согласования с формулами и интеграциями.
Системная логика – фронтенд
После успешного ответа на удаление строки состояние таблицы и ключи списка соответствуют данным ответа и последующей загрузке формы, без использования устаревших id удалённых строк.
Системная логика – бэкенд
- При
хравыполнениистзапрок нсасервере: пересчёт порядка или sequential id при удалении, либо политика «стабильный id + order» с атомарным обновлением связанных сущностей. Ответна удаление (table/{tableId}/batch с передачей в теле запроса непустого массива delete) пересчитывать идентификаторы в системном столбце id заново, начиная с 1 последующая выдача формы содержат согласованный набор id ипорядку без пропусков и возвра.щать на фронт
Визуальная индикация комментария к ячейке
Пользовательский интерфейс
Расположение:
- Модуль ввода данных
->→ ячейкитаблицформыввода.
Изменения:
- Ячейка с комментарием отличается от ячейки без комментария:
икдонкба,вляется маркер угла, цветовая метка или комбинация по гайдлайнам продукта. - П
ори наведению иликлина ячейку с маркером комментария доступен просмотр текста комментария.
Системная логика – бэкенд
- Возвр
иащатьужна фронт вместе с данными ячеек меткущhasComments логического типа для каждой ячейки формы: True, если ествующеь хотя бы один комсцментарий, False, если—нетдополни одного комментария - Возвращать на фронт вместе с меткой комментария список коммен
дтов массивом объектов:- ка
цждый объект включает в себя текст комментария, автора, дату и время создания, - отдельный массив для каждой ячей
).ки с комментариями
- ка
Системная логика – фронтенд
ОтПрисовкаиндикатора по данным ячейки (наличие комментария); обновление индикатора при добавлении и удалении комментария.у ячейки (hasComments = "True") рисовать маркер на углу ячейки- При наведении курсора на ячейку с комментариями показывать во всплывающем окне комментарии списком в формате:
- Блок первого комментария:
- Автор + дата/время
- Комментарий
- Строка отступа
- Блок второго комментария
- и т.д. для всех комментариев
- Блок первого комментария:
- Если комментариев больше 5, то показывать последние 5
Согласованность ограничений видимости столбцов DIS и Fastboard (CLS)
Пользов
Кратко сцельскнарий интерфейс
Расположение:
FastboardМВД-> мотдульает в FB список вода данных ->форма.те:
Измененайдия:
- в
Во Fastboard не отображаютсяFB: стписолбцы формы,к запрещённыедля пользователя по правилам DIS, в том числе сразу после загрузки страницы (без кратковременного показа запрещённых столбцов- Бэк FB создает таблицу-связь между юзерами и источниками-МВД
- В этой таблице-связи указываются userId, sourceId, bannedColumns – запрещенные колонки
- Фронт запрашивает file_preview от имени юзе
ния прав).
Сисотдаемная логика – фронтенд
Столбцы рендерятсятолько те колонки, которых нет в bannedColumns- При насильственном вызове запроса на формирование скрипта с колонкой, которая недоступна пользователю (например, при вызове script/{id}/table/without-save) не пропускать такие запросы с возвратом ошибки
- Если есть возможность, контролировать загр
ешённогоузку данными формых из таких источников: направаими; до получения итоговой схемы ср, учётом CLS не подстанавливать constraint дляется полный наборстолбцовбез фидльтрации. При необходимости — состояние загрузки безотобпражеделенияныхполной сюзетки столбцров.
Системная логика – бэкенд МВД
- Загрузка схемы и данных формы для Fastboard применяет те же правила видимости столбцов (CLS), что и для DIS, в одном месте или с переиспользованием общей логики.
- Кэш и ответы не отдают пользователю содержимое и метаданные запрещённых столбцов в обход этих правил.
Поиск по спискам в модальных окнах
Пользовательский интерфейс
Расположение:
- Модуль ввода данных -> модальные окна с длинным списком выбора (конкретный перечень — в подзадаче инвентаризации).
Изменения:
- Над списком или в шапке модального окна — поле поиска с фильтрацией по подстроке без учёта регистра (или по правилам продукта).
- Пустой поиск показывает полный список; при отсутствии результатов — понятное сообщение.
Системная логика – фронтенд
- Реализация поиска для модалок со списком целиком на клиенте: фильтрация уже загруженного списка; при необходимости дебаунс ввода.
- Для модалок, где список подгружается с сервера страницами, при доработке API — параметр поиска в запросе списка и согласованное поведение пустой выдачи (оформляется отдельным подпунктом при появлении изменений на бэкенде).
Базовый режим и режим редактирования: доступность элементов
Пользовательский интерфейс
Расположение:
- Модуль ввода данных -> панели и меню настроек формы.
Правила доступности:
- Выражение: настройка «Выражение» доступна только при включённом режиме редактирования; в базовом режиме скрыта или недоступна.
- Строка итогов: работает всегда, вне зависимости от режима (отображение и использование итогов; при отдельном редакторе правил итогирования границы базового режима согласовать с продуктовой политикой, см. примечания).
- Бизнес-процесс: в режиме редактирования секция отображается, элементы настройки привязки и параметров недоступны (только просмотр, read-only или disabled).
- Консолидация: в обоих режимах без искусственного отключения в базовом режиме, если иное не следует из политики безопасности.
Системная логика – фронтенд
- Единые флаги режима редактирования для условного рендера и недоступности (disabled) элементов настройки; единые точки входа для меню и панелей настроек.
Критерии приёмки
- В строке итогов отображается слово «Итого» (или локализованный эквивалент); при стандартных размерах окна и колонок текст не сливается в нечитаемую строку; значения итогов соответствуют типам столбцов, при ошибке типа пользователь видит явную обратную связь.
- В консолидации при сопоставлении полей допустимы символы, согласованные с бэкендом, без ограничения «только латиница»; алиас задаётся, сохраняется и отображается в интерфейсе настроек и связанных местах.
- После удаления строк набор идентификаторов или порядковых номеров согласован с зафиксированной в реализации моделью и не ломает консолидацию, ссылки и повторное открытие формы; отображаемая нумерация без «дыр», если нумерация показывается.
- Ячейка с комментарием визуально отличима сразу после добавления комментария и при последующем просмотре таблицы.
- Пользователь с запретом на столбцы в DIS не видит эти столбцы во Fastboard при загрузке и дальнейшей работе; для этого пользователя не передаётся содержимое запрещённых столбцов в обход правил CLS.
- В согласованном перечне модальных окон модуля ввода данных поиск по списку фильтрует элементы ожидаемо; при отсутствии совпадений отображается понятное состояние пустого списка.
- В базовом режиме настройка выражения недоступна; строка итогов отображается и используется; консолидация работает штатно; в режиме редактирования выражение настраивается; бизнес-процесс виден, но не настраивается.
Примечания для постановки в работу
- Уточнить у заказчика, относится ли формулировка «строка итогов работает всегда» только к просмотру итогов или также к изменению правил итогирования в базовом режиме — от этого зависит точное правило disabled для редактора итогов.
- Для поиска в модальных окнах зафиксировать явный список экранов в подзадаче инвентаризации.
- При необходимости запрета обхода настроек через прямой вызов API добавить проверки на бэкенде и тогда дополнить соответствующий подраздел документа разделом «Системная логика – бэкенд».