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