Сегодня задача очень простая: надо в карточке контрагента добавить флаг «Работает с НДС». Ну, тут всё просто. Открываю Axure, иду на страницу редактирования контрагента и вставляю там чек-бокс между полями «ИНН» и «Заметки».

Опытные разработчики сразу по картинке увидят, в чём косяк такого решения. А я вот что-то зазевался. И пошёл дальше, в карточку контрагента…

Прикинул, как это выглядит в карточке. Получилось вот так.

Задался вопросом — а что, если пользователь галочку не поставил? Мы просто не показываем этот параметр, потому что он пустой? Или пользователь осознанно хотел сказать, что контрагент с НДС не работает? Блин! Решение с чек-боксом не очевидно для пользователя и не подходит для системы для системы.

Я использовал элемент, который умеет работать только с двумя состояниями («вкл», «выкл») там, где нужен элемент, умеющий работать минимум с тремя состояниями («вкл», «выкл», «ни вкл, ни выкл»).

Возвращаюсь к странице редактирования контрагента. Меняю чек-бокс на выпадающий список.

Теперь пользователь может осознанно не заполнять этот параметр (например, если не знает, работает или нет контрагент с НДС) и так же осознанно выбрать из предложенных вариантов.

Формулирую задачу для Codex (это нейросеть, предназначенная для программирования):

Отдельный контрагент. Форма создания-редактирования. Нужно добавить новое поле для контрагентов с типами «Юридическое лицо» и «ИП» (для физлиц не нужно). Размещаем это поле под полем «ИНН» (и над полем «Заметки»).

Работа с НДС — выпадающий список с тремя вариантами: «Выберите вариант» (выбран по умолчанию), «Работает с НДС», «Работает без НДС».

Отдельный контрагент. Карточка контрагента (вкладка «О контрагенте»). Показываем блок «Работа с НДС» только в том случае, если был выбран какой-то вариант, кроме «Выберите вариант».

Вместо резюме. Какие вопросы проектировщика уберегли от плохого интерфейса?

  • Какое значение параметра формы по умолчанию?

  • Как отображается результат, если пользователь не изменял этого значения?

  • Нужно ли в результате отображать параметр, если его значение было пустым?

На самом деле вопросов больше, но для этого конкретного примера хватит и трёх. И да, Codex справился бы и с задачей «Добавь чек-бокс, с помощью которого можно указать, работает ли контрагент с НДС». Но справился бы по какой-то своей логике.

Пост коротковат для статьи, но в посты нельзя вставлять больше одной картинки.