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

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

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

Как остановить проведение документов в 1С: запрет проведения, отмена проведённых документов, блокировка дат, права пользователей и типичные ошибки.

Проведение документов в 1С — это момент, когда документ начинает формировать движения по регистрам: списывает товар, изменяет остатки, формирует проводки. Иногда проведение нужно остановить: документ ошибочен, данные ещё не проверены, период закрыт или пользователь не должен ничего проводить вовсе. Способов несколько — от простой отмены проведения до настройки прав и программных блокировок.

Выбор метода зависит от задачи. Если нужно разово отменить проведение конкретного документа — достаточно стандартной команды. Если требуется запретить проведение группе пользователей или в закрытом периоде — потребуется настройка прав и дат запрета. Если проведение «зависает» или выполняется слишком долго — это уже вопрос производительности и блокировок в базе.

Отмена проведения отдельного документа

Самая частая задача — сделать уже проведённый документ неактивным. Откройте журнал документов, найдите нужный документ (проведённые отмечены соответствующей пиктограммой), выделите его и выполните команду «Отменить проведение»: через контекстное меню по правой кнопке мыши, кнопку на панели инструментов или меню «Ещё» в форме документа. После этого документ остаётся в базе, но его движения по регистрам удаляются.

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

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

Как отменить проведение документа
  1. 1
    Откройте журнал и найдите документ
  2. 2
    Проверьте структуру подчинённости — нет ли зависимых документов
  3. 3
    Выполните «Отменить проведение» через контекстное меню или кнопку
  4. 4
    Убедитесь, что пиктограмма проведения исчезла
  5. 5
    Проверьте отчёт по регистрам — движения документа должны исчезнуть

Запрет проведения через права пользователей

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

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

Дата запрета изменения данных

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

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

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

Разработчик может остановить проведение в обработчиках событий модуля объекта. Основная точка — обработчик ОбработкаПроведения: установка параметра Отказ = Истина прерывает проведение и откатывает транзакцию. Также проверки делают в ПередЗаписью, если нужно запретить проведение по условию (например, при отрицательных остатках или незаполненном договоре).

1c
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    Если Склад.Пустая() Тогда
        ОбщегоНазначения.СообщитьПользователю("Не указан склад, проведение невозможно");
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры

Для управляемого отключения проведения без изменения кода используют функциональные опции или константы-флаги: обработчик проверяет значение константы «Запретить проведение документов» и при установленном флаге отказывает в проведении. Это позволяет администратору временно «заморозить» учёт, например на время инвентаризации.

Что делать, если проведение зависает или идёт слишком долго

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

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

Частые ошибки при остановке проведения

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

Каждая из этих ошибок встречается на практике регулярно. Самая дорогая — отмена проведения в закрытом периоде без анализа последствий: пересчёт итогов может изменить данные уже сданной отчётности. Перед массовой отменой проведения обязательно делайте резервную копию базы.

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

Контрольные точки

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

Статус документа в журнале
Норма

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

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

Документ всё ещё отображается проведённым

Движения по регистрам
Норма

Отчёт по регистру не содержит записей документа

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

Движения остались — проведение не отменено

Попытка проведения под ограниченным пользователем
Норма

Сообщение о нарушении прав или запрете

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

Документ проводится без ошибок

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

Отказ со ссылкой на дату запрета

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

Документ проводится — дата запрета не настроена

FAQ

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

Да. Выделите в журнале несколько документов (с Ctrl или Shift) и выполните команду отмены проведения. Для больших объёмов используйте обработку «Проведение документов» или групповое изменение реквизитов, но перед этим сделайте резервную копию.

Чем отмена проведения отличается от пометки на удаление?

Отмена проведения оставляет документ рабочим черновиком: его можно исправить и провести снова. Пометка на удаление готовит документ к физическому удалению обработкой «Удаление помеченных объектов» и обычно означает, что документ ошибочен полностью.

Почему кнопка «Отменить проведение» недоступна?

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

Как запретить проведение документов только на будущие даты?

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

Отменится ли проведение при удалении движений документа вручную?

Нет. Ручная очистка движений не снимает признак проведения — документ останется «проведённым» без движений, что приведёт к рассинхронизации данных. Всегда отменяйте проведение штатной командой, а не правкой регистров.

Что делать, если документ не проводится с ошибкой блокировки?

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

Итог

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

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