Откат правок в Конфигураторе 1С 8.3: от Ctrl+Z до восстановления из копии

· 9 мин

Содержание

Отменить изменения в конфигураторе 1С можно тремя путями, и выбор зависит от того, как далеко зашла правка. Пока модуль открыт — Ctrl+Z. Если конфигурация сохранена, но база ещё не обновлена — Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. Если уже нажали «Обновить конфигурацию базы данных», назад ведут только резервная копия .dt или файл .cf прежней версии.

Всё ниже относится к платформе 8.3 и одинаково для любой конфигурации: Бухгалтерии, ЗУП, УТ или самописной. Механизм отката задаёт платформа, а не прикладное решение.

Сначала поймите, на каком этапе ваши изменения

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

От этапа зависит способ отката:

Где сейчас измененияПризнакКак отменитьЧто потеряете
В открытом редакторе модуля или формыОкно не закрывалиCtrl+Z, Правка → ОтменитьНичего
В основной конфигурации, не сохраненыПри закрытии спрашивает «Сохранить?»Закрыть конфигурацию без сохраненияВсе несохранённые правки
Сохранены, база не обновленаЕсть команда «Вернуться к конфигурации БД»Вернуться к конфигурации БДВсе правки после последнего обновления
Применены к базе (F7)Пользователи уже видят измененияЗагрузить прежний .cf или .dtДанные в удалённых реквизитах — только из .dt
В хранилище конфигурацииОбъект захвачен или помещёнОтменить захват, взять версию из историиЛокальные правки объекта
Что произошло с вашими изменениями?

Горячие клавиши и меню «Правка»: отмена правок в модуле

Самый частый случай — испортили кусок кода и хотите вернуть как было. Здесь работает обычная отмена:

  • ⌨️ Ctrl+Z — отменить последнее действие (то же, что Правка → Отменить);
  • ⌨️ Ctrl+Y — вернуть отменённое (Правка → Повторить);
  • ⌨️ Ctrl+S — сохранить; после него отмена в редакторе ещё доступна, пока окно открыто.

Отмена в редакторе пошаговая. Каждое нажатие откатывает одну операцию ввода, вставки или удаления. Чтобы откатить большой блок, нажимайте Ctrl+Z несколько раз и следите за текстом.

История отмены живёт, пока открыт редактор. Закрыли окно модуля — стек отмены очищен. Дальше откатывать модуль придётся через сравнение с конфигурацией БД или с файлом.

В редакторе управляемой формы Ctrl+Z тоже работает: отменяет перемещение элементов, удаление реквизитов формы, изменение свойств. Но правило то же — только пока форма открыта.

💡 Перед крупной правкой модуля скопируйте его текст целиком (Ctrl+A, Ctrl+C) в блокнот. Это занимает пять секунд и не зависит от того, закроете ли вы окно.

Как отменить все изменения в конфигураторе разом

Когда правок много и они разбросаны по дереву, откатывать по одному объекту долго. Есть два способа сбросить всё сразу.

Способ 1. Закрыть конфигурацию без сохранения

Подходит, если вы ни разу не сохраняли основную конфигурацию после начала работы.

  1. Выберите Конфигурация → Закрыть конфигурацию.
  2. На вопрос о сохранении изменений ответьте «Нет».
  3. Снова откройте дерево: Конфигурация → Открыть конфигурацию.

Основная конфигурация вернётся к последнему сохранённому состоянию.

Способ 2. Вернуться к конфигурации базы данных

Подходит, если вы уже сохранили основную конфигурацию, но ещё не обновляли базу.

  1. Откройте Конфигурация → Конфигурация базы данных.
  2. Выберите Вернуться к конфигурации БД.
  3. Подтвердите действие.

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

Если команда неактивна, значит основная конфигурация не отличается от конфигурации БД. Откатывать на этом этапе нечего.

Журнал регистрации: кто и когда менял конфигурацию

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

Открыть журнал в Конфигураторе: Администрирование → Журнал регистрации. В пользовательском режиме он есть в разделе Администрирование типовых конфигураций.

Как найти нужные события:

  1. Установите отбор по периоду — день, когда начались проблемы.
  2. В отборе по событиям оставьте события группы «Информационная база»: изменение конфигурации и изменение конфигурации базы данных.
  3. Посмотрите колонки «Пользователь» и «Компьютер».

Что даст журнал:

  • 🕐 точное время обновления — с ним проще выбрать нужную резервную копию;
  • 👤 имя пользователя — можно спросить, что именно он менял;
  • 🔄 последовательность событий — видно, было ли несколько обновлений подряд.

Какие объекты изменились, журнал не покажет. Для этого нужно сравнение конфигураций — оно описано ниже.

Откат изменений через хранилище конфигурации

Если база подключена к хранилищу, у вас есть история версий. Это самый удобный способ отменить изменения в конфигураторе выборочно.

Отменить свои незавершённые правки объекта

Захватили объект, наделали изменений и передумали:

  1. В дереве щёлкните правой кнопкой по захваченному объекту.
  2. Выберите Хранилище → Отменить захват.
  3. В диалоге оставьте флаг получения объекта из хранилища.

Локальные изменения объекта заменятся версией из хранилища, а захват снимется. Если флаг снять, объект освободится, но ваши правки останутся в основной конфигурации и будут расходиться с хранилищем.

Вернуться к прошлой версии из истории

