Красивый итог на экране ещё не объясняет, какие записи вошли в расчёт, насколько свежи данные и кто вправе открыть детализацию. Поэтому ТЗ на дашборд должно связывать три вещи: требование, контрольные строки и наблюдаемую проверку.
Ниже — структура такого задания. Она помогает заказчику заранее определить результат первой версии, а при сдаче сравнить не только внешний вид, но и состав записей, сумму, права и состояния данных.
Закрепите пользователей, решение и границы этапа
Начните с уже выбранного управленческого вопроса, а не с нового списка KPI. Запишите один или несколько рабочих сценариев по схеме:
- кто открывает экран;
- что видит сначала;
- к какой детализации переходит;
- какое решение или действие выполняет.
Например: руководитель компании открывает итог успешных закрытий за месяц, выбирает подразделение, переходит к списку включённых записей и обсуждает отклонение с ответственным. Руководитель подразделения выполняет тот же сценарий, но только в пределах разрешённых ему данных.
Затем ограничьте первый этап. В паспорте проекта перечислите:
| Поле | Что зафиксировать |
|---|---|
| Результат этапа | Экраны, показатели, срезы и детализация |
| Источники | Конкретные файлы, таблицы или подключения |
| Загрузка | Ручной файл, событие или согласованное подключение |
| Пользователи | Роли и разрешённые области данных |
| Передача | Методика, настройки, контрольные примеры и инструкции в договорном объёме |
| Не входит | Несогласованные источники, финансовый учёт, запись обратно, сквозная атрибуция |
- Поле
- Результат этапа
- Что зафиксировать
- Экраны, показатели, срезы и детализация
- Поле
- Источники
- Что зафиксировать
- Конкретные файлы, таблицы или подключения
- Поле
- Загрузка
- Что зафиксировать
- Ручной файл, событие или согласованное подключение
- Поле
- Пользователи
- Что зафиксировать
- Роли и разрешённые области данных
- Поле
- Передача
- Что зафиксировать
- Методика, настройки, контрольные примеры и инструкции в договорном объёме
- Поле
- Не входит
- Что зафиксировать
- Несогласованные источники, финансовый учёт, запись обратно, сквозная атрибуция
У документа должны быть версия и согласующий. Отдельно назначьте владельцев методики, исходных данных и экрана. Если частота обновления или правило обработки пропуска пока неизвестны, не подставляйте удобное значение: назначьте ответственного и шаг уточнения.
Первый этап может работать с одной согласованной выгрузкой CRM. Это не означает постоянного подключения к любой CRM. У Switch On AI такой состав обсуждается в рамках услуги разработки дашбордов и отчётности: источники, методика, обновление, интерфейс и проверки определяются для конкретного проекта.
Результат раздела: краткий паспорт проекта, сценарии пользователей, границы первой версии и перечень открытых вопросов с ответственными.
Свяжите показатели с методикой и источником
У каждого числа на экране должен быть проверяемый смысл. Для показателя укажите ID, название, версию утверждённого правила, источник и владельца методики. Полный паспорт расчёта можно вести отдельно; в ТЗ на экран достаточно связать его с виджетом и контрольными строками.
Минимальный реестр выглядит так:
| ID | Методика и версия | Источник и область | Владелец | Контрольный образец |
|---|---|---|---|---|
| M1 | Успешные закрытия, версия правила | CONTROL-v1, согласованный период | Назначается заказчиком | Ожидаемые ID и сумма |
- ID
- M1
- Методика и версия
- Успешные закрытия, версия правила
- Источник и область
- CONTROL-v1, согласованный период
- Владелец
- Назначается заказчиком
- Контрольный образец
- Ожидаемые ID и сумма
Для источника зафиксируйте способ получения, владельца, обязательные поля, идентификатор записи, единицы, валюту, дату отбора, часовой пояс, полноту и доступный обезличенный образец. Одинаковое название поля в двух системах не доказывает одинаковый смысл: например, «дата» может означать создание, оплату или закрытие.
Если подразделения считают показатель по-разному, есть два честных варианта: согласовать одно определение либо создать разные, явно названные показатели. Нельзя скрывать расхождение одной суммой.
В учебном примере ниже показатель M1 связан с набором CONTROL-v1. Правило такое: сложить amount только у записей со status=won, если closed находится в интервале от 1 сентября 2026 года включительно до 1 октября исключительно. Единица — рубль, даты трактуются как согласованные календарные даты Europe/Moscow, ID должен быть уникальным, а сумма у включаемой записи обязательна.
Результат раздела: каждое число экрана связано с версией методики, источником, владельцем и ожидаемым примером. Подробный порядок подготовки CRM-отчёта вынесен в материал про паспорт показателя и проверку расчёта.

