January 27, 2021

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

Сегодня наткнулся на ошибку прав доступа после обновления у пользователя с ограниченными правами. При этом пользователь не использует типовые профили с наборами ролей.

Если посмотреть в журнале регистрации мы видим просто ошибку прав без указания места, где она возникла.

Как искать место возникновения такой ошибки.

Я решил посмотреть список добавленных объектов и реквизитов при обновлении.

Я выполнял обновление конфигурации управление холдингом с 3.0.16.6 на 3.0.17.5

и у меня есть файл со списком новых объектов и свойств. Файл я сохраняю в формате MXL как графических результат сравнения двух конфигураций поставщику 3.0.16.6 и 3.0.17.5.

Я храню этот файл присоединенным в технический проект в базе СППР, чтобы потом его не искать.

Ниже скриншот из этого файла, где я вижу добавленные поля в регистр "Учетная политика".

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

Нужно выполнить поиск и посмотреть.

Для этого открываем глобальный поиск - CTRL+SHIFT+F

Если мы ищем запрос, где выполняется чтение регистра, то можно искать текст

"РегистрСведений.УчетнаяПолитика".

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

Получаем процедуру в которой производится считывание поля регистра.

Можно сравнить модули формы элемента справочника договоры контрагентов и убедиться, что предыдущей конфигурации поставщика этой процедуры не было, но оно и понятно так как поле "СпособОтраженияАвансовВыданных" добавлено в предыдущей.

Поле для автоматизации.

Как можно попробовать автоматизировать процесс такой проверки?

Я вижу такой способ. Я выгружаю конфигурацию в файлы, далее имея список изменений конфигураций поставщика старой и новой, а также список измененных объектов и объектов пользователей (все это храню в СППР(, я могу пройтись по выгруженным текстовым файлам в формате *.BSL новой конфигурации поставщика и найти возможные места, где предполагаются ошибки прав доступа.