Чужие изменения уже помещены в хранилище, и их нужно отменить:

  1. Откройте Конфигурация → Хранилище конфигурации → История хранилища.
  2. Найдите версию до проблемного помещения. Ориентируйтесь на дату, автора и комментарий.
  3. Выделите строки и запустите сравнение версий — убедитесь, что откатываете то, что нужно.
  4. Сохраните нужную версию в файл .cf.
  5. Захватите в хранилище объекты, которые будете возвращать.
  6. Сравните основную конфигурацию с этим файлом и объедините только нужные объекты (порядок — в следующем разделе).
  7. Поместите объекты в хранилище с комментарием «Откат изменений версии N».

Новая версия поверх старой лучше, чем попытка «стереть» историю. История остаётся честной: видно, что меняли и что потом вернули.

Сравнение с эталоном и выборочный возврат объектов

Когда откатить нужно не всё, а пару справочников или один общий модуль, используйте сравнение и объединение. Эталоном может быть:

  • 📄 конфигурация базы данных;
  • 💾 файл .cf, сохранённый до правок;
  • 🏭 конфигурация поставщика (для типовых решений на поддержке).

Шаг 1. Посмотрите, что изменилось

Откройте Конфигурация → Сравнить конфигурации…. Слева выберите основную конфигурацию, справа — конфигурацию БД, поставщика или файл. Платформа покажет дерево отличий: изменённые объекты отмечены, а по каждому модулю можно открыть построчное сравнение.

Шаг 2. Верните нужные объекты из файла

  1. Сохраните текущее состояние: Конфигурация → Сохранить конфигурацию в файл. Это страховка на случай ошибки при объединении.
  2. Выберите Конфигурация → Сравнить, объединить с конфигурацией из файла… и укажите эталонный .cf.
  3. В дереве объединения снимите все флажки.
  4. Отметьте только объекты, которые нужно вернуть к прежнему виду.
  5. Нажмите «Выполнить».
  6. Проверьте результат сравнением с конфигурацией БД и только потом обновляйте базу.

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

Если конфигурация на поддержке и вы объединяете с файлом поставщика, правила поддержки для объектов могут измениться. Проверьте их после объединения в Конфигурация → Поддержка → Настройка поддержки.

Типовую конфигурацию нужно вернуть целиком

Если доработок не жалко и нужна чистая типовая, загрузите файл поставщика целиком: Конфигурация → Загрузить конфигурацию из файла…. Основная конфигурация полностью заменится содержимым .cf. Дальше — обновление конфигурации БД.

Как откатить уже применённое обновление конфигурации базы данных

Конфигурация → Обновить конфигурацию базы данных (клавиша F7) переносит основную конфигурацию в базу. Кнопки «Отменить» у этой операции нет. Вариантов два.

СпособКогда подходитРиск
Загрузить прежний .cf и снова обновить базуМеняли код, формы, макеты; новые реквизиты пустыеДанные в реквизитах, добавленных после копии, будут удалены
Восстановить .dt (Администрирование → Загрузить информационную базу)Удаляли реквизиты или таблицы с данными, меняли типыПотеряются данные, введённые после выгрузки

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

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

Для клиент-серверной базы вместо .dt часто используют резервную копию СУБД — она восстанавливается быстрее на больших объёмах. Это делает администратор сервера средствами самой СУБД.

Перед обновлением конфигурации базы данных
Выполнено: 0 / 5

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

  • ❌ Закрыли модуль и надеются на Ctrl+Z. После закрытия окна отмены нет. Возвращайте текст через сравнение с конфигурацией БД: в окне построчного сравнения видно старый вариант, его можно скопировать.
  • ❌ «Вернуться к конфигурации БД» при общей работе без хранилища. Команда сбрасывает и чужие несохранённые в базу правки. Договоритесь с коллегами до нажатия.
  • ❌ Объединение с файлом при всех отмеченных флажках. Так вы откатите всю конфигурацию, а не один объект. Сначала снимите все флажки, потом ставьте нужные.
  • ❌ Восстановление .dt без свежей выгрузки текущей базы. Если окажется, что откатились слишком далеко, вернуться будет не к чему.
  • ❌ Удаление реквизита «на пробу». Удалили, обновили базу, вернули — данные уже пропали. Вместо удаления переименуйте реквизит с префиксом Удалить и уберите его с форм.

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

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

Можно ли отменить изменения после перезапуска Конфигуратора?
Да, если основная конфигурация не сохранялась — правок уже нет. Если сохранялась, но база не обновлена — используйте «Вернуться к конфигурации БД». Стек Ctrl+Z после перезапуска не сохраняется.
Где посмотреть старую версию модуля, если хранилища нет?
В сравнении основной конфигурации с конфигурацией БД или с сохранённым файлом .cf. Построчное сравнение модулей показывает обе версии текста.
Удалил объект из дерева, но не сохранял. Как вернуть?
Закройте конфигурацию без сохранения или нажмите Ctrl+Z сразу после удаления. Если уже сохранили — верните объект объединением с конфигурацией БД или с файлом, отметив только его.
Сохраняет ли «Вернуться к конфигурации БД» настройки поддержки?
Основная конфигурация, включая правила поддержки, приводится к состоянию конфигурации базы данных. Изменения правил после последнего обновления тоже откатятся.
Нужен ли монопольный режим для отката?
Для «Вернуться к конфигурации БД» и объединения с файлом — нет. Монопольный доступ может понадобиться при обновлении конфигурации БД с реструктуризацией и при загрузке .dt.