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