# Согласование заявок на закупку филиала Собери СТАТИЧНЫЙ макет всего процесса: кликабельные экраны без серверной логики, наполненные правдоподобными примерами. Без пометок «макет», «демо» и «демонстрационная версия» на экране. Это ИНТЕРФЕЙС решения, а не паспорт в виде сайта: первым открывается главный рабочий экран сотрудника (то, с чем он работает каждый день), дальше — экраны остальных шагов процесса. Таблицы, списки и графики сразу заполнены примерами (8–15 строк), пустых состояний «ничего не найдено» при открытии быть не должно. Сведения паспорта (предпосылки, эффект, риски) — одной последней вкладкой «О решении», не первой. # ТЗ НА ИНТЕРФЕЙС ## Что собираем Ускорить обработку заявок на закупку и снизить ошибки в кодах ТРУ через автоматизацию проверки и ведения реестра ## Кто пользуется - Закупщик: проверяет данные, подтверждает код ТРУ, управляет статусами и отправкой - Юрист: просматривает заявки для согласования - Руководитель: просматривает заявки для подписания ## Экраны (первым открывается первый) ### 1. Рабочий стол Закупщика Основной экран для обработки поступивших заявок и проверки данных На экране: - Таблица заявок: номер, инициатор, сумма, статус, источник (1С/почта) - Карточка выбранной заявки с полями: код ТРУ, наличие в плане, сумма - Блок подсказки ИИ: предложенный код ТРУ - Индикатор статуса проверки (ошибка/ок) Действия: - Подтвердить код ТРУ - Вернуть заявку инициатору (при ошибке) - Передать заявку юристу - Отправить в 1С и уведомить инициатора ### 2. Реестр заявок Обзор всех заявок и их текущего статуса для контроля процесса На экране: - Таблица реестра: номер, инициатор, сумма, статус, даты - Фильтры по статусу и источнику - Сводные показатели: количество заявок в работе, обработанных Действия: - Открыть карточку заявки - Экспорт/просмотр реестра ### 3. Согласование (Юрист/Руководитель) Экран для просмотра заявок, переданных на согласование или подпись На экране: - Список заявок, ожидающих действия - Детали заявки: сумма, код ТРУ, обоснование - Статус: ожидает согласования / ожидает подписания Действия: - Согласовать заявку (для юриста) - Подписать заявку (для руководителя) ## Данные - Заявка: номер, инициатор, сумма, статус, даты, код ТРУ, наличие в плане, источник - Реестр: номер заявки, статус, дата поступления, дата обработки ## Путь сотрудника - Закупщик видит новую заявку на Рабочем столе - Закупщик проверяет данные и подтверждает код ТРУ из подсказки ИИ - При ошибке Закупщик возвращает заявку инициатору - При успехе Закупщик передает заявку юристу - Юрист согласовывает заявку на экране Согласования - Руководитель подписывает заявку на экране Согласования - Закупщик отправляет заявку в 1С и уведомляет инициатора ## Что делает ИИ - Подсказывает код ТРУ на Рабочем столе Закупщика - Ведет реестр заявок (обновление статусов и дат) ## Что проверяет и решает человек - Закупщик проверяет код ТРУ, наличие в плане и сумму - Закупщик решает о возврате заявки при ошибке - Юрист согласовывает заявку - Руководитель подписывает заявку - Руководитель разбирает спорные случаи (ошибки ИИ) # КОНТЕКСТ (для понимания процесса; на экраны целиком не выносить) # ПАСПОРТ ИИ-РЕШЕНИЯ | Поле | Значение | |---|---| | Наименование | Согласование заявок на закупку филиала | | Исполнитель | владелец процесса – сборка на платформе Vibe AI | | Пользователь | Закупщик, Юрист, Руководитель | | Дата внедрения | – | ## 1. Предпосылки - Заявки на закупку поступают из 1С и письмами, около 150 в месяц - Процесс включает ручную проверку данных (код ТРУ, план, сумма) и последовательную передачу между участниками ## 2. Входные данные и источники - Заявки из 1С и электронной почты - Реестр в Excel: номер, инициатор, сумма, статус, даты ## 3. Процессы для внедрения ИИ - Проверка по чек-листу - Подсказка кода ТРУ - Ведение реестра и напоминания ## 4. Шаги процесса - Поступление заявки из 1С или по электронной почте - Закупщик проверяет код ТРУ, наличие в плане и сумму - ИИ подсказывает код ТРУ и ведет реестр - Закупщик возвращает заявку инициатору при ошибке - Передача заявки юристу для согласования - Руководитель подписывает заявку - Закупщик отправляет заявку в 1С и уведомляет инициатора ## 5. Результат - Реестр и статус заявки для закупщика и руководителя - Сокращение времени обработки и снижение количества ошибок в кодах ТРУ ## 6. Ожидаемый эффект - Быстрая обработка заявок - Меньше ошибок в кодах ТРУ ## 7. Экономический эффект - ≈ 3000 ч в месяц (150 в месяц × 20 ч) — оценка Төре ## 8. Контроль и риски - Ошибка ИИ в коде ТРУ - Ошибка ИИ на дублях ## 9. Меры по снижению - Закупщик проверяет код ТРУ и дубли - Спорные случаи разбирает руководитель ## 10. Формат реализации - Веб-интерфейс на Vibe AI: сначала статичный макет всего процесса, после согласования — рабочее решение Схема процесса (mermaid): flowchart TD S0["Поступление заявки из 1С или по электронной почте"] S1["Закупщик проверяет код ТРУ, наличие в плане и сумму · ИИ"] S0 --> S1 S2["ИИ подсказывает код ТРУ и ведет реестр · ИИ"] S1 --> S2 S3["Закупщик возвращает заявку инициатору при ошибке"] S2 --> S3 S4["Передача заявки юристу для согласования"] S3 --> S4 S5["Руководитель подписывает заявку"] S4 --> S5 S6["Закупщик отправляет заявку в 1С и уведомляет инициатора"] S5 --> S6 ## Объём работы Собирай ровно то, что написано в задании. Не добавляй лишние разделы, журналы и настройки. Для статичной страницы достаточно index.html. Если запрошен статичный макет, не добавляй серверную часть на этом этапе. Если задача требует общего хранения, настоящей регистрации или рабочего приложения, реализуй серверную часть и базу данных средствами Vibe AI. Создай необходимые файлы, таблицы и обработчики, даже если владелец не перечислил их отдельно. Не подменяй общее хранение localStorage или демонстрационным списком. Собственная база приложения не требует интеграции с системами КТ и отдельного утверждения дизайна в экспрессе. При доработке существующего проекта это правило заменяет прежнее ограничение одним HTML-файлом. Проверь сохранение записи, чтение из другой сессии, обработку ошибок и ограничения доступа. Личные данные доступны только уполномоченному пользователю, секреты не попадают в браузерный код. Не придумывай доступы или готовые интеграции. Если публикация серверной части недоступна, укажи конкретную причину и не объявляй функцию работающей. Закончив, опубликуй приложение и сообщи фактический адрес и результаты проверки; сохраняй прежний адрес, если платформа это позволяет. ## Имена файлов Если серверная часть не нужна, скрипт интерфейса называй script.js, стили — style.css. Не создавай в корне проекта файлы app.js, main.js, index.js, server.js, bot.js, app.py, main.py, server.py и package.json со scripts.start: платформа примет проект за серверное приложение и не опубликует статичный сайт. Эти имена — только для настоящего сервера. ## Дизайн — дизайн-система KT AI Весь интерфейс собирай на дизайн-системе KT AI, которая уже лежит в папке проекта `design-system/`. Перед первой строкой вёрстки прочитай `design.md` и `design-system/AGENTS.md` и следуй им. Подключай файлы ДС относительными путями и в этом порядке: `./design-system/kt-ai-fonts.css`, `./design-system/kt-ai-tokens.css`, `./design-system/kt-ai-components.css`, `./design-system/kt-ai-page.css`. Тема по умолчанию — светлая: ``; не ставь `dark` и не ставь `auto` (auto уходит в тёмную по системной теме). `lang` — язык интерфейса из задания: казахский — `kk`, английский — `en`, иначе `ru`. Переключатель темы можно оставить, но открываться страница должна светлой. Цвета, отступы и размеры — только токенами `var(--kt-ai-…)`, иконки — из `design-system/icons/kt-ai-lucide-sprite.svg`. Плашки показателей — `.kt-ai-kpi` (`.value`, `.label`, `.hint`) в полосе `.kt-ai-kpi-strip`; таблицы — по правилам ДС (frameless, `.kt-ai-table-wrap`, числа вправо, `tabular-nums`); графики — чистый SVG/div высотой 190–220px, столбцы 20–28px с радиусом 2px, цвета только `var(--kt-ai-chart-blue|green|orange|pink|red|salmon)`, подсказки значений — `data-kt-tip` + `./design-system/kt-ai-chart-tip.js`. Имена токенов не выдумывай — только существующие в `design-system/kt-ai-tokens.css`: --kt-ai-fg / -fg-muted / -fg-faint, --kt-ai-bg / -bg-soft, --kt-ai-card-bg / -card-border, --kt-ai-border / -border-strong, --kt-ai-primary, --kt-ai-radius-xl / -3xl, --kt-ai-font-sans / -mono, --kt-ai-chart-blue / -green / -orange / -pink / -red / -salmon, --kt-ai-status-ok-fg / -warn-fg / -risk-fg. Несуществующий токен (`--kt-ai-text-primary`, `--kt-ai-bg-surface`, `--kt-ai-font-family`) молча не применится — страница выйдет в Times New Roman без рамок. Классы ДС (`.kt-ai-kpi`, `.kt-ai-card`, `.kt-ai-table`, `.kt-ai-btn`, `.kt-ai-chip`, `.kt-ai-input`) в своём `