Как предсказывать возможные ошибки прав доступа после обновления.
Сегодня наткнулся на ошибку прав доступа после обновления у пользователя с ограниченными правами. При этом пользователь не использует типовые профили с наборами ролей.
Если посмотреть в журнале регистрации мы видим просто ошибку прав без указания места, где она возникла.
Как искать место возникновения такой ошибки.
Я решил посмотреть список добавленных объектов и реквизитов при обновлении.
Я выполнял обновление конфигурации управление холдингом с 3.0.16.6 на 3.0.17.5
и у меня есть файл со списком новых объектов и свойств. Файл я сохраняю в формате MXL как графических результат сравнения двух конфигураций поставщику 3.0.16.6 и 3.0.17.5.
Я храню этот файл присоединенным в технический проект в базе СППР, чтобы потом его не искать.
Ниже скриншот из этого файла, где я вижу добавленные поля в регистр "Учетная политика".
Я могу предположить, что если добавились новые поля, то где-то производится считывание этих полей в новой конфигурации. Скорей всего в запросе.
Нужно выполнить поиск и посмотреть.
Для этого открываем глобальный поиск - CTRL+SHIFT+F
Если мы ищем запрос, где выполняется чтение регистра, то можно искать текст
"РегистрСведений.УчетнаяПолитика".
В результате поиска , зная какие объекты использует пользователь для работы, в моем случае пользователь не смог добавить новый договор я открываю строку выделенную желтым.
Получаем процедуру в которой производится считывание поля регистра.
Можно сравнить модули формы элемента справочника договоры контрагентов и убедиться, что предыдущей конфигурации поставщика этой процедуры не было, но оно и понятно так как поле "СпособОтраженияАвансовВыданных" добавлено в предыдущей.
Поле для автоматизации.
Как можно попробовать автоматизировать процесс такой проверки?
Я вижу такой способ. Я выгружаю конфигурацию в файлы, далее имея список изменений конфигураций поставщика старой и новой, а также список измененных объектов и объектов пользователей (все это храню в СППР(, я могу пройтись по выгруженным текстовым файлам в формате *.BSL новой конфигурации поставщика и найти возможные места, где предполагаются ошибки прав доступа.