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