Как настроить минимальные права доступа в УТ 11.5 и решить ошибку «Поле объекта не обнаружено (СписокДата)»

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Торговля и дистрибуция
← На главную

Переход с конфигурации «Управление торговлей 10.3» на версию 11.5 часто вызывает трудности у администраторов и разработчиков из-за кардинального изменения архитектуры прав доступа. В старых версиях существовала универсальная роль Пользователь, которая давала базовый набор прав для входа в систему. В современных конфигурациях на базе БСП (Библиотеки стандартных подсистем) подход стал модульным. Мы разберем, как собрать минимальный профиль для работы и как избежать типичных ошибок при ограничении прав на документы.

Замена роли «Пользователь»: собираем базовый набор прав

В УТ 11.5 аналога роли Пользователь «в одну кнопку» не существует. Если мы просто назначим пользователю права на чтение конкретного документа (например, заказов клиентов), он не сможет даже запустить сеанс или увидит пустой рабочий стол. Проанализируем, какие роли необходимы для формирования «базового скелета» прав:

  1. Запуск тонкого клиента — это критически важная роль. Без нее система выдаст ошибку «Вид клиента не разрешен» еще на этапе авторизации. Она разрешает использование интерфейса 1С:Предприятия.
  2. Базовые права БСП — эта роль необходима для функционирования системных механизмов: работы с вариантами отчетов, сохранения настроек пользователя, доступа к общим формам и подсистемам.
  3. Чтение общей нормативно-справочной информации — позволяет пользователю видеть справочники, без которых работа с документами невозможна: Валюты, Организации, КлассификаторЕдиницИзмерения. Без этих прав форма документа может не открыться или выдать ошибку доступа к связанным объектам.
  4. Вывод на печать — если предполагается, что пользователь будет печатать счета или накладные, эту роль нужно добавить в профиль обязательно.

Рассмотрим практический совет: чтобы не собирать права с нуля, мы можем взять за основу самый простой типовой профиль, например, Работник склада или Кладовщик. Скопировав его, мы получим готовую структуру, в которой уже прописаны базовые разрешения, и сможем точечно добавлять или удалять нужные объекты.

Поиск нужных ролей для конкретных объектов

Выясним, как быстро определить, какая роль отвечает за доступ к нужному нам документу (например, к Заказу клиента). В конфигураторе 1С есть удобный инструмент для этого. Рассмотрим алгоритм действий:

  1. Откроем дерево конфигурации.
  2. Нажмем правой кнопкой мыши на ветку Роли.
  3. Выберем пункт «Все роли».
  4. В открывшейся матрице в левой колонке найдем объект Документ.ЗаказКлиента (для визуального удобства можно использовать инструмент проверки прав в несколько окон).
  5. В правой части таблицы мы увидим все роли и проставленные галочки (права на чтение, просмотр, редактирование).

Например, в УТ 11.5 за работу с заказами отвечают комплексные роли. Если нам нужно право только на чтение, ищем роль ЧтениеЗаказовКлиентовЗаявокНаВозвратТоваровОтКлиента. Обратите внимание, что в современных версиях права часто объединяются (заказы и возвраты в одной роли), что продиктовано логикой бизнес-процессов.

Решение ошибки «Поле объекта не обнаружено (СписокДата)»

Часто программисты пытаются кастомизировать права через расширение: копируют типовую роль, меняют в ней права на чтение (например, устанавливают RLS) и назначают пользователю вместо стандартной. В этот момент может возникнуть ошибка в динамическом списке:


Поле объекта не обнаружено (СписокДата)
{Документ.ЗаказКлиента.Форма.ФормаСписка.Форма(453)}:СтандартныеПодсистемыСервер.УстановитьУсловноеОформлениеПоляДата(ЭтотОбъект, "Список.Дата", Элементы.СписокДата.Имя);

Проанализируем причину этой ситуации. В УТ 11 формы списков активно используют программное управление оформлением. Когда система строит динамический список, она проверяет права текущего пользователя на каждое поле. Если в вашей новой роли у документа Заказ клиента установлены права на Чтение, но не установлены права на Просмотр (View) для конкретных реквизитов (Дата, Номер, Проведен), то эти колонки просто не включаются в SQL-запрос динамического списка. Код формы, пытаясь обратиться к колонке Список.Дата для установки цвета или шрифта, не находит её и вызывает исключение.

Как исправить:

  1. В расширении откройте вашу скопированную роль.
  2. Найдите нужный документ и перейдите к списку его реквизитов.
  3. Убедитесь, что галочки «Просмотр» стоят не только на уровне всего документа, но и на каждом реквизите, который отображается в списке или используется в программном коде формы. Также существует расширение для управления видимостью реквизитов по пользователям.
  4. Проверьте права на стандартные реквизиты: Дата, Номер, Проведен, ПометкаУдаления.

Особенности реализации ограничения «Только свои документы» (RLS)

Если задача стоит в том, чтобы менеджер видел только свои заказы, в УТ 11.5 не рекомендуется менять роли напрямую. Правильный путь — использование механизма Групп доступа.

Разберем, почему это важно. В типовой конфигурации многие проверки завязаны на программное имя роли. Если вы замените роль ДобавлениеИзменениеЗаказовКлиентов на свою ДобавлениеИзменениеЗаказовКлиентов_МКТ, то встроенные функции РольДоступна() или ПравоДоступа() в программных модулях могут вернуть Ложь, что приведет к скрытию кнопок, команд или даже целых подсистем.

Для настройки ограничения доступа по менеджеру выполните следующие шаги:

  1. Перейдите в раздел НСИ и администрирование — Настройка пользователей и прав.
  2. В профиле групп доступа на закладке Ограничения доступа выберите вид доступа Пользователи (если настроек много, поможет обработка по копированию групп доступа).
  3. Установите значение «Все запрещены, исключения назначаются в группах доступа».
  4. Используйте механизм «Свои данные», если он активирован в настройках параметров учета. Это позволит ограничить видимость документов по полю Менеджер или Ответственный без изменения структуры ролей в конфигураторе.

Помните, что при использовании RLS производительность системы может снизиться, поэтому всегда проверяйте, достаточно ли пользователю прав на просмотр связанных регистров сведений, таких как СостоянияЗаказовКлиентов. Если прав на чтение состояния нет, список заказов может оказаться пустым или работать некорректно, даже если права на сами документы выданы верно.

← На главную