Имя: Пароль:
1C
1С v8
УТ11: Алгоритм поиска недостающих прав
0 bolero
 
26.05.15
21:20
По мере обновлений УТ11 и накопления формальных требований от руководства постоянно лезут вилы с правами доступа.

Например: продажники запускали себе спокойно обработку "Состояние обеспечения заказов", потом вдруг появился заказ на сборку, и у продажников обработка не открывается - нет прав прочитать заказ на сборку.

Или корректировка назначения товаров - в какой-то версии вообще прав никаких не было назначено на этот документ (работал только у суперпользователя), я что-то там доделывал (потерял заметки, что именно), добавлял роль закупщикам, и они делали спокойно корректировки. Потом прошло обновление, роли доступа к документу появились, но видимо не те, работает опять только у суперпользователя. Разбираться заново обидно, потому что не помню ничерта, в какую сторону копал.

Есть какой-то опыт или алгоритм, как выявлять, каких ролей не хватает?
Вот сейчас напоролся на ошибку типа "объект не может быть прочитан", и ни стека, ничего по этому поводу.
1 shuhard_серый
 
26.05.15
21:31
(0)[я что-то там доделывал (потерял заметки, что именно), ]
феерично
2 vde69
 
26.05.15
21:31
журнал регистрации
3 bolero
 
26.05.15
21:43
(1) согласен
с другой стороны, откопать базу из бэкапа и сделать сравнение по времени выйдет больше, чем найти заново

а вообще имею привычку записывать мелкие изменения к типовой с объяснением, зачем оно сделано

а я не погромист, я вообще этим не от хорошей жизни занимаюсь, других задач гора

и корректировку тогда чинил в режиме ошпаренной кошки

(2) если касаться, допустим, "объект недоступен для чтения", то в ЖР та же ошибка без деталей, равно как и в конфигураторе при отладке
4 bolero
 
26.05.15
21:45
погромиста в штат взять не могу, слишком мало задач (стараюсь по максимуму возможности типовой задействовать)

а в фрилансру нет кнопки "показать последние сообщения", чтобы оценить компетенцию потенциального исполнителя
5 vde69
 
26.05.15
21:46
(3) там будет имя таблицы
6 bolero
 
26.05.15
22:11
(5) неа, нету
и форма списка корректировок не открывается (пусто и нет кнопки добавить), хотя ВСЕ типовые роли, касающиеся корректировок, пользователю добавлены

если попытаться открыть уже сделанную корректировку назначения товаров через структуру подчиненности, то выпадает та же самая ошибка без стека

я могу разве что сделать вывод, что типовая роль на чтение не дает прав на чтение
7 Nirvana
 
26.05.15
22:19
Тактика №1 (если известно, к какому объекту нет доступа).
1) Открыть объект метаданных.
2) Открыть права доступа к объекту.
3) Двигаясь курсором по списку ролей, смотреть - на каких ролях появятся галочки в правах доступа.
4) Открывать обнаруженные роли с правами к этому объекту и смотреть все права доступа в этих ролях, оценивая, нужны ли эти права пользователю в данном случае.
5) Вместо п.3 можно также воспользоваться функцией "Все права доступа" в списке ролей - в той таблице легче заметить роли с правами к объекту, но оттуда нельзя эти роли открыть.
8 Nirvana
 
26.05.15
22:19
Тактика №2 (если неизвестно, к какому объекту нет доступа, но известно конкретное место в модуле, где возникает ошибка).
1) Пошагово отлаживать выполнение вплоть до обращения к конкректному объекту, которое вызывает ошибку доступа.
2) Если при отладке не удаётся выйти ни на один объект, повторить всё то же самое с полными правами, выявляя все объекты, к которым требуется доступ в процессе выполнения, и проверяя наличие к ним прав доступа пользователя.
3) При выявлении конкретных объектов, на которых нет права доступа, действовать согласно тактике №1.
9 Nirvana
 
26.05.15
22:19
Тактика №3 (если неизвестно, к какому объекту нет доступа, но известен запрос или отчёт на СКД с запросом-источником данных, где возникает ошибка).
1) Выявить все объекты, к которым обращается запрос, и проверить наличие к ним прав доступа пользователя.
2) Если ко всем объектам есть права доступа, выявить все объекты, типы которых входят в поля составных типов (например, все регистраторы для регистра накопления) и проверить наличие к ним прав доступа пользователя.
3) При выявлении конкретных объектов, на которых нет права доступа, действовать согласно тактике №1.
10 Nirvana
 
26.05.15
22:20
Тактика №4 (если вообще ничего неизвестно).
1) Сделать файловую копию базы.
2) Спровоцировать в ней ошибку прав доступа и анализировать сообщение об ошибке, которое будет более подробным, чем при работе в клиент-серверной базе.
3) Продолжать согласно предыдущим тактикам.
11 bolero
 
26.05.15
22:23
воу-воу, палехче!

ты это сейчас прям настрочил, или держал наготове все эти годы? ;)
12 Nirvana
 
26.05.15
22:26
(6) Если в УТ11 роль называется "Чтение чего-то там", то необязательно она содержит все права на чтение этого объекта. Некоторые из них могут быть в аналогичной роли "Добавление и изменение чего-то там".
Кроме того, часть прав на чтение может быть вообще в совершенно посторонних ролях, у которых установлен флаг независимых прав для подчинённых объектов.
13 Nirvana
 
26.05.15
22:27
(11) Это я только что потренировалась. =)
14 Zhuravlik
 
27.05.15
00:20
(0)(7)(8)(9) предлагаю упростить себе жизнь вот этим http://catalog.mista.ru/public/346452/
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший