Зачем нужны ограничения прав по полям
В современных 1С:Предприятии 8.3 и более ранних версиях часто возникает необходимость ограничивать доступ к отдельным реквизитам документов или справочников. Это позволяет:
- защитить коммерческую или персональную информацию;
- сократить количество случайных ошибок пользователей;
- соответствовать требованиям внутренних регламентов и законодательства.
Какие инструменты использовать в 1С
Ролевая модель безопасности
В конфигураторе доступны роли, в которых можно задавать права на объекты метаданных (документы, справочники, регистры). Однако права по умолчанию распространяются на весь объект целиком, а не на отдельные поля. Чтобы ограничить поля, нужно использовать расширенные механизмы.
Права на атрибуты (режим «Разделение данных»)
Начиная с релиза 8.3.10 появилась возможность выставлять права на конкретные реквизиты. Порядок действий:
- Откройте конфигуратор → «Безопасность» → «Роли».
- Создайте новую роль или откройте существующую.
- В дереве метаданных выберите нужный объект (например, Справочник.Контрагенты).
- Нажмите «Дополнительно → Атрибуты». Откроется список всех реквизитов.
- Для каждого поля установите:
- Чтение – разрешено или запрещено;
- Запись – разрешено/запрещено;
- Допустимые значения – можно задать фильтр по перечислению или справочнику.
- Сохраните роль и назначьте её пользователям.
Обработка «Запрет на изменение полей» через код
Если встроенных средств недостаточно, применяют обработчики событий в управляемых формах. Пример на 1С-коде:
&НаКлиенте
Процедура ПриОткрытии
Если НЕ ПользовательИмеетПраво("Администратор") Тогда
Элементы.Цена.ReadOnly = Истина;
Элементы.Скидка.Visible = Ложь;
КонецЕсли;
КонецПроцедуры
Комментарий: метод ПользовательИмеетПраво проверяет роль, группу или привилегию, а свойства ReadOnly и Visible скрывают поле или запрещают редактирование.
Расширения конфигурации (Extension)
Если вы работаете в режиме SaaS или облачной подписки 1С:Готовое решение, можно создать расширение и переопределить формы объектов. В расширениях доступны те же обработчики, но без изменения базовой конфигурации.
Пошаговый пример – ограничение доступа к ценам в заказе клиента
- Цель: пользователи отдела логистики не должны видеть закупочные цены в документе «Заказ клиента».
- Действие 1. Создаём роль «ОператорЛогистики».
- Действие 2. В этой роли для объекта Документ.ЗаказКлиента открываем список атрибутов.
- Действие 3. Для реквизита ЦенаВход снимаем галочку Чтение и Запись.
- Действие 4. Публикуем роль в базе и назначаем её нужным сотрудникам.
- Проверка. Открываем документ под пользователем логистики – поле ЦенаВход отсутствует или заблокировано.
Советы и лайфхаки
- Не смешивайте ролевые ограничения и кодовые проверки без необходимости – это усложняет сопровождение.
- Используйте отладку прав (кнопка «Отладка → Проверка прав») для быстрого поиска причин недоступности поля.
- Записывайте все кастомные ограничения в инструкции администратора, чтобы при обновлении 1С не потерять логику.
- Применяйте группы пользователей AD или OpenID – так проще массово управлять доступом к полям.
Подводим итог
Ограничение прав по полям в 1С:Предприятии – это мощный инструмент, который повышает безопасность и снижает риск утечки данных; Начинать стоит с встроенных ролевых механизмов, а при необходимости докручивать логику кодом или расширениями. Главное – строго документировать все изменения и регулярно проверять работу решения после обновлений платформы.
Дата актуальности: 04 июля 2026