Отмена операций в 1С 8.3: документы, проводки, закрытие месяца и задания
Содержание
Отменить процедуру в 1С почти всегда означает одно из трёх: снять проведение документа (Ещё → Отменить проведение в списке или форме), отменить регламентную операцию в обработке закрытия месяца или выключить фоновое задание в Администрирование → Обслуживание. Универсальной кнопки «Отменить последнее действие» на уровне базы нет. Ctrl+Z работает только внутри поля ввода, а не для записанных данных.
Частая ошибка — «отменять» документ клавишей Del. Она лишь ставит пометку удаления. Движения при этом снимаются, но документ остаётся в базе, и после запуска удаления помеченных объектов вернуть его можно только из резервной копии. Ниже по каждому виду операций — какой способ безопасен и что он реально делает с данными.
1. Отмена проведения документа: по одному и списком
Проведение — это запись движений документа в регистры: проводки, остатки, взаиморасчёты. Отмена проведения стирает эти движения, а сам документ остаётся черновиком. Его можно исправить и провести снова.
Один документ
- Откройте журнал нужных документов, например
Продажи → Реализация (акты, накладные, УПД)в Бухгалтерии 3.0. - Выделите строку с документом.
- Нажмите
Ещё → Отменить проведениеили выберите эту команду в контекстном меню правой кнопкой. - Значок в первой колонке сменится с зелёной галочки на пустой. Движения удалены.
То же можно сделать из открытой формы документа: Ещё → Отменить проведение.
Несколько документов сразу
Платформа 8.3 умеет отменять проведение группы документов одной командой:
- В списке выделите документы мышью с зажатым
Ctrl(по одному) илиShift(диапазон). - Выполните
Ещё → Отменить проведение. - Программа обработает выделенные документы по очереди. Если какой-то не удалось распровести, она сообщит об этом внизу окна.
Чтобы отменить проведение всех документов за период, сначала поставьте в списке отбор по дате, затем выделите всё через Ctrl+A.
Когда программа не даёт отменить проведение
- 🔒 Дата запрета изменения. Документ попадает в закрытый период. Дату задают в
Администрирование → Проведение документов → Даты запрета изменения. Сдвигать её стоит только согласовав с главным бухгалтером. - 👤 Нет прав. У пользователя отсутствует право на отмену проведения. Решается в профиле групп доступа администратором.
- 🔗 Документ используется дальше. Например, ЗУП 3.1 не даст спокойно распровести начисление, по которому уже есть ведомость на выплату. Сначала распроводят зависимый документ.
- ⏳ Объект заблокирован. Документ открыт у другого пользователя. Попросите его закрыть форму.
Исправление вместо отмены в ЗУП
В ЗУП 3.1 у ряда документов прошлых периодов есть команда Исправить. Она создаёт документ-исправление, а исходный оставляет как есть. Для закрытых месяцев и сданной отчётности это правильнее, чем отменять проведение: история изменений сохраняется, а перерасчёт попадает в текущий период.
2. Как отменить закрытие месяца и регламентные операции
В Бухгалтерии 3.0 регламентные операции (амортизация, закрытие затратных счетов, переоценка валюты, расчёт налога на прибыль, реформация баланса) проводит обработка Операции → Закрытие месяца. Каждая операция — это отдельный документ «Регламентная операция
».
Как отменить:
- Откройте
Операции → Закрытие месяцаи выберите месяц и организацию. - Щёлкните по названию выполненной операции. В открывшемся меню будет команда отмены этой операции.
- Чтобы откатить весь месяц, используйте команду
Отменить закрытие месяца.
Порядок важен. Операции закрытия выстроены цепочкой: закрытие счетов 20, 25, 26 зависит от амортизации, налог на прибыль — от финансового результата. Если отменить одну операцию в середине, обработка пометит последующие как требующие повторного выполнения.
Отмена закрытия декабря снимает реформацию баланса. Если отчётность за год уже сдана, сначала сравните текущие данные со сданной отчётностью, а затем решайте, нужна ли уточнёнка.
После исправлений нажмите Выполнить закрытие месяца ещё раз. Повторное выполнение пересчитает только то, что нужно.
3. Отмена проводок и ручных движений
Отдельную проводку в документе удалить нельзя: проводки — производная от документа. Есть три законных пути.
Убрать ручную корректировку
Если проводки документа правили руками, вернуть автоматические можно так:
- Откройте документ и нажмите кнопку
Дт/Кт— откроется результат проведения. - Снимите флаг
Ручная корректировка (разрешает редактирование движений документа). - Программа спросит, перезаполнить ли движения. Согласитесь, затем проведите документ.
Ручная операция
Записи, введённые документом «Операция» (Операции → Операции, введённые вручную), отменяют пометкой на удаление или удалением строк проводок внутри самой операции. Пометка снимает движения сразу.
Сторно
Если период закрыт и отчётность сдана, проводку не удаляют, а сторнируют. В журнале Операции → Операции, введённые вручную создайте документ Сторно документа и укажите исходный документ. Программа заполнит те же проводки с суммами со знаком минус. Ошибка будет исправлена текущим периодом без правки прошлого.
| Ситуация | Что делать |
|---|---|
| Период открыт, ошибка в данных документа | Отменить проведение, исправить, провести |
| Проводки правили вручную | Снять флаг «Ручная корректировка», перепровести |
| Период закрыт, отчётность сдана | Сторно документа в текущем периоде |
| Лишняя ручная операция | Пометить на удаление |
4. Как остановить фоновое или регламентное задание
Регламентные задания — это процедуры по расписанию: загрузка курсов валют, обмен с банком, обновление классификаторов, полнотекстовый индекс. Фоновые задания запускаются разово, например при долгом формировании отчёта.
Через интерфейс программы
- Откройте
Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. - На закладке регламентных заданий откройте нужное и снимите флаг
Включено. Задание больше не стартует по расписанию. - На закладке фоновых заданий выделите выполняющееся задание и отмените его командой формы.
Если долгий отчёт запущен из формы и видно окно ожидания, в нём обычно есть кнопка Отмена. Она прерывает фоновое задание этого отчёта.
Через консоль кластера (клиент-серверный вариант)
Чтобы на время остановить все регламентные задания базы, например перед обновлением:
- В консоли администрирования серверов 1С откройте
Информационные базы → ваша база → Свойства. - Включите флаг
Блокировка регламентных заданий включена. - После работ снимите флаг.
Завершение рабочего процесса или сеанса в консоли кластера обрывает работу всех пользователей этого процесса. Делайте это только после предупреждения и вне рабочих часов.
В файловой базе регламентные задания выполняет клиентский сеанс, поэтому их работа прекращается вместе с закрытием всех сеансов.
5. Программная отмена: транзакции, Отказ, прерывание
Этот раздел для тех, кто дорабатывает конфигурацию.
Отменить запись или проведение в обработчике
В модуле объекта параметр Отказ останавливает операцию целиком. Платформа откатит всё, что успело записаться в рамках этой транзакции:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Если Не ЗначениеЗаполнено(Контрагент) Тогда
ОбщегоНазначения.СообщитьПользователю("Не указан контрагент", ЭтотОбъект, "Контрагент", , Отказ);
Возврат;
КонецЕсли;
// формирование движений
КонецПроцедуры
Чтобы программно снять проведение с документа:
ДокОбъект = СсылкаНаДокумент.ПолучитьОбъект();
ДокОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Явная транзакция
Когда несколько объектов должны записаться вместе или не записаться вовсе:
НачатьТранзакцию();
Попытка
ДокПоступление.Записать(РежимЗаписиДокумента.Проведение);
ДокОплата.Записать(РежимЗаписиДокумента.Проведение);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
ОтменитьТранзакцию() откатывает обе записи. Без неё одна запись могла бы пройти, а вторая — нет.
Фоновое и регламентное задание из кода
// Отменить выполняющееся фоновое задание
Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
Если Задание <> Неопределено И Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
Задание.Отменить();
КонецЕсли;
// Выключить регламентное задание
РегЗадание = РегламентныеЗадания.НайтиПоМетаданным(Метаданные.РегламентныеЗадания.ЗагрузкаКурсовВалют);
РегЗадание.Использование = Ложь;
РегЗадание.Записать();
Имя ЗагрузкаКурсовВалют здесь пример: подставьте имя задания из вашей конфигурации.
Прервать долгий цикл на клиенте
Пользователь прерывает клиентский код сочетанием Ctrl+Break. Чтобы длинный цикл реагировал на прерывание, вызывайте внутри него ОбработкаПрерыванияПользователя(). Платформа спросит, прервать ли выполнение, и при согласии выбросит исключение.
6. Отмена операций в распределённой базе и обменах
В РИБ и при обмене через «Синхронизацию данных» отмена проведения — это обычное изменение документа. Оно регистрируется к выгрузке и уходит в другие узлы со следующим сеансом обмена.
Что учесть:
- 🔄 Отменяйте в одном узле. Если документ правят одновременно в двух узлах, возникает коллизия. В РИБ по умолчанию приоритет у главного узла, и изменение подчинённого может быть перезаписано.
- 📦 Дождитесь обмена. Пока обмен не прошёл, в другой базе документ всё ещё проведён. Отчёты там покажут старые цифры.
- 🚫 Пометка удаления тоже передаётся. А вот удаление помеченных объектов каждый узел выполняет сам. Не удаляйте документ в одном узле, пока он используется в другом.
- 🧾 Обмен с БП из УТ или ЗУП. Если документ пришёл из другой программы, отменять проведение в приёмнике бесполезно: при следующей загрузке он вернётся. Исправляйте в источнике.
Чтобы отменить уже подготовленную к отправке порцию изменений, существует обработка регистрации изменений. Пользоваться ей стоит только администратору: снятие регистрации приводит к рассинхронизации узлов.
7. Если отменили лишнее: как вернуть данные
Возможность восстановления зависит от того, что именно сделали.
| Что произошло | Как вернуть |
|---|---|
| Отменено проведение | Провести документ снова. Данные документа не пострадали |
| Документ помечен на удаление | Снять пометку той же командой (Del) и провести |
| Помеченные объекты удалены | Только из резервной копии базы |
| Отменено закрытие месяца | Выполнить закрытие месяца повторно |
| Изменены реквизиты и записано | Восстановить версию из истории изменений, если она включена |
Кто и когда отменил
Откройте Администрирование → Обслуживание → Журнал регистрации. Поставьте отбор по событию изменения данных и по нужному документу. Журнал покажет пользователя, время и компьютер.
История изменений объектов
Если в конфигурации включено хранение версий (Администрирование → Общие настройки, раздел истории изменений), в карточке документа доступна история. Из неё можно открыть прежнюю версию и сравнить её с текущей или вернуться к ней.
Восстановление из копии
Удалённый объект достают так: разворачивают свежую резервную копию в отдельную базу, находят документ и переносят его выгрузкой в XML или вручную. Не загружайте копию поверх рабочей базы — пропадут все изменения, сделанные после её создания.
8. Какой способ отмены выбрать
| Способ | Когда применять | Риски |
|---|---|---|
| Отменить проведение | Ошибка в документе открытого периода | Сдвиг остатков и себестоимости до перепроведения |
| Групповая отмена проведения | Перенос или переделка документов за период | Нарушенная последовательность, нужно перепроведение |
| Пометка на удаление | Документ создан ошибочно | Удаление помеченных необратимо без копии |
| Сторно | Период закрыт, отчётность сдана | Задвоение, если исходный документ тоже распровели |
| Исправление (ЗУП) | Ошибка в начислении прошлого месяца | Не путать с отменой: исходник остаётся |
| Отмена закрытия месяца | Нужно править документы после закрытия | Изменение финансового результата |
| Выключение регламентного задания | Задание мешает или работает с ошибкой | Перестают грузиться курсы, обмены, классификаторы |
| Отмена фонового задания | Завис отчёт или долгая обработка | Частичный результат не сохраняется |
| ОтменитьТранзакцию в коде | Доработки, групповые записи | Ошибки в коде откатывают всю порцию |
Частые вопросы
Можно ли отменить проведение документа, не открывая его?
Ещё → Отменить проведение или команду из контекстного меню.Почему после отмены проведения изменились остатки в других документах?
Как отменить загрузку выписки банка?
Отменяет ли выход из программы запущенное фоновое задание?
Можно ли отменить изменения в Конфигураторе?
Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. Если структура базы уже обновлена, вернуться можно только к резервной копии.