Pull to refresh

1C: Предприятие, или как я напоролся на грабли интерфейса

Reading time 2 min
Views 14K
Предыстория

Так уж получилось, что по долгу службы мне приходится временами иметь дело с желтой программой, и субъективно она не очень-то мне нравится, но то, что случилось вчера сподвигло меня на написание этого поста.

Исходные данные: конфигурация «Управление торговым предприятием для Казахстана», мой не извращенный 1С мозг, и простая задача — выставить пользователю необходимые права. Сказано — сделано, ничего сложного, обычное стандартное действие. Но через какое-то время одна из бухгалтеров стала жаловаться на такую ошибку:



Раз вылезает ошибка, значит надо разбираться, почесал репу и полез воевать с проблемой. Сначала проверил права доступа и сравнил с другими пользователями, у которых все работало корректно — все одинаково, чекбокс в чекбокс. Покурил код — ничего. Через час стараний пришла подмога в виде коллеги, еще минут десять-пятнадцать жмаканий различных кнопок, чекбоксов, курения кода — опять ничего. И тут коллега совершил очень странное, на мой взгляд, действие — снял чекбоксы прав пользователя, вернул их в то состояние, в котором они были пару секунд назад и нажал кнопку «Записать».

О, чудо! Все работает. Но почему?

Чтобы это понять, давайте посмотрим на следующий скриншот:



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

Как этого можно было бы избежать?



Вариант 1.

Поместить чекбокс над всеми остальными, отделив его от общей массы (элемент 1) и убрать элемент 2 за ненадобностью.
  • При выставление галочки «Полные права» автоматические проставлять все остальные флажки
  • При снятии галочки «Полные права» автоматические снимать все остальные флажки, а лучше — возвращать их в то состояние, в которым они были до выставления полных прав
  • При снятии какого-либо флажка снимать автоматически «Полные права»

Вариант 2.

Хотя бы проверять состояние флага «Полные права» и, отталкиваясь от него, принимать решение, игнорировать все остальные чекбоксы или нет.

Может, кто-то скажет, что я не осилил желтую программу, и, возможно, будут правы. Но зачем пользователю читать кучу документации, чтобы понять в каком порядке нужно ставить чекбоксы (честно говоря, я не знаю, рассмотрен ли в ней вообще данный момент), чтобы все работало, если можно всего лишь сделать интуитивный и привычный для многих интерфейс, исключающий данную ошибку?

UPD: Мы тут говорим не про конфигурации и сложности их реализации, а про интерфейсы.
Tags:
Hubs:
+20
Comments 77
Comments Comments 77

Articles