При работе в 1С:Документооборот 3.0 (редакции КОРП или ДГУ) пользователи часто сталкиваются с неприятной ситуацией: при попытке создать или сохранить новый документ (например, исходящее письмо или приказ) система выдает критическую ошибку. В тексте ошибки фигурирует синтаксическая проблема: Параметр ОграничениеДоступаНаУровнеЗаписейУниверсально не существует. В этой статье мы подробно разберем, почему возникает эта ошибка, как она связана с механизмом RLS (ограничение доступа на уровне записей) и какие конкретные шаги нужно предпринять администратору для ее устранения. Часто подобные сложности возникают, когда осуществляется переход с ДО 2.1 на ДО 3.0, требующий особого внимания к деталям миграции прав.
Давайте проанализируем ситуацию. Ошибка возникает в модулях, связанных с электронной подписью и электронным документооборотом (ЭДО), например, в ОбщийМодуль.РаботаСЭП. Причина кроется в архитектурных особенностях версии 3.0. В этой редакции разработчики реализовали обновленный механизм распределения прав доступа, который отличается от стандартных решений в ERP или Управлении торговлей.
Проблема заключается в том, что в конфигурацию включены роли из подсистемы БЭД (Библиотека электронного документооборота). Эти роли используют стандартные шаблоны ограничений доступа, которые ищут параметр сеанса ОграничениеДоступаНаУровнеЗаписейУниверсально. Однако в «1С:Документооборот 3.0» этот параметр не используется, так как система опирается на собственные дескрипторы доступа. Когда обычный пользователь (не полноправный) пытается выполнить действие, система инициирует проверку прав, натыкается на несуществующий параметр в тексте запроса RLS и прерывает работу.
Для исправления ошибки нам необходимо пересмотреть состав Полномочий (профилей групп доступа) проблемных пользователей. Рассмотрим алгоритм действий:
Добавление и изменение электронных документовЧтение электронных документовДобавление и изменение электронных документов (Документооборот)Чтение электронных документов (Документооборот)Чтение электронных документов, связанных с документами предприятияПосле внесения изменений в полномочия крайне важно, чтобы пользователь перезапустил сеанс 1С. В некоторых случаях может потребоваться ручной запуск регламентных заданий для обновления кэша прав.
В «1С:Документооборот 3.0» расчет прав происходит асинхронно. Это означает, что после изменения настроек системе требуется время, чтобы «переварить» изменения. Разберем, какие инструменты нам помогут:
Во-первых, проверьте регламентное задание Обновление прав доступа (оперативное). Оно должно не просто «висеть» в статусе выполнения, а отрабатывать и завершаться успешно. Если задание постоянно активно, возможно, очередь обновления прав слишком велика.
Во-вторых, если права настроены верно, но ошибка сохраняется или данные не отображаются, воспользуемся программным обновлением прав. Для этого можно использовать стандартную обработку или выполнить следующий фрагмент кода в консоли (с осторожностью на больших базах):
// Пример вызова обновления прав доступа для конкретного объекта
Справочники.ДескрипторыДоступаОбъектов.ОбновитьПраваДоступа(СсылкаНаОбъект);
// Или запуск полного обновления через регламентное задание
РегламентныеЗадания.НайтиПоНаименованию("Обновление прав доступа (оперативное)").Выполнить();
В процессе обсуждения часто всплывает вопрос: почему после выполнения задачи или просто в процессе работы задачи исполнителя «пропадают» из списка? Рассмотрим возможные причины этого поведения.
1. Фильтрация в интерфейсе. Это самая частая причина. В форме «Задачи мне» есть гиперссылки-фильтры (например, «В работе», «Все»). Если пользователь случайно переключился в режим «В работе», то завершенные задачи мгновенно исчезают из видимости. Чтобы работа со списками была более наглядной, можно использовать расширение, которое добавляет документ и реквизиты в форме списка Задачи мне.
2. Проблемы с регистром сведений «Данные бизнес-процессов». Иногда данные в списках задач отображаются некорректно из-за десинхронизации регистров. Если вы только завершили миграцию, возможно, вам потребуется закрытие задач «старого» документооборота, чтобы очистить систему от неактуальных хвостов. Для исправления текущих данных:
e1cib/list/РегистрСведений.ДанныеБизнесПроцессов.3. Расчет дескрипторов доступа. Если задача была создана, но исполнитель ее не видит, проверим дескрипторы. В ДО 3.0 за это отвечает механизм, записывающий данные в РегистрСведений.ДескрипторыДоступаОбъектов. Иногда для решения проблем видимости требуется расширить права на просмотр задач сотрудников других подразделений и организаций или применить инструмент для редактирования рабочих групп во внутренних документах.
Если вы столкнулись с неочевидным поведением прав, выполните следующие действия — поможет инструмент детального анализа прав и ограничений RLS.
Воспользуйтесь отчетом «Права доступа», который доступен непосредственно из карточки документа или задачи (меню Еще — Права доступа) — для этого подойдёт отчет для анализа прав доступа и RLS. Также в диагностике поможет анализ настроек доступности по состоянию с помощью внешней обработки. Эти инструменты наглядно показывают, через какое полномочие или рабочую группу пользователь получил доступ к объекту.
Также стоит помнить, что в версии 3.0 настройки прав могут кэшироваться на уровне платформы. При массовых изменениях в профилях иногда помогает очистка серверного кэша и перезапуск службы 1C:Enterprise. Это гарантирует, что новые шаблоны RLS будут прочитаны платформой корректно и без обращения к старым, ошибочным параметрам сеанса.
Таким образом, совместная работа по очистке ролей от «мусорных» заимствований из БЭД и контроль за регламентными операциями позволяют полностью устранить ошибки доступа и обеспечить стабильную работу пользователей в системе 1С:Документооборот.