Содержание

Внутреннее приложение для заявок и согласований помогает провести обращение через один понятный маршрут: сотрудник создаёт заявку, ответственный принимает решение, автор видит результат. Начните с конкретного процесса, например заявки на покупку оборудования. Для первой версии достаточно формы, списка, карточки и правил перехода между статусами.
Почта и чаты могут оставаться каналами общения. В приложении хранится запись, по которой видно, кто должен действовать сейчас. Это особенно полезно, когда согласование регулярно останавливается из-за потерянного сообщения или отсутствующего поля.
Начните с журнала учёта заявок
Для учёта заявок сначала нужен список, в котором у каждого обращения есть номер, предмет, текущий статус и срок. Согласование добавляет к этому правила: кто вправе принять решение и при каких условиях. Если эти правила пока не проверены, журнал уже поможет увидеть очередь, но считать его готовой системой согласования рано.
Возьмём пять вымышленных заявок на оборудование. Момент проверки — 23 октября 2026 года, 12:00 по Москве. Это фиксированная учебная точка: результаты не зависят от дня, когда вы читаете статью.
| Номер | Что требуется | Статус | Срок |
|---|---|---|---|
| Z-101 | Монитор для учебного места | На согласовании | 24.10.2026 |
| Z-102 | Клавиатура для стенда | Согласована | 22.10.2026 |
| Z-103 | Кабель для учебного проекта | Выполнена | 21.10.2026 |
| Z-104 | Дополнительная подставка | Отклонена | 20.10.2026 |
| Z-105 | Лампа для рабочего места | На согласовании | 25.10.2026 |
Скачайте учебный журнал CSV. Перенесите записи в пилот вручную или используйте их в тестовом задании. Наличие файла не означает, что в вашей генерации уже есть импорт CSV.
Проверьте три результата. Фильтр «На согласовании» должен оставить Z-101 и Z-105. Незавершённых обращений — три: Z-101, Z-102 и Z-105. Просрочена одна заявка, Z-102: срок прошёл, а выполнение не отмечено. Отклонённую Z-104 и выполненную Z-103 в просроченные не включаем. Для этого примера срок заканчивается в 23:59 по Москве; в своём процессе задайте часовой пояс и правило явно.
Такой набор проверяет фильтры и подсчёт очереди. Он не доказывает сохранение на сервере, защиту чужих записей или работу согласования — для них ниже есть отдельные проверки.
Выберите один вид заявок
Возьмите процесс с понятным окончанием. Заявка на оборудование заканчивается согласованием или отказом; закупка и выдача устройства могут стать отдельными этапами позже. Если сразу объединить закупки, отпуска и служебные поездки, у формы появятся несовместимые поля и правила.
Опишите типичный случай своими словами: «Сотрудник просит монитор, руководитель проверяет обоснование, офис-менеджер видит согласованную заявку». Укажите, что происходит при отказе, кто заменяет отсутствующего согласующего и какие обращения можно отменить.
Первые примеры заполните вымышленными данными. Проверять структуру можно на записи «Монитор для учебного рабочего места» без реальных фамилий и документов.
Разделите роли и действия
У каждого действия должен быть исполнитель. Право открыть список заявок ещё не означает право согласовывать чужие обращения.
| Роль | Что делает | Что проверить |
|---|---|---|
| Автор | Создаёт заявку, читает решение, отменяет своё обращение | Не меняет решение руководителя |
| Согласующий | Рассматривает назначенные заявки, пишет комментарий | Не получает доступ к чужому подразделению без основания |
| Исполнитель | Видит согласованные обращения и отмечает выполнение | Не согласовывает заявку вместо руководителя |
| Администратор | Настраивает процесс и доступ | Его действия можно отличить от действий сотрудника |
Начните с тех ролей, которые действительно нужны вашему процессу. Если заявку рассматривает один человек, сложная цепочка заместителей пока не поможет проверить основную работу.
Задайте статусы и условия перехода
Для учебного процесса подойдут статусы «Черновик», «На согласовании», «Согласована», «Отклонена» и «Выполнена». Важны условия перехода: например, отклонение требует комментария, а выполненной может стать только согласованная заявка.
Составьте короткий список запретов. Автор не должен переводить обращение в «Согласована». Повторное нажатие не создаёт ещё одну заявку. Изменение суммы после согласования должно либо отправлять запись на повторное рассмотрение, либо быть запрещено. Выберите одно правило заранее.
История решений пригодится при споре: кто изменил статус, когда и с каким объяснением. Наличие красивой ленты событий в интерфейсе проверьте повторным открытием карточки и другим аккаунтом.
Подготовьте задание для конструктора
Создай внутреннее веб-приложение для согласования заявок на оборудование.
Роли: автор заявки, согласующий руководитель, исполнитель.
Поля: номер, название оборудования, обоснование, сумма, автор,
согласующий, дата создания, статус, комментарий решения.
Статусы: Черновик, На согласовании, Согласована, Отклонена, Выполнена.
Экраны: мои заявки, заявки на согласование, карточка и форма.
Автор может редактировать только свой черновик и отправить его на рассмотрение.
Согласующий принимает или отклоняет назначенную заявку.
При отклонении комментарий обязателен.
Исполнитель отмечает выполнение согласованной заявки.
Записывай историю смены статуса и показывай текущего ответственного.
Используй вымышленные учебные записи. Не подключай почту, платежи и рассылки.
Проверь права на сервере, а не только видимость кнопок.
Если сохранение, роли или история пока не реализованы, явно сообщи об этом.Адаптируйте задание и проверьте свою версию по критериям статьи.
Запустить ТЗ в mottorableДля базового журнала начните с решения для учёта заявок. Если нужен отдельный маршрут согласования, опишите его как доработку и после генерации проверьте каждый переход и запрет. Общая подготовка задания разобрана в гайде по созданию веб-приложения.
Проверьте доступ двумя аккаунтами
Войдите как автор, отправьте заявку и запишите её адрес. Затем откройте эту ссылку под другим сотрудником. Проверьте чтение, редактирование и согласование отдельно. Запрет должен действовать и при прямом обращении к данным, даже если кнопки скрыты.
Рекомендации OWASP по авторизации предусматривают проверку разрешений для каждого запроса и отказ в доступе по умолчанию. Для владельца процесса практическая проверка выглядит просто: сотрудник видит только положенные ему записи и действия. Если результат нельзя подтвердить, оставьте пилот на учебных данных.
Проверьте также одновременную работу: два согласующих открыли одну карточку и приняли разные решения. Приложение должно объяснить конфликт и показать фактическое состояние записи.
Запустите пилот и соберите обращения
Назначьте владельца процесса, который отвечает на вопросы и принимает изменения. Дайте участникам короткую инструкцию: где создать заявку, где узнать решение и куда сообщить об ошибке. В течение пилота записывайте конкретные затруднения: человеку непонятно поле, не видно ответственного, решение не сохранилось.
Измеряйте время между отправкой и решением на своих обращениях. Без этих наблюдений нельзя обещать, что приложение ускорило согласование. Если сотрудники продолжают согласовывать в чате, выясните причину до расширения функций.
Расходы на доработку и поддержку включите в расчёт эксплуатации. Отдельно проверьте, какие сведения и файлы вы собираете: подготовиться поможет материал о данных и владении.
Частые вопросы
Что делать, если фильтр «Мои заявки» показывает нужные записи, но чужие доступны по ссылке?
Фильтр решает задачу навигации. Ограничение доступа должно действовать на сервере при чтении и изменении записи. Если по вашему процессу сотрудник не должен видеть чужие обращения, пилот с реальными данными до исправления не запускайте.
Можно ли согласовывать несколько видов заявок в одном приложении?
Можно спроектировать общий список, но у разных процессов будут свои поля и правила. Сначала проверьте один вид заявок; объединяйте процессы, когда понятно, что у них действительно общее.
Обязательны ли уведомления на старте?
Первый маршрут можно проверить по списку назначенных заявок. Если без уведомлений сотрудники пропускают задачи, добавьте их отдельным этапом с проверкой доставки и прав получателя.
Можно ли хранить вложения с документами сотрудников?
До загрузки выясните состав сведений, условия обработки, доступ и удаление. Для учебного пилота используйте вымышленные файлы без персональных данных.
Как понять, что приложение готово к пилоту?
Каждая роль проходит свой маршрут, записи сохраняются, чужие обращения защищены, отказ и повторное действие обработаны. У команды есть владелец процесса и способ сообщить об ошибке.