К статье
Практический материал

Администрирование · 11 мин

Как в 1С запретить изменение документа

Как запретить изменение документа в 1С: даты запрета редактирования, права доступа, статусы, блокировка по условию и программные проверки. Пошаговые инструкции.

Запрет на изменение документа в 1С — одна из самых частых задач администраторов и бухгалтеров. Ошибочная правка проведённой накладной или закрытого периода способна «поплыть» по остаткам, НДС и регламентированной отчётности, а найти автора изменения без специальных мер бывает непросто. Поэтому в типовых конфигурациях предусмотрено несколько независимых механизмов защиты документов от редактирования.

Выбор способа зависит от того, что именно нужно защитить: весь закрытый период целиком, отдельный документ, документы конкретного вида или документы в определённом состоянии. В типовых решениях (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ERP) доступны даты запрета редактирования, настройка прав доступа, блокировка через статусы и программные проверки в расширениях.

Ниже разобраны все рабочие варианты — от штатных настроек, которые выполняются без программирования, до кода в расширении для нестандартных условий. Для каждого способа указаны ограничения и способ проверки результата.

Дата запрета редактирования — главный штатный механизм

Дата запрета редактирования блокирует изменение и проведение всех документов, дата которых раньше или равна установленной. Это стандартный инструмент закрытия периода: бухгалтер сверил данные, сдал отчётность — и период «замораживается», чтобы никто случайно не перепровёл старые документы.

В 1С:Бухгалтерии 8.3 настройка находится в разделе «Администрирование» → «Поддержка и обслуживание» → «Регламентные операции» → «Настроить дату запрета изменения данных». В 1С:ERP и Управлении торговлей путь аналогичный: «Настройки и администрирование» → «Поддержка и обслуживание». В более старых версиях опция может называться «Даты запрета изменения данных» в разделе настроек прав пользователей.

Дату можно задать тремя способами: общую для всей информационной базы, отдельную для конкретного пользователя или группы пользователей, а также по разделам учёта и объектам (например, закрыть бухгалтерский учёт, но оставить открытым складской). Такая гибкость позволяет, скажем, закрыть период для менеджеров, но оставить доступ главному бухгалтеру.

Как установить дату запрета редактирования
  1. 1
    Откройте Администрирование → Поддержка и обслуживание → Регламентные операции
  2. 2
    Перейдите по ссылке «Настроить дату запрета изменения данных»
  3. 3
    Укажите дату: документы раньше неё станут недоступны для изменения
  4. 4
    При необходимости настройте исключения по пользователям или разделам учёта
  5. 5
    Нажмите «Записать и закрыть» и проверьте под обычным пользователем

После установки даты пользователь без исключений при попытке изменить старый документ увидит сообщение о запрете редактирования. Документ можно открыть и посмотреть, но записать или перепровести его не получится.

Запрет через права доступа и роли

Второй уровень защиты — система прав. Каждому пользователю назначаются роли, а роли определяют, какие действия доступны: просмотр, добавление, изменение, проведение, удаление. Убрав у роли право «Изменение» для конкретного вида документов, вы полностью закрываете редактирование независимо от даты.

В типовых конфигурациях на базе БСП (Библиотека стандартных подсистем) права удобнее настраивать через профили групп доступа: «Администрирование» → «Настройки пользователей и прав» → «Профили групп доступа». Внутри профиля можно разрешить просмотр документов, но запретить их изменение, либо ограничить доступ по организациям, складам или подразделениям.

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

Блокировка документа через статусы и согласование

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

Типовой сценарий: менеджер создаёт заказ и отправляет на согласование, руководитель переводит его в статус «Согласован» — с этого момента менять состав и цены может только пользователь с правом отклонения согласования. Это защищает условия сделки от несанкционированной корректировки после утверждения.

Для финансовых документов в ERP есть отдельный механизм — утверждение заявок на расходование средств. Пока заявка не утверждена, оплата по ней невозможна, а после утверждения изменение суммы требует повторного согласования.

Запрет изменения конкретного документа

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

Второй вариант — механизм блокировки данных, который срабатывает автоматически: пока документ открыт одним пользователем, другие могут смотреть его только в режиме чтения. Это защита от одновременного редактирования, а не от изменений вообще, но она предотвращает конфликты при совместной работе.

Третий путь — журнал регистрации плюс регламент: запрет «де-юре» закрепляется приказом по компании, а факт изменения отслеживается через журнал регистрации (события «Данные. Изменение»). Способ не блокирует правку технически, но делает нарушителя идентифицируемым, что на практике часто эффективнее.

Сравнение способов запрета

Дата запрета редактирования