Разберём ваш рабочий пример и покажем согласованный фрагмент решения до договора и предоплаты.
Опишите макет, фильтры и переход к деталям
Макет должен описывать поведение, а не только расположение блоков. Для каждого виджета укажите название, единицу, период, активные фильтры, дату или версию среза и способ показа неизвестного значения. Для перехода к деталям перечислите сохраняемый контекст и доступные поля — например, ID, подразделение, дату закрытия, статус и сумму.
Для каждого селектора подготовьте строку матрицы:
| Селектор | Связанные виджеты | Область | Начальное значение | Сброс | Пустая выборка |
|---|---|---|---|---|---|
| Подразделение | M1 и таблица деталей | Текущая панель | Все разрешённые | Возврат ко всем данным роли | Пустой список и известный итог 0 |
| Период | M1 и таблица деталей | Текущая панель | Согласованный отчётный период | Возврат к начальному периоду | Без подмены ошибкой источника |
- Селектор
- Подразделение
- Связанные виджеты
- M1 и таблица деталей
- Область
- Текущая панель
- Начальное значение
- Все разрешённые
- Сброс
- Возврат ко всем данным роли
- Пустая выборка
- Пустой список и известный итог 0
- Селектор
- Период
- Связанные виджеты
- M1 и таблица деталей
- Область
- Текущая панель
- Начальное значение
- Согласованный отчётный период
- Сброс
- Возврат к начальному периоду
- Пустая выборка
- Без подмены ошибкой источника
В документации DataLens дашборд описан как страница или набор страниц с виджетами, а селектор — как фильтр связанных виджетов с настраиваемой областью действия. Здесь DataLens служит документированным примером устройства связей. Он не заявлен выбранной или протестированной платформой проекта.
Проверяйте фильтр по ожидаемым строкам и итогу. В EX-D02 фильтр «Север» для роли с полным доступом оставляет A1 и A2: две строки на 30 000 рублей. Фильтр «Юг» оставляет B1: одну строку на 30 000 рублей. Сброс для руководителя компании возвращает A1, A2 и B1 на 60 000 рублей.
Похожая диаграмма не подтверждает правильный фильтр. Две неверные выборки могут случайно дать одинаковую сумму.
Результат раздела: макет и матрица «фильтр → виджеты и контекст → ожидаемые записи → итог».
Задайте разрешённые данные и действия ролей
Пользовательский фильтр помогает выбрать часть уже разрешённого набора. Авторизация определяет, какой набор и какие операции доступны пользователю вообще. Скрытая вкладка или отсутствие пункта в селекторе не заменяют проверку права.
Составьте матрицу с нужными действиями:
| Роль | Область данных | Агрегаты | Детали | Экспорт | Загрузка и изменение методики |
|---|---|---|---|---|---|
| Руководитель компании | Север и Юг | Разрешены | Разрешены в доступной области | Только после отдельного согласования | Не подразумеваются |
| Руководитель Севера | Только Север | Разрешены | Только записи Севера | Не разрешён | Не разрешены |
| Владелец данных | Согласованная область | По необходимости | По необходимости | По отдельному правилу | Загрузка — только если включена в роль |
| Владелец методики | Согласованная область | По необходимости | По необходимости | Не подразумевается | Изменение правила через контролируемую процедуру |
- Роль
- Руководитель компании
- Область данных
- Север и Юг
- Агрегаты
- Разрешены
- Детали
- Разрешены в доступной области
- Экспорт
- Только после отдельного согласования
- Загрузка и изменение методики
- Не подразумеваются
- Роль
- Руководитель Севера
- Область данных
- Только Север
- Агрегаты
- Разрешены
- Детали
- Только записи Севера
- Экспорт
- Не разрешён
- Загрузка и изменение методики
- Не разрешены
- Роль
- Владелец данных
- Область данных
- Согласованная область
- Агрегаты
- По необходимости
- Детали
- По необходимости
- Экспорт
- По отдельному правилу
- Загрузка и изменение методики
- Загрузка — только если включена в роль
- Роль
- Владелец методики
- Область данных
- Согласованная область
- Агрегаты
- По необходимости
- Детали
- По необходимости
- Экспорт
- Не подразумевается
- Загрузка и изменение методики
- Изменение правила через контролируемую процедуру
По принципам OWASP требования к авторизации стоит строить вокруг минимально необходимых прав, отказа по умолчанию и проверки разрешения для запросов и конкретных объектов. Эти принципы помогают сформулировать испытания, но одна матрица не подтверждает полную безопасность и не является сертификатом.
Для руководителя Севера серверная область до пользовательской фильтрации уже ограничена A1 и A2. Поэтому сброс оставляет те же две записи и 30 000 рублей. Попытка открыть B1 или B2 по прямой ссылке, получить их через селектор либо выгрузить должна завершиться без выдачи данных. Это требование будущей проверки, а не заявление о проведённом тесте.
Проверки деталей, экспорта и прямого обращения выполняют отдельно согласованными учётными записями в разрешённой тестовой среде.
Результат раздела: матрица «роль → область → действия → запреты → сценарий проверки».

