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

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

Как в 1С откатить изменения и восстановить данные

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

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

Выбор способа зависит от масштаба проблемы: ошиблись в одном документе — достаточно отменить его проведение; испортили справочник или внесли массовые некорректные изменения — поможет версионирование или выборочное восстановление; база повреждена целиком или обновление прошло с ошибкой — потребуется откат из резервной копии. Ниже разобраны все сценарии с конкретными действиями и ограничениями.

Прежде чем что-либо откатывать, убедитесь, что у вас есть актуальная резервная копия базы. Любые операции восстановления сами по себе могут привести к потере данных, и резервная копия — единственная страховка, которая гарантирует возврат к исходной точке.

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

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

Если документ не нужен вовсе, установите пометку удаления через клавишу Delete или команду «Пометить на удаление / Снять пометку». Помеченный документ исключается из отчётов и оборотов, но физически остаётся в базе — это позволяет при необходимости снять пометку и вернуть документ. Окончательное удаление выполняется через «Администрирование → Удаление помеченных объектов» и требует проверки ссылочной целостности.

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

Как отменить ошибочный документ
  1. 1
    Найдите документ в журнале и проверьте, есть ли созданные на его основании документы
  2. 2
    Отмените проведение зависимых документов, начиная с самого позднего
  3. 3
    Откройте нужный документ и отмените его проведение или установите пометку удаления
  4. 4
    Проверьте отчёты и обороты: данные документа должны исчезнуть из учёта

История изменений и версионирование объектов

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

Чтобы откатить объект к прежней версии, откройте документ или элемент справочника, перейдите в меню «Ещё → История изменений» (или «Перейти → История версий»). В списке версий выберите нужную по дате и пользователю, откройте её и восстановите — система создаст новую версию с данными выбранной. При этом текущая версия не теряется, а тоже сохраняется в истории.

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

Как узнать, кто и что изменил: журнал регистрации

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

Журнал регистрации показывает факт изменения объекта, но не содержит сами старые значения реквизитов — восстановить данные напрямую из него нельзя. Его задача — определить момент времени, до которого нужно откатиться, и круг затронутых объектов. Это особенно полезно при массовых изменениях: например, если обработка группового изменения реквизитов затронула сотни элементов, журнал покажет точное время запуска, и вы сможете восстановить копию базы на этот момент.

Если база файловая, уровень детализации журнала можно настроить в конфигураторе: «Администрирование → Настройка журнала регистрации». Для расследования инцидентов рекомендуется регистрировать как минимум ошибки, предупреждения и изменение данных.

Восстановление базы из резервной копии

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

Для файловой базы восстановление сводится к замене файла 1Cv8.1CD файлом из резервной копии или загрузке ранее выгруженного dt-файла. Выгрузка в dt выполняется в конфигураторе: «Администрирование → Выгрузить информационную базу». Загрузка — через «Загрузить информационную базу» с указанием файла. Перед загрузкой убедитесь, что все пользователи вышли из базы, иначе операция будет заблокирована.

Для клиент-серверной базы (MS SQL, PostgreSQL) восстановление выполняется средствами СУБД из бэкапа, либо также через загрузку dt-файла. Учтите, что dt-выгрузка больших баз занимает значительное время и не всегда подходит для баз объёмом в десятки гигабайт — там надёжнее штатные бэкапы СУБД.

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

Выборочное восстановление отдельных объектов

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

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

Второй вариант — типовая обработка «Выгрузка и загрузка данных XML» (есть на диске ИТС и во многих конфигурациях в составе инструментов разработчика). Она позволяет выгрузить из копии конкретные объекты вместе со связанными ссылками и загрузить их в рабочую базу. При загрузке объекты сопоставляются по уникальным идентификаторам, поэтому существующие записи будут перезаписаны данными из копии — именно это и нужно для отката.

Третий вариант — обмен между основной базой и копией через типовые планы обмена либо конвертацию данных. Он оправдан при регулярной потребности, но для разового восстановления обычно проще XML-выгрузка.

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

Как выбрать способ отката

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

Откат обновления конфигурации

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

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

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

Профилактика: как подготовиться к будущим откатам

Возможность быстро откатить изменения определяется не инструментами восстановления, а подготовкой. Минимальный набор мер: регулярные автоматические резервные копии (для файловых баз — копирование файла или выгрузка dt по расписанию, для серверных — штатные бэкапы СУБД), включённое версионирование ключевых объектов и разграничение прав пользователей.

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

Разграничьте права: пометка удаления документов закрытых периодов, запуск внешних обработок и групповое изменение данных должны быть доступны ограниченному кругу пользователей. Значительная часть «откатов» нужна именно из-за действий, которые можно было запретить настройкой ролей.

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

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

Одиночные ошибки исправляются отменой проведения и версионированием, массовые — выборочным переносом из копии, катастрофические — полным восстановлением базы. Любой откат безопасен только при наличии свежей резервной копии, сделанной до начала действий.

Частые вопросы

Можно ли отменить последнее действие в 1С, как Ctrl+Z?

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

Как восстановить удалённый документ, если он удалён окончательно?

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

Восстановит ли история изменений проведение документа?

Нет. История версий сохраняет реквизиты и табличные части объекта, но не его движения по регистрам. После восстановления старой версии документ нужно провести заново, проверив, что дата и последовательность позволяют это сделать.

Что делать, если резервной копии нет, а данные испорчены?

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

Можно ли откатить только часть базы, не трогая остальные данные?

Да, через выборочное восстановление: разверните резервную копию как отдельную базу и перенесите нужные объекты в рабочую с помощью обработки выгрузки/загрузки XML. Объекты сопоставляются по уникальным идентификаторам, поэтому испорченные записи будут перезаписаны корректными версиями из копии.

Обновление прошло с ошибкой, база не открывается. Что делать?

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