При разработке или тонкой настройке ролей пользователей в 1С на базе Библиотеки стандартных подсистем (БСП) часто возникает ситуация, когда при попытке открыть присоединенные файлы к объекту система выдает ошибку выполнения метода контекста:
{ОбщаяКоманда.ПрисоединенныеФайлыКОбъекту.МодульКоманды(11)}: Ошибка при вызове метода контекста (ОткрытьФорму)
ОткрытьФорму("ОбщаяФорма.ПрисоединенныеФайлы", ...
по причине:
Недостаточно прав для просмотра
Администратор или разработчик при этом уже включил права на команду ОбщаяКоманда.ПрисоединенныеФайлыКОбъекту, на общую форму ОбщаяФорма.ПрисоединенныеФайлы и на сам справочник присоединенных файлов (например, Справочник.ДоговорыКонтрагентовПрисоединенныеФайлы). Однако форма все равно отказывается открываться, либо открывается с пустыми данными, а при обращении к свойствам объекта возникает ошибка доступа. Разберем по шагам, почему платформа так себя ведет и как правильно предоставить доступ.
Проанализируем ситуацию изнутри. Общая форма ПрисоединенныеФайлы является универсальной: в зависимости от типа переданного объекта-владельца динамический список формы программно настраивается на работу с конкретным справочником файлов. При открытии формы выполняются следующие действия:
ПриОткрытии) происходит обращение к реквизитам объекта, таким как дата модификации, признак подписания, статус шифрования:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ДатаМодификации = МестноеВремя(ЭтотОбъект.Объект.ДатаМодификацииУниверсальная);
УстановитьДоступностьКомандСпискаЭП();
УстановитьДоступностьКомандСпискаШифрования();
КонецПроцедуры
Если у текущей роли пользователя отсутствует право на просмотр хотя бы одного из полей, которые фигурируют в коде формы, в запросе динамического списка или в его условном оформлении, платформа 1С аварийно прерывает выполнение ОткрытьФорму с исключением «Недостаточно прав для просмотра». Более того, если права на объект настроены частично, на клиенте реквизит формы типа ДанныеФормыСтруктура просто не содержит недоступных полей, из-за чего при попытке прочитать их возникает ошибка.
Рассмотрим распространенную ловушку в конфигураторе 1С. При настройке роли разработчик часто устанавливает галочки «Чтение» и «Просмотр» на уровне самого справочника файлов. Однако поведение платформы меняется, если для объекта снят флаг наследования прав или отключена опция автоназначения прав для новых реквизитов.
В этом случае платформа переходит в режим индивидуальной проверки каждого поля. Для полного доступа к объекту недостаточно прав на «шапку» справочника — требуется явно выставить права на:
ДатаМодификацииУниверсальная, ТипХраненияФайла, ХранитьВерсии, СтатусИзвлеченияТекста и другие служебные поля.Ссылка, ПометкаУдаления, Наименование, ВладелецФайла, Код требуют отдельных прав на просмотр и чтение, если иерархия прав была нарушена.ЭлектронныеПодписи и СертификатыШифрования вместе со всеми их реквизитами. Если форма вызывает проверку доступности команд ЭП, отсутствие прав на табличные части приводит к отказу.Подсистема работы с файлами в БСП не ограничивается одним лишь справочником. Для корректного открытия списков и открытия самих файлов пользователю обязательно требуются права на чтение служебных регистров сведений:
РегистрСведений.НаличиеПрисоединенныхФайлов — используется для быстрого отображения признака «скрепки» в списках документов.РегистрСведений.ДвоичныеДанныеФайлов — именно в нем физически хранятся файлы, если в информационной базе выбран вариант хранения в таблицах базы данных, а не в томах на диске.РегистрСведений.БлокировкиДляРедактирования — хранит информацию о том, кем из пользователей занят файл для редактирования.Справочник.ТомаХраненияФайлов — если файлы вынесены на сетевые или локальные тома (также требуются права учетной записи службы сервера 1С на уровне операционной системы).Выясним причину и последовательно применим одно из решений в зависимости от структуры вашей конфигурации.
Если конфигурация разработана на базе типовых библиотек 1С, наиболее надежный путь — отказаться от ручной расстановки прав на низкоуровневые объекты БСП и назначить пользователю предопределенные роли:
ЧтениеФайлов — дает права на чтение всех справочников присоединенных файлов, их реквизитов и регистров данных.ДобавлениеИзменениеФайлов — предоставляет права на создание, редактирование и прикрепление новых версий.БазовыеПраваБСП — открывает доступ к вспомогательным общим формам и общим командам.Эти роли уже содержат корректно настроенный состав прав ко всем служебным таблицам и исключают человеческий фактор при добавлении новых реквизитов.
Если требуется создать строго ограниченную роль без типовых профилей, выполним детальную настройку в дереве метаданных роли:
Справочник.ДоговорыПрисоединенныеФайлы).ДвоичныеДанныеФайлов, НаличиеПрисоединенныхФайлов и БлокировкиДляРедактирования.Справочник.ДоговорыКонтрагентов). Если у пользователя нет доступа к родительскому документу, форма файлов не сможет открыться по переданной ссылке.Если права на уровне метаданных выданы полностью, но ошибка сохраняется при включенном ограничении на уровне записей (RLS):
КлючиДоступаКОбъектам и КлючиДоступаКРегистрам), а также проверить актуальность записей в справочнике ИдентификаторыОбъектовМетаданных.