При работе с механизмами 1С, особенно с подсистемой присоединенных файлов, разработчики часто сталкиваются с ситуацией, когда даже при наличии прав на «Запись» в объекте, пользователь получает сообщение: «Ошибка создания нового файла. У пользователя не достаточно прав на исполнение операции над базой данных». Рассмотрим, как правильно диагностировать эту проблему и устранить её.
Первое, что необходимо сделать при получении ошибки прав — это обратиться к Журналу регистрации. Часто мы пытаемся «угадать», каких именно прав не хватает, добавляя все роли подряд, что является ошибкой. Поступим иначе:
Журнал регистрации.Справочнику.ПрисоединенныеФайлы или к конкретному РегиструСведений — программа пыталась обратиться и получила отказ.Запомните: пользователь без прав администратора не увидит подробностей ошибки в журнале, поэтому важно проводить диагностику именно под учетной записью с полными правами.
Частая причина заключается в том, что права на справочник файлов — это не единственный набор прав, необходимый для работы. Рассмотрим, что именно нужно проверить:
Чтение самого документа-владельца или связанных метаданных. Убедитесь, что у пользователя есть хотя бы базовая роль для просмотра объектов системы.РегистрыСведений для хранения версий и прав доступа. Проверьте, есть ли у роли права на чтение и запись соответствующих регистров, которые использует ваша подсистема (например, ВерсииФайлов).Разберем типичную архитектуру. Допустим, мы создали Справочник.ПрисоединенныеФайлы. Для его корректной работы необходимо:
Во-первых, проверить соответствие типов. Убедитесь, что ваш документ добавлен в соответствующий ОпределяемыйТип (например, ВладелецПрисоединенныхФайлов). Если связь на уровне метаданных не задана, подсистема просто не позволит создать запись.
Во-вторых, обратите внимание на подчинение. Если справочник подчинен документу, проверьте настройки доступа к этому подчиненному объекту:
// Пример программной проверки доступности владельца,
// которую можно использовать для отладки:
Если Не ПравоДоступа("Добавление", Метаданные.Справочники.ПрисоединенныеФайлы) Тогда
// Вывод сообщения или логирование прав
ЗаписьЖурналаРегистрации("Права", УровеньЖурналаРегистрации.Ошибка, , , "Нет прав на создание файлов");
КонецЕсли;
Начинающие разработчики часто задаются вопросом: «Влияет ли название справочника ПрикрепленныеФайлы против ПрисоединенныеФайлы на права?». Ответ однозначный: нет, не влияет. Платформа 1С идентифицирует объекты по их внутренним идентификаторам (UUID), а не по именам, заданным разработчиком. Проблема всегда кроется в конфигурации прав (ролей) или в ограничениях доступа.
Чтобы избежать подобных ошибок в будущем, придерживайтесь алгоритма:
Журнал регистрации под администратором — это даст 90% ответов на вопросы.Документы, к которым файлы крепятся, а также на связанные РегистрыСведений.Чтение. Иногда отсутствие базовой роли Чтение на документ блокирует любые операции с его подчиненными объектами.Проанализировав эти пункты, вы сможете быстро локализовать и исправить проблему прав доступа в любой конфигурации 1С.