Можно ли ограничить доступ к реквизитам табличной части (Цене, Сумме) типовыми средствами?

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

В практике настройки прав доступа в конфигурациях 1С, особенно в торговых решениях, таких как 1С:Управление Торговлей 11, часто возникает задача скрыть коммерческую информацию от линейного персонала. Например, кладовщику или стажеру необходимо работать с документом ЗаказКлиента, но видеть цены и суммы продаж ему не положено. Или, как в нестандартном случае автора темы, нужно скрыть даже количество.

В этой статье мы подробно разберем, как решить эту задачу типовыми средствами платформы, проанализируем настройки ролей (RLS), рассмотрим использование расширений конфигурации и предупредим о неочевидных технических рисках такого подхода.

Постановка задачи

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

Решение 1: Настройка прав доступа (Роли и RLS)

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

Для реализации этого метода нам потребуется доступ к конфигуратору. Давайте разберем алгоритм действий:

  1. Откроем конфигурацию (или создадим расширение, что предпочтительнее, об этом ниже).
  2. Найдем роль, назначенную целевому пользователю (или создадим новую специфическую роль, например, МенеджерБезЦен).
  3. В окне прав роли найдем документ ЗаказКлиента.
  4. Раскроем дерево метаданных документа до уровня табличной части Товары.
  5. Внутри табличной части найдем интересующие нас реквизиты: Цена, Сумма, СуммаНДС, Количество.
  6. Для каждого из этих реквизитов в правой части окна настроек снимем флажок с права Просмотр.

После применения такой настройки платформа физически перестанет передавать значения этих полей на клиентскую часть для пользователя с данной ролью. Вместо чисел он будет получать пустые значения (NULL или 0, в зависимости от контекста запроса).

Критические риски при скрытии ключевых полей

Необходимо обратить пристальное внимание на важный аспект, который часто упускают при настройке RLS на отдельные поля. Типовые конфигурации, такие как УТ 11, ERP или КА, содержат сложную логику работы форм документов.

Форма документа ЗаказКлиента при открытии и редактировании производит множество вычислений "на лету":

Если мы заберем у пользователя право на чтение поля Количество или Цена, программный код формы при попытке обратиться к этим данным (например, для вычисления: Сумма = Цена * Количество) не сможет получить значение. В лучшем случае сумма станет равной нулю, что исказит документ при записи. В худшем — пользователь получит ошибку исполнения кода и не сможет открыть форму документа вовсе.

Вывод: Скрытие полей, участвующих в математике документа (Цена, Количество), через RLS требует обязательного тестирования работы формы. Скорее всего, потребуется доработка кода формы в расширении, чтобы добавить проверки на наличие прав перед выполнением расчетов.

Решение 2: Использование расширений конфигурации

Чтобы не снимать основную конфигурацию с поддержки ради настройки одной роли, мы рекомендуем использовать механизм Расширений. Это современный стандарт доработки типовых решений.

Порядок действий:

  1. Создаем новое расширение конфигурации.
  2. Заимствуем в него нужную роль (или создаем новую прямо в расширении).
  3. Заимствуем сам документ ЗаказКлиента (только структуру, без данных).
  4. В расширении настраиваем права доступа к реквизитам табличной части, снимая галочку Просмотр для цен и сумм.

Это позволяет обновлять основную конфигурацию в автоматическом режиме, сохраняя наши ограничения доступа.

Решение 3: Визуальное скрытие (Интерфейсный подход)

Если задача состоит не в жесткой защите данных, а в том, чтобы "не мозолить глаза" или упростить интерфейс, можно использовать более мягкие методы. Однако помните: эти методы не защищают данные от намеренного просмотра продвинутым пользователем.

Вариант А: Настройка формы

Администратор может зайти в документ под пользователем и выполнить:

  1. Меню «Ещё» — «Изменить форму».
  2. Снять галочки с колонок Цена, Сумма, Количество.
  3. Применить настройки.

Недостаток: Пользователь может зайти в то же меню и вернуть галочки обратно.

Вариант Б: Условное оформление

В конфигураторе или в режиме предприятия можно настроить условное оформление формы:

  1. Задать условие (всегда Истина или для конкретной роли).
  2. Оформляемые поля: Цена, Сумма.
  3. Настройка оформления: Установить параметр Текст = "Скрыто" или задать ЦветТекста совпадающим с ЦветФона.

Недостаток: Значение все еще находится в ячейке, его можно скопировать в буфер обмена и вставить в Excel или блокнот, чтобы увидеть реальную цифру.

Решение 4: Архитектурный подход (Отчеты и АРМ)

Проанализируем вопрос с точки зрения бизнес-процесса. Если пользователю не нужно видеть количество и цены в заказе, возможно, документ — это не тот инструмент, который ему нужен.

Как справедливо заметили участники обсуждения:

Специализированные рабочие места

В УТ 11 существует функционал "Самообслуживание" и упрощенные интерфейсы для торговых представителей. Проверьте, возможно, стоит переключить пользователя на такой интерфейс, где лишние поля скрыты штатно, вместо того чтобы "выпиливать" колонки из основного рабочего места менеджера.

Резюме

Подведем итог. Ограничить доступ к реквизитам ТЧ типовыми средствами можно, используя механизм Ролей и настройки прав доступа к реквизитам.

Однако, применяя этот метод для критически важных полей (Количество, Цена), будьте готовы к тому, что:

  1. Потребуется использование Расширения конфигурации для безопасного внедрения.
  2. Высока вероятность возникновения ошибок в программном коде форм, так как типовая логика УТ 11 не рассчитана на отсутствие доступа к количеству или цене при расчете итогов.
  3. В печатных формах эти колонки будут пустыми, что может сделать документ непригодным для использования.

Мы рекомендуем использовать этот метод только для полей, не влияющих на математику документа (например, СуммаЗакупки, Комментарий), а для основных полей рассмотреть вариант создания специализированных отчетов или использования профильных документов (ордеров).

← На главную