Подходит для закрытия периодов целиком; не работает для точечной блокировки одного документа

Права и профили доступа

Закрывают вид документов для пользователя полностью; слишком грубый инструмент для отдельных случаев

Статусы и согласование

Гибкая блокировка по состоянию документа; доступна не во всех конфигурациях и видах документов

Программная проверка в расширении

Любые условия блокировки; требует навыков разработки и сопровождения кода

Программный запрет через расширение конфигурации

Если штатных механизмов не хватает — например, нужно запретить изменение документа после выгрузки в ЭДО или после создания на его основании счёта-фактуры — задача решается кодом. Менять типовую конфигурацию напрямую не рекомендуется: это усложняет обновления. Правильный путь — расширение конфигурации.

В расширении заимствуется обработчик «ПередЗаписью» модуля объекта документа, и в нём выполняется проверка условия. Если условие нарушено, вызывается отказ от записи с понятным сообщением пользователю.

bsl
&Перед("ПередЗаписью")
Процедура Расш_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    Если ЭтотОбъект.ДополнительныеСвойства.Свойство("РазрешитьЗапись") Тогда
        Возврат;
    КонецЕсли;
    Если ЗначениеЗаполнено(ЭтотОбъект.НомерВходящегоДокумента)
        И ЭтотОбъект.Проведен Тогда
        Отказ = Истина;
        ВызватьИсключение "Документ заблокирован: изменение запрещено.";
    КонецЕсли;
КонецПроцедуры

Приведённый пример — демонстрационный шаблон: конкретное условие блокировки подставляется под вашу задачу (наличие связанных документов, состояние ЭДО, ответственный, сумма). Для разблокировки администратором обычно предусматривают «ключ» — например, запись через специальную обработку, которая добавляет в ДополнительныеСвойства признак «РазрешитьЗапись».

Проверка результата и типичные ошибки

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

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

Типичные ошибки
01
Проверка запрета под администратором — ограничение кажется неработающим, хотя для обычных пользователей оно действует
02
Забытое исключение для пользователя обмена данными — распадается синхронизация с другими системами
03
Установка даты запрета без предупреждения пользователей — поток звонков «документ не проводится»
04
Доработка типовой конфигурации вместо расширения — сбой при очередном обновлении
05
Запрет только на изменение, но не на пометку удаления и отмену проведения — документ всё равно можно вывести из учёта
Контрольные точки

Как проверить результат

Открытие документа обычным пользователем
Норма

Документ открывается на просмотр, поля недоступны для правки

Тревожный признак

Документ редактируется и сохраняется без сообщений

Попытка перепроведения
Норма

Сообщение о запрете изменения данных

Тревожный признак

Документ перепроводится, движения пересчитываются

Работа обменов и регламентных заданий
Норма

Синхронизация проходит без ошибок записи

Тревожный признак

В журнале регистрации ошибки нарушения даты запрета

Итог

Что важно запомнить

Закрывайте периоды датой запрета редактирования, ограничивайте виды документов правами доступа, используйте статусы там, где они есть, а нестандартные условия реализуйте в расширении. Результат всегда проверяйте под учётной записью обычного пользователя и не забывайте про исключения для обменов.

Часто задаваемые вопросы

Можно ли запретить изменение документа только для одного пользователя?

Да. В настройке дат запрета редактирования переключитесь на вкладку «По пользователям» и задайте индивидуальную дату для конкретного сотрудника или группы. Альтернатива — отдельный профиль группы доступа с урезанными правами на нужный вид документов.

Почему дата запрета не срабатывает для некоторых пользователей?

Чаще всего у этих пользователей есть роль с правом администрирования или дата запрета для них переопределена индивидуальной настройкой. Проверьте вкладку «По пользователям» в форме настройки дат запрета и состав ролей пользователя.

Как временно разблокировать закрытый период для исправления ошибки?

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

Блокирует ли дата запрета загрузку данных через обмен?

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

Можно ли запретить изменение документа без программирования, если статусов в конфигурации нет?

Да, комбинацией штатных средств: дата запрета по объекту закрывает документы старше заданной даты, а права доступа ограничивают изменение вида документов для отдельных пользователей. Точечная блокировка одного свежего документа без доработки обычно невозможна — в этом случае нужно расширение.

Как узнать, кто изменил документ, несмотря на запреты?

Откройте журнал регистрации (Администрирование → Поддержка и обслуживание → Журнал регистрации) и отфильтруйте по событию «Данные. Изменение» с указанием конкретного документа. Там видны пользователь, время и сеанс. Убедитесь, что в настройках журнала включена регистрация событий изменения данных.