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

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

Как отменить выполнение операции в 1С

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

Фраза «отменить операцию» в 1С может означать очень разные действия: отменить проведение документа, прервать зависшее фоновое задание, откатить обмен данными, отменить транзакцию в коде или вернуть базу к состоянию до ошибочной загрузки. У каждого сценария свой механизм, свои ограничения и свои риски, поэтому универсальной кнопки «отменить всё» в платформе нет.

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

Ниже разобраны основные сценарии отмены операций в 1С:Предприятии 8.3: документы, фоновые задания, обмены, длительные обработки и программные транзакции. Отдельно рассмотрены ситуации, когда самостоятельная отмена опасна и безопаснее остановиться.

Отмена проведения документа — самый частый сценарий

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

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

Если документ нужно не просто отменить, а убрать полностью, используйте пометку на удаление (клавиша Del или «Ещё → Пометить на удаление»). Пометка автоматически отменяет проведение. Окончательное физическое удаление выполняется через «Администрирование → Удаление помеченных объектов» и возможно только при отсутствии ссылок на объект.

Как прервать выполняющуюся операцию (фоновые задания)

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

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

Если задание не прерывается штатно (например, выполняет тяжёлый запрос), отмена может занять время — платформа дождётся завершения текущей транзакции. Не выключайте сервер и не завершайте процесс rphost через диспетчер задач: это чревато повреждением данных и необходимостью тестирования и исправления базы.

Отмена обмена данными и синхронизации

Обмены (РИБ, синхронизация с другими программами, обмен с сайтом) — особый случай: данные уже могли уйти в другую базу, и простая отмена на своей стороне не отзовёт их обратно. Если обмен ещё выполняется, прервите соответствующее фоновое задание. При следующем сеансе обмена механизм регистрации изменений продолжит с места прерывания — это нормальное поведение.

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

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

Маршрут решения

Как выбрать действие

Документ проведён ошибочно, связанных документов нетОтмените проведение через «Ещё → Отменить проведение»
Операция ещё выполняется и её нужно остановитьПрервите фоновое задание в консоли заданий, не трогая процессы сервера
Обмен загрузил ошибочные данные, копии нет, объём небольшойИсправьте данные вручную или повторной корректной выгрузкой
Массовая порча данных и есть свежая резервная копияВосстановите базу из копии — это надёжнее любых ручных правок

Отмена транзакции в программном коде

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

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

bsl
НачатьТранзакцию();
Попытка
    // изменения данных
    ЗафиксироватьТранзакцию();
Исключение
    ОтменитьТранзакцию();
    ЗаписьЖурналаРегистрации(ОписаниеОшибки());
КонецПопытки;

Учтите ограничение: откат транзакции не отменяет действия вне базы данных — отправленные письма, записанные файлы, выполненные HTTP-запросы. Такие операции внутри транзакции либо не выполняют, либо предусматривают отдельную компенсирующую логику.

Откат массовых обработок и восстановление из копии

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

Поэтому обязательное правило: перед любой массовой операцией делайте выгрузку базы (dt) или копию средствами СУБД. Для файловой базы достаточно скопировать файл 1Cv8.1CD при отсутствии активных сеансов. Наличие свежей копии превращает потенциальную катастрофу в час восстановления.

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

Порядок действий при ошибочной массовой операции
  1. 1
    Немедленно остановите выполняющуюся обработку или задание
  2. 2
    Зафиксируйте, что именно было запущено и когда (журнал регистрации)
  3. 3
    Оцените масштаб: сколько объектов затронуто и есть ли штатный механизм отмены
  4. 4
    Проверьте наличие резервной копии, сделанной до операции
  5. 5
    Восстановите копию на тестовой базе и убедитесь в её целостности
  6. 6
    Выполните восстановление рабочей базы, предупредив пользователей
  7. 7
    Введите заново документы, созданные после момента копии

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

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

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

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

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

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

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

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

Список движений пуст, документ непроведён

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

Движения остались или документ недоступен из-за даты запрета

Фоновое задание после прерывания
Норма

Задание отсутствует в активных, не перезапускается

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

Задание снова выполняется по расписанию

Остатки и взаиморасчёты после отмены
Норма

Отчёты сходятся, отрицательных остатков нет

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

Минус по складу или расхождения с контрагентами

Восстановленная база
Норма

База открывается, данные соответствуют моменту копии

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

Ошибки при открытии, отсутствуют ожидаемые документы

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

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

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

Что будет, если прервать обмен данными на середине?

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

Как отменить удаление помеченного объекта?

Если объект только помечен — снимите пометку тем же действием (Del или «Пометить на удаление»). Если объект уже удалён физически через «Удаление помеченных объектов», восстановить его штатными средствами нельзя — только из резервной копии.

Фоновое задание не прерывается кнопкой «Отменить». Что делать?

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

Отменилась ли операция, если программа закрылась с ошибкой?

Если операция выполнялась в одной транзакции и завершилась аварийно — изменения откатятся автоматически. Если обработка фиксировала данные порциями (множество транзакций), часть изменений сохранится. Проверьте журнал регистрации и фактическое состояние затронутых объектов.

Есть ли в 1С аналог Ctrl+Z для отмены последнего действия?

Глобальной отмены действий с данными нет: всё, что записано в базу, отменяется только осознанными операциями — отменой проведения, снятием пометки удаления или восстановлением из копии. Отмена ввода (Ctrl+Z) работает лишь в текстовых полях до сохранения объекта.

Итог

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

Отмена операции в 1С зависит от её типа: документы отменяют проведением назад, задания — штатным прерыванием, код — откатом транзакции, а массовые необратимые изменения — только восстановлением из резервной копии. Делайте копию перед любыми массовыми операциями и проверяйте связанные данные после отмены.