Согласуйте обновление и состояния при неполных данных
Укажите способ обновления: ручной файл, подключение, расписание или событие. Рядом запишите допустимое опоздание и владельца реакции. Универсальной частоты и SLA нет: значения определяет конкретный проект.
Экран должен различать состояния:
| Состояние | Что показывать | Что нельзя делать |
|---|---|---|
| Загрузка | Процесс ещё не завершён | Выдавать промежуточный итог за полный |
| Полный успешный срез | Итог, дата и версия источника | Подменять дату данных временем открытия страницы |
| Корректная пустая выборка | Пустой список, count=0, M1=0 | Называть её ошибкой источника |
| Неполный или недопустимый набор | Причину и ограничение результата | Публиковать новый итог как полный |
| Ошибка обновления | Статус ошибки и следующий шаг | Показывать ноль вместо неполученных данных |
| Предыдущий успешный срез | Настоящие дата, версия и заметная архивная метка | Переименовывать его в свежий результат |
- Состояние
- Загрузка
- Что показывать
- Процесс ещё не завершён
- Что нельзя делать
- Выдавать промежуточный итог за полный
- Состояние
- Полный успешный срез
- Что показывать
- Итог, дата и версия источника
- Что нельзя делать
- Подменять дату данных временем открытия страницы
- Состояние
- Корректная пустая выборка
- Что показывать
- Пустой список, count=0, M1=0
- Что нельзя делать
- Называть её ошибкой источника
- Состояние
- Неполный или недопустимый набор
- Что показывать
- Причину и ограничение результата
- Что нельзя делать
- Публиковать новый итог как полный
- Состояние
- Ошибка обновления
- Что показывать
- Статус ошибки и следующий шаг
- Что нельзя делать
- Показывать ноль вместо неполученных данных
- Состояние
- Предыдущий успешный срез
- Что показывать
- Настоящие дата, версия и заметная архивная метка
- Что нельзя делать
- Переименовывать его в свежий результат
Например, отсутствие amount у A2 нарушает контракт набора. Повтор A1 нарушает уникальность ID. В обоих случаях новый набор нельзя без оговорки принять за полный. Если после сбоя доступен CONTROL-v1 с итогом 60 000 рублей, интерфейс может сохранить его как последний успешный срез — но только с исходной датой, версией и явной пометкой, что новое обновление не состоялось.
Известный ноль имеет другое основание: источник получен полностью и исправен, но фильтру не соответствует ни одна запись. Поэтому ноль, неполнота и ошибка требуют разных подписей и разных действий ответственного.
Результат раздела: таблица «условие → видимое состояние → действие ответственного → способ проверки».
Подготовьте контрольные данные и сценарии приёмки
До разработки согласуйте синтетический или обезличенный набор, версию методики и независимо рассчитанные ожидания. Скриншот и сообщение «обновление прошло без ошибок» не доказывают правильность состава данных.
Программа должна покрывать риски конкретного проекта. Для EX-D02 предусмотрены обычная выборка, фильтр и сброс, границы периода, пустая выборка, пропуск обязательного значения, дубль, сбой обновления и ограничение роли.
| Тест | Вход и действие | Ожидаемый результат | Факт | Среда/версия и свидетельство |
|---|---|---|---|---|
| T-BASE | Роль компании; сентябрь; все разрешённые подразделения | A1, A2, B1; 3 строки; 60 000 руб. | Не выполнялось | Заполнить после проверки |
| T-FILTER | Север, затем Юг и сброс | Север: A1/A2=30 000; Юг: B1=30 000; сброс: A1/A2/B1=60 000 | Не выполнялось | Заполнить после проверки |
| T-DATE | 01.09 включительно — 05.09 исключительно; отдельно граница 01.10 | A1; 1 строка; 10 000 руб.; C1 не входит в сентябрь | Не выполнялось | Заполнить после проверки |
| T-EMPTY | Полный исправный источник и фильтр без подходящих строк | Пустой список; count=0; M1=0; статус корректной пустоты | Не выполнялось | Заполнить после проверки |
| T-BAD | Убрать amount у A2 либо повторить A1 | Новый набор отмечен как неполный или недопустимый и не публикуется как полный | Не выполнялось | Заполнить после проверки |
| T-REFRESH | Имитировать отказ нового обновления в разрешённой среде | Ошибка нового выпуска; CONTROL-v1 остаётся архивным с прежними датой и версией | Не выполнялось | Заполнить после проверки |
| T-RIGHT | Роль Севера: сброс, попытка открыть B1 и экспортировать | Только A1/A2=30 000; Юг и экспорт недоступны | Не выполнялось | Заполнить после проверки |
- Тест
- T-BASE
- Вход и действие
- Роль компании; сентябрь; все разрешённые подразделения
- Ожидаемый результат
- A1, A2, B1; 3 строки; 60 000 руб.
- Факт
- Не выполнялось
- Среда/версия и свидетельство
- Заполнить после проверки
- Тест
- T-FILTER
- Вход и действие
- Север, затем Юг и сброс
- Ожидаемый результат
- Север: A1/A2=30 000; Юг: B1=30 000; сброс: A1/A2/B1=60 000
- Факт
- Не выполнялось
- Среда/версия и свидетельство
- Заполнить после проверки
- Тест
- T-DATE
- Вход и действие
- 01.09 включительно — 05.09 исключительно; отдельно граница 01.10
- Ожидаемый результат
- A1; 1 строка; 10 000 руб.; C1 не входит в сентябрь
- Факт
- Не выполнялось
- Среда/версия и свидетельство
- Заполнить после проверки
- Тест
- T-EMPTY
- Вход и действие
- Полный исправный источник и фильтр без подходящих строк
- Ожидаемый результат
- Пустой список; count=0; M1=0; статус корректной пустоты
- Факт
- Не выполнялось
- Среда/версия и свидетельство
- Заполнить после проверки
- Тест
- T-BAD
- Вход и действие
- Убрать amount у A2 либо повторить A1
- Ожидаемый результат
- Новый набор отмечен как неполный или недопустимый и не публикуется как полный
- Факт
- Не выполнялось
- Среда/версия и свидетельство
- Заполнить после проверки
- Тест
- T-REFRESH
- Вход и действие
- Имитировать отказ нового обновления в разрешённой среде
- Ожидаемый результат
- Ошибка нового выпуска; CONTROL-v1 остаётся архивным с прежними датой и версией
- Факт
- Не выполнялось
- Среда/версия и свидетельство
- Заполнить после проверки
- Тест
- T-RIGHT
- Вход и действие
- Роль Севера: сброс, попытка открыть B1 и экспортировать
- Ожидаемый результат
- Только A1/A2=30 000; Юг и экспорт недоступны
- Факт
- Не выполнялось
- Среда/версия и свидетельство
- Заполнить после проверки
Роли и запрещённые операции проверяют отдельными согласованными учётными записями. Поля факта, версии среды и свидетельства остаются незаполненными до выполнения. Рассчитанная арифметика синтетического набора — это ожидание, а не тест интерфейса.
Если нужно сопоставить записи между системами и разобрать расхождения, используйте отдельный порядок сверки данных после интеграции, не раздувая ТЗ на экран всеми операциями подготовки данных.
Результат раздела: воспроизводимая программа «требование → вход → ожидаемые строки, итог или статус → фактическое наблюдение».
Зафиксируйте решение, передачу и последующие изменения
Протокол приёмки должен отвечать не только на вопрос «принято ли», но и показывать, что именно проверили. Включите в него:
- версию решения, среду и время проверки;
- выполненные сценарии;
- фактические наблюдения и свидетельства;
- замечания и ответственных;
- решение по каждому открытому пункту и по выпуску в целом.
Если исправление проверяют повторно, сохраните исходное наблюдение и добавьте новую версию с новым результатом. Не заменяйте историю общей отметкой PASS. Например, совпавшие числа при неподтверждённых правах означают: расчёт проверен, проверка доступа остаётся открытой.
Перед передачей сверьте комплект:
| Материал | Что передать |
|---|---|
| Методика | Версии определений и владельцы |
| Источники | Состав, область и порядок получения |
| Реализация | Настройки и исходники в договорном объёме |
| Права | Матрица ролей и порядок управления доступом |
| Проверка | Контрольные наборы, ожидания и протокол |
| Эксплуатация | Инструкция обновления, сбоя и ответственные |
- Материал
- Методика
- Что передать
- Версии определений и владельцы
- Материал
- Источники
- Что передать
- Состав, область и порядок получения
- Материал
- Реализация
- Что передать
- Настройки и исходники в договорном объёме
- Материал
- Права
- Что передать
- Матрица ролей и порядок управления доступом
- Материал
- Проверка
- Что передать
- Контрольные наборы, ожидания и протокол
- Материал
- Эксплуатация
- Что передать
- Инструкция обновления, сбоя и ответственные
Изменение формулы, источника или права — контролируемое изменение задания. Его нельзя незаметно включить в обычную правку экрана.
Техническая приёмка подтверждает согласованное поведение панели. Она сама по себе не доказывает рост продаж или качество управленческих решений. У Switch On AI опубликован MVP дашборда из файла CRM, где отдельный модуль рассчитывает показатели, а браузерный интерфейс показывает сводку. Это ограниченный проект для определённого формата выгрузки, а не универсальная система аналитики и не обещание совместимости с произвольным файлом.
Результат раздела: протокол решения и перечень переданных материалов с владельцами дальнейшей работы.
Учебный фрагмент ТЗ и проверка одной панели
EX-D02 — учебное ТЗ и синтетический контрольный набор. Реальные CRM, DataLens, учётные записи и приложение не тестировались. Рассчитаны только ожидаемые значения.
Вход. Будущая панель должна показывать операционную сумму успешных закрытий M1 за сентябрь 2026 года по фиксированному набору CONTROL-v1.
Правило. M1 — сумма amount только для строк со status=won, где 2026-09-01 ≤ closed < 2026-10-01. Единица — рубль. Даты — согласованные календарные даты Europe/Moscow. ID уникален; у включаемой записи amount обязателен.
| ID | Подразделение | closed | status | amount, руб. |
|---|---|---|---|---|
| A1 | Север | 2026-09-02 | won | 10 000 |
| A2 | Север | 2026-09-05 | won | 20 000 |
| B1 | Юг | 2026-09-05 | won | 30 000 |
| B2 | Юг | 2026-09-05 | lost | 40 000 |
| C1 | Север | 2026-10-01 | won | 50 000 |
- ID
- A1
- Подразделение
- Север
- closed
- 2026-09-02
- status
- won
- amount, руб.
- 10 000
- ID
- A2
- Подразделение
- Север
- closed
- 2026-09-05
- status
- won
- amount, руб.
- 20 000
- ID
- B1
- Подразделение
- Юг
- closed
- 2026-09-05
- status
- won
- amount, руб.
- 30 000
- ID
- B2
- Подразделение
- Юг
- closed
- 2026-09-05
- status
- lost
- amount, руб.
- 40 000
- ID
- C1
- Подразделение
- Север
- closed
- 2026-10-01
- status
- won
- amount, руб.
- 50 000
В сентябрьскую выборку входят A1, A2 и B1. B2 исключается из-за lost, а C1 — потому что верхняя граница 1 октября не включается. Ожидание: 3 строки и 60 000 рублей.
| Фильтр | Начало включительно | Конец исключительно | Ожидаемые ID | Строк | Сумма, руб. |
|---|---|---|---|---|---|
| Все разрешённые | 2026-09-01 | 2026-10-01 | A1, A2, B1 | 3 | 60 000 |
| Север | 2026-09-01 | 2026-10-01 | A1, A2 | 2 | 30 000 |
| Юг | 2026-09-01 | 2026-10-01 | B1 | 1 | 30 000 |
| Все разрешённые | 2026-09-01 | 2026-09-05 | A1 | 1 | 10 000 |
- Фильтр
- Все разрешённые
- Начало включительно
- 2026-09-01
- Конец исключительно
- 2026-10-01
- Ожидаемые ID
- A1, A2, B1
- Строк
- 3
- Сумма, руб.
- 60 000
- Фильтр
- Север
- Начало включительно
- 2026-09-01
- Конец исключительно
- 2026-10-01
- Ожидаемые ID
- A1, A2
- Строк
- 2
- Сумма, руб.
- 30 000
- Фильтр
- Юг
- Начало включительно
- 2026-09-01
- Конец исключительно
- 2026-10-01
- Ожидаемые ID
- B1
- Строк
- 1
- Сумма, руб.
- 30 000
- Фильтр
- Все разрешённые
- Начало включительно
- 2026-09-01
- Конец исключительно
- 2026-09-05
- Ожидаемые ID
- A1
- Строк
- 1
- Сумма, руб.
- 10 000
Требования, связанные с проверками
| ID | Требование | Будущая проверка |
|---|---|---|
| R-MET1 | Экран связывает M1 с правилом и CONTROL-v1, показывает период, единицу и срез | T-BASE: A1/A2/B1; 3 строки; 60 000 руб. |
| R-FLT1 | Фильтр подразделения влияет на M1 и детали; сброс не меняет права | T-FILTER: Север 30 000; Юг 30 000 только разрешённой роли; сброс компании 60 000 |
| R-RIGHT1 | Роль Севера не получает данные Юга через фильтр, ссылку или экспорт | T-RIGHT: две согласованные роли, фиксация ответа и набора |
| R-STATE1 | Полный срез, пустота, неполнота и ошибка различаются | T-EMPTY, T-BAD и T-REFRESH; ноль только для корректной пустоты |
- ID
- R-MET1
- Требование
- Экран связывает M1 с правилом и CONTROL-v1, показывает период, единицу и срез
- Будущая проверка
- T-BASE: A1/A2/B1; 3 строки; 60 000 руб.
- ID
- R-FLT1
- Требование
- Фильтр подразделения влияет на M1 и детали; сброс не меняет права
- Будущая проверка
- T-FILTER: Север 30 000; Юг 30 000 только разрешённой роли; сброс компании 60 000
- ID
- R-RIGHT1
- Требование
- Роль Севера не получает данные Юга через фильтр, ссылку или экспорт
- Будущая проверка
- T-RIGHT: две согласованные роли, фиксация ответа и набора
- ID
- R-STATE1
- Требование
- Полный срез, пустота, неполнота и ошибка различаются
- Будущая проверка
- T-EMPTY, T-BAD и T-REFRESH; ноль только для корректной пустоты
Пользовательский фильтр полного доступа и область роли работают по-разному. Руководитель компании может выбрать Север, Юг или сбросить фильтр к A1/A2/B1. Разрешённый набор руководителя Севера изначально равен A1/A2. Поэтому его сброс возвращает A1/A2 и 30 000 рублей, а не весь CONTROL-v1.
Состояния тоже нельзя объединять. Корректная пустая выборка означает: источник полный, подходящих строк нет, итог известен и равен нулю. Пропуск amount, повтор ID или отказ обновления означает, что новый полный результат не получен. В последнем случае прежние 60 000 рублей можно показать только как архивный CONTROL-v1 с настоящими датой и версией.
Дальнейшие действия по EX-D02:
- согласовать методику, источник, роли и версию набора;
- выполнить программу в названной разрешённой среде;
- записать факт отдельно от ожидания;
- исправить расхождения и повторить затронутые проверки на новой версии;
- принять решение и передать материалы в договорном объёме.
Результат примера: готов шаблон требований и ожидаемых результатов. Арифметика контрольных строк проверена. Фактическая приёмка интерфейса, прав и обновления не проводилась.
Совпадение одной суммы не подтверждает правильную выборку. Селектор не расширяет права. Ошибка источника не равна нулю. Если подразделения спорят о формуле, сначала утверждают методику и её версию, а затем пересчитывают ожидания.
Если вам нужен дашборд по собственным данным, подготовьте выбранный управленческий вопрос, обезличенный образец, определение показателя и пример ожидаемого результата. Добавьте пользователей, фильтры и допустимые действия. Со Switch On AI можно обсудить задание и критерии приёмки дашборда. Не передавайте через открытую форму рабочие базы, секреты и персональные данные.
Вопросы по этой задаче
Что делать, если подразделения считают один показатель по-разному?
Назначить владельца методики и описать различия в источнике, дате отбора, статусах, единицах и исключениях. Затем согласовать единое правило либо создать разные явно названные показатели. В ТЗ нужно зафиксировать версию определения и контрольные строки: техническая платформа сама не разрешает деловой спор.
Как проверить правильность фильтров?
Для каждого значения заранее записать ожидаемые ID, число строк и итог, а также связанные виджеты и контекст детализации. Затем сравнить ожидание с фактом и отдельно проверить сброс, пустую выборку и границы периода. Фильтр и его сброс не должны расширять права роли.
Можно ли начать с одной выгрузки CRM?
Да, если согласованы формат, поля, определение показателей, способ обновления и контрольный пример. MVP Switch On AI показывает ограниченный путь «файл — отдельный расчёт — браузерная сводка», но не подтверждает совместимость с произвольным файлом или готовое постоянное подключение.
Можно ли показывать последний успешный срез при ошибке обновления?
Можно, если такое поведение согласовано. Предыдущий результат должен сохранять настоящую дату и версию, а также заметную архивную метку. Его нельзя обозначать свежим результатом или скрывать ошибку обновления нулём.
Достаточно скрыть вкладку или поставить фильтр подразделения для ограничения доступа?
Нет. Матрица определяет разрешённые данные и действия, а реализация должна проверять права на детали, экспорт и прямые запросы. В приёмке используют согласованные роли и отдельно проверяют разрешённый и запрещённый набор, не заявляя на основании одной проверки полную безопасность.
