Отмена проведения документа в 1С 8.3: когда команда не срабатывает
Содержание
Отменить проведение документа
в 1С 8.3 можно прямо из его формы: нажмите стрелку рядом с кнопкой Провести и выберите Отмена проведения, либо откройте меню Ещё и команду Отмена проведения. Документ останется в базе, но его движения по регистрам удалятся — он вернётся в состояние «записан, но не проведён».
Обратная задача — отменить уже выполненную отмену проведения — решается той же кнопкой Провести: повторное проведение восстанавливает движения. Сложности начинаются, когда команда не срабатывает: висит, выдаёт конфликт блокировок или сообщает, что база занята в монопольном режиме. Ниже — что именно отменяет проведение, почему команда может не пройти и как снять блокировку, не навредив другим пользователям.
Что делает отмена проведения и как её выполнить
Проведённый документ формирует движения в регистрах: остатки на складе, суммы по счетам, взаиморасчёты. Отмена проведения эти движения снимает, а сам документ оставляет. Это не удаление: номер, дата и реквизиты сохраняются, вы просто убираете влияние документа на учёт.
Выполнить отмену можно двумя путями:
- Из формы документа. Откройте документ. Рядом с зелёной кнопкой
Провестиесть стрелка выпадающего списка — в нём командаОтмена проведения. Та же команда дублируется в менюЕщёв правом верхнем углу формы. - Из списка документов. Выделите нужную строку (или несколько строк с
Ctrl), откройте менюЕщёнад списком и выберитеОтмена проведения. Так удобно снимать проведение сразу с группы документов.
После отмены пиктограмма документа в списке меняется: исчезает галочка проведения. Если открыть движения (Ещё → Движения документа или кнопка Дт/Кт в форме), регистры по этому документу будут пусты.
Отмена проведения не трогает связанные документы. Если на основании этого документа введены другие (например, счёт-фактура на реализацию), их движения останутся. Проверяйте всю цепочку.
Чтобы вернуть всё как было, нажмите Провести ещё раз. Движения пересчитаются по текущим данным — это важно, если за время «простоя» поменялись цены, остатки или настройки учёта.
Когда отмену проведения делать не стоит. Если документ стоит в середине длинной цепочки (поступление → перемещение → реализация), снятие проведения у раннего документа ломает остатки у всех последующих: реализация может «уйти в минус» по складу. В таких случаях правильнее не снимать проведение задним числом, а исправить данные и перепровести всю цепочку по порядку дат. Для массового пересчёта в типовых конфигурациях есть групповое перепроведение — им и пользуйтесь вместо ручной отмены десятков документов.
Почему команда не отменяется: конфликт блокировок
Самая частая причина, по которой отмена проведения или повторное проведение не проходит, — конфликт блокировок. 1С выдаёт сообщение вида Конфликт блокировок при выполнении транзакции с именем пользователя, который держит данные.
Механизм такой: при проведении и отмене проведения система ставит управляемые блокировки на записи регистров. Если тот же регистр в этот момент меняет другой сеанс (проводит свой документ, закрывает месяц, формирует отчёт с захватом данных), ваша транзакция ждёт освобождения. По умолчанию ожидание ограничено несколькими секундами — не дождавшись, платформа отменяет операцию и показывает ошибку.
Что делать:
- Повторите команду через минуту. Нередко блокировку держит короткая операция соседа — она завершается, и повтор проходит.
- Посмотрите, кто мешает. В тексте ошибки 1С обычно указывает сеанс и пользователя, удерживающего блокировку. Свяжитесь с коллегой или дождитесь, пока он закончит.
- Не запускайте тяжёлые операции параллельно. Закрытие месяца , групповое перепроведение и восстановление последовательности захватывают много данных. Пока они идут, точечная отмена проведения будет упираться в блокировку.
Конфликт блокировок — это штатная защита целостности учёта, а не поломка. Не пытайтесь «пробить» её перезапуском сеансов других людей: вы оборвёте их несохранённую работу. Сначала выясните причину.
Монопольный режим и установка блокировки на базу
Второй стоп-фактор — монопольный (эксклюзивный) режим. В нём с базой работает ровно один сеанс, остальные подключиться не могут, а проведение и отмена проведения недоступны.
Монопольный доступ нужен не для обычной работы, а для отдельных операций: обновления структуры базы (реструктуризации), загрузки файла .dt, тестирования и исправления базы. Если в этот момент вы пытаетесь что-то провести, 1С сообщит, что база занята.
Отдельно существует блокировка начала сеансов — её включают перед обновлением или техработами, чтобы пользователи постепенно вышли. Пока она активна, новые подключения отклоняются с заданным сообщением.
Как снять, если блокировку поставили по ошибке:
- В Конфигураторе — меню
Администрирование → Блокировка соединений с информационной базой. Снимите флажок установки блокировки и примените. - В клиент-серверном варианте то же самое делают в консоли администрирования серверов: в свойствах информационной базы есть параметры блокировки сеансов и регламентных заданий.
Прежде чем снимать блокировку, убедитесь, что за ней не стоит реальная операция (идёт обновление или загрузка .dt). Снятая на середине реструктуризации блокировка может повредить базу. Сначала убедитесь, что опасная операция завершена, и только потом снимайте блокировку.
Как найти виновника через журнал регистрации
Когда непонятно, кто держит данные или кто поставил монопольный режим, помогает журнал регистрации — он фиксирует подключения, проведение документов, запуск заданий и ошибки блокировок.
Открыть его в режиме «Предприятие» проще всего так: Главное меню → Все функции → Журнал регистрации. Команда Все функции включается в Сервис → Параметры → Отображать команду «Все функции» (главное меню — иконка со стрелкой в левом верхнем углу).
Что искать:
- Отбор по времени. Поставьте интервал на минуты, когда появилась ошибка. Лишние события уйдут.
- Отбор по важности. Оставьте уровни
ОшибкаиПредупреждение— так быстрее найдёте сообщение о конфликте блокировок с именем сеанса. - Отбор по пользователю или сеансу. Из текста ошибки известен номер сеанса — задайте его в отборе и посмотрите, какой документ этот сеанс проводил в тот момент.
Журнал отвечает на главный вопрос: это разовое пересечение двух пользователей (тогда достаточно повторить команду) или один сеанс надолго захватил данные и его нужно аккуратно завершить.
Полезная деталь: в журнале видно не только ошибку, но и предшествующие ей события — какой документ блокирующий сеанс открыл, что он проводил, не оборвалось ли у него соединение. Если сеанс числится активным, но пользователь говорит, что давно вышел, это признак «зависшего» подключения после сбоя сети или аварийного закрытия клиента. Такой сеанс как раз и держит блокировку, хотя за ним никто не работает.
В клиент-серверном варианте список активных сеансов виден и в консоли администрирования серверов — там же можно завершить конкретный сеанс. Через журнал удобнее разбирать то, что уже случилось, через консоль — то, что происходит прямо сейчас.
Зависшее регламентное задание как причина блокировки
Если проведение упирается в блокировку, а живых пользователей на регистре нет, виновником часто оказывается фоновое или регламентное задание. Обмен данными, пересчёт итогов, загрузка курсов валют — всё это выполняется заданиями и так же захватывает данные.
В типовых конфигурациях (БП 3.0, ЗУП 3.1, УТ 11) список открывается в разделе Администрирование → Обслуживание, пункт «Регламентные и фоновые задания». В клиент-серверном варианте задания идут на сервере, в файловом — внутри сеанса, который их запустил.
Порядок разбора:
- Откройте список фоновых заданий и отсортируйте по состоянию. Задание со статусом «Выполняется», висящее дольше обычного, — кандидат в виновники.
- Посмотрите, по какому регламентному заданию оно запущено и сколько длится. Короткие задания отменять смысла нет — они вот-вот закончатся.
- Действительно зависшее фоновое задание можно отменить из этого же списка. После отмены блокировка освободится, и отмена проведения пройдёт.
Отмена фонового задания прерывает начатую операцию (например, половину обмена). Задание запустится снова по расписанию, но данные могут остаться в промежуточном состоянии — после отмены проверьте результат той операции.
В клиент-серверном варианте, если задание не отменяется из интерфейса, его сеанс виден в консоли администрирования серверов — завершать такой сеанс стоит, только если задание точно зависло и не реагирует.
Отличия в разных версиях и вариантах базы
Основной сценарий выше описан для 1С 8.3 с интерфейсом «Такси». В более ранних и в сильно отличающихся вариантах есть нюансы.
| Версия / вариант | Чем отличается отмена проведения |
|---|---|
| 1С 8.3, интерфейс «Такси» | Команды в выпадающем списке у кнопки Провести и в меню Ещё; журнал — через Все функции |
| 1С 8.2, обычные формы | Та же логика, но меню называется Все действия, а не Ещё |
| Файловый вариант | Блокировки и монопольный режим упираются в файл блокировки базы; снимать его можно только когда никто не подключён |
| Клиент-серверный вариант | Сеансы и задания видны в консоли администрирования серверов; возможно принудительное завершение сеанса |
| 1С 7.7 | Другая архитектура проведения; приёмы из 8.3 к ней неприменимы |
В файловом варианте монопольный доступ и блокировки держатся через служебный файл блокировки в каталоге базы. Если 1С сообщает, что база занята, хотя все вышли, причиной бывает «забытый» файл блокировки после аварийного завершения.
Удалять файл блокировки базы руками можно, только когда вы абсолютно уверены, что к базе никто не подключён. Удаление при активных сеансах ведёт к повреждению данных. Правильнее — дождаться выхода всех пользователей или перезапустить сеансы штатно.
Что делать, если 1С перестала отвечать совсем
Когда ни отмена проведения, ни другие команды не проходят, а интерфейс завис, действуйте по порядку — от безопасного к радикальному.
Про принудительное завершение. Отдельный зависший сеанс в клиент-серверном варианте завершают в консоли администрирования серверов. Из командной строки для управления сеансами есть утилита rac — посмотреть список кластеров можно командой rac cluster list, список сеансов rac session list; точный синтаксис завершения сеанса смотрите в справке rac help.
Перезапуск службы сервера 1С (1C:Enterprise Server) оборвёт работу всех пользователей разом: несохранённые данные во всех сеансах потеряются. Делайте это только когда база полностью не отвечает и другие способы не помогли — и предупредите людей заранее.
После того как блокировка снята и сеанс освобождён, вернитесь к документу и спокойно выполните отмену проведения или повторное проведение — теперь команда пройдёт штатно.
Частые вопросы
Чем отмена проведения отличается от удаления документа?
Провести.Можно ли отменить проведение сразу у нескольких документов?
Ctrl или Shift, затем Ещё → Отмена проведения. Групповая операция так же ставит блокировки, поэтому в разгар рабочего дня она чаще упирается в конфликт.Почему после отмены и повторного проведения суммы изменились?
Отмена проведения закрытого периода — что мешает?
Команда отмены проведения вообще не видна — почему?
Ещё.