Откат правок в Конфигураторе 1С 8.3: от Ctrl+Z до восстановления из копии
Содержание
Отменить изменения в конфигураторе 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. Закрыть конфигурацию без сохранения
Подходит, если вы ни разу не сохраняли основную конфигурацию после начала работы.
- Выберите
Конфигурация → Закрыть конфигурацию. - На вопрос о сохранении изменений ответьте «Нет».
- Снова откройте дерево:
Конфигурация → Открыть конфигурацию.
Основная конфигурация вернётся к последнему сохранённому состоянию.
Способ 2. Вернуться к конфигурации базы данных
Подходит, если вы уже сохранили основную конфигурацию, но ещё не обновляли базу.
- Откройте
Конфигурация → Конфигурация базы данных. - Выберите
Вернуться к конфигурации БД. - Подтвердите действие.
Основная конфигурация станет точной копией той, по которой работает база. Откатятся все правки, сделанные после последнего обновления, в том числе чужие, если с конфигурацией работали несколько человек без хранилища.
Если команда неактивна, значит основная конфигурация не отличается от конфигурации БД. Откатывать на этом этапе нечего.
Журнал регистрации: кто и когда менял конфигурацию
Журнал регистрации не умеет откатывать изменения. Зато он отвечает на вопрос, который часто предшествует откату: кто и в какой момент обновил конфигурацию.
Открыть журнал в Конфигураторе: Администрирование → Журнал регистрации. В пользовательском режиме он есть в разделе Администрирование типовых конфигураций.
Как найти нужные события:
- Установите отбор по периоду — день, когда начались проблемы.
- В отборе по событиям оставьте события группы «Информационная база»: изменение конфигурации и изменение конфигурации базы данных.
- Посмотрите колонки «Пользователь» и «Компьютер».
Что даст журнал:
- 🕐 точное время обновления — с ним проще выбрать нужную резервную копию;
- 👤 имя пользователя — можно спросить, что именно он менял;
- 🔄 последовательность событий — видно, было ли несколько обновлений подряд.
Какие объекты изменились, журнал не покажет. Для этого нужно сравнение конфигураций — оно описано ниже.
Откат изменений через хранилище конфигурации
Если база подключена к хранилищу, у вас есть история версий. Это самый удобный способ отменить изменения в конфигураторе выборочно.
Отменить свои незавершённые правки объекта
Захватили объект, наделали изменений и передумали:
- В дереве щёлкните правой кнопкой по захваченному объекту.
- Выберите
Хранилище → Отменить захват. - В диалоге оставьте флаг получения объекта из хранилища.
Локальные изменения объекта заменятся версией из хранилища, а захват снимется. Если флаг снять, объект освободится, но ваши правки останутся в основной конфигурации и будут расходиться с хранилищем.
Вернуться к прошлой версии из истории
Чужие изменения уже помещены в хранилище, и их нужно отменить:
- Откройте
Конфигурация → Хранилище конфигурации → История хранилища. - Найдите версию до проблемного помещения. Ориентируйтесь на дату, автора и комментарий.
- Выделите строки и запустите сравнение версий — убедитесь, что откатываете то, что нужно.
- Сохраните нужную версию в файл
.cf. - Захватите в хранилище объекты, которые будете возвращать.
- Сравните основную конфигурацию с этим файлом и объедините только нужные объекты (порядок — в следующем разделе).
- Поместите объекты в хранилище с комментарием «Откат изменений версии N».
Новая версия поверх старой лучше, чем попытка «стереть» историю. История остаётся честной: видно, что меняли и что потом вернули.
Сравнение с эталоном и выборочный возврат объектов
Когда откатить нужно не всё, а пару справочников или один общий модуль, используйте сравнение и объединение. Эталоном может быть:
- 📄 конфигурация базы данных;
- 💾 файл
.cf, сохранённый до правок; - 🏭 конфигурация поставщика (для типовых решений на поддержке).
Шаг 1. Посмотрите, что изменилось
Откройте Конфигурация → Сравнить конфигурации…. Слева выберите основную конфигурацию, справа — конфигурацию БД, поставщика или файл. Платформа покажет дерево отличий: изменённые объекты отмечены, а по каждому модулю можно открыть построчное сравнение.
Шаг 2. Верните нужные объекты из файла
- Сохраните текущее состояние:
Конфигурация → Сохранить конфигурацию в файл. Это страховка на случай ошибки при объединении. - Выберите
Конфигурация → Сравнить, объединить с конфигурацией из файла…и укажите эталонный.cf. - В дереве объединения снимите все флажки.
- Отметьте только объекты, которые нужно вернуть к прежнему виду.
- Нажмите «Выполнить».
- Проверьте результат сравнением с конфигурацией БД и только потом обновляйте базу.
Флажок можно ставить не только на весь объект, но и на его часть: отдельный модуль, форму, макет. Это удобно, когда в справочнике испортили только модуль формы, а новый реквизит нужно сохранить.
Если конфигурация на поддержке и вы объединяете с файлом поставщика, правила поддержки для объектов могут измениться. Проверьте их после объединения в Конфигурация → Поддержка → Настройка поддержки.
Типовую конфигурацию нужно вернуть целиком
Если доработок не жалко и нужна чистая типовая, загрузите файл поставщика целиком: Конфигурация → Загрузить конфигурацию из файла…. Основная конфигурация полностью заменится содержимым .cf. Дальше — обновление конфигурации БД.
Как откатить уже применённое обновление конфигурации базы данных
Конфигурация → Обновить конфигурацию базы данных (клавиша F7) переносит основную конфигурацию в базу. Кнопки «Отменить» у этой операции нет. Вариантов два.
| Способ | Когда подходит | Риск |
|---|---|---|
Загрузить прежний .cf и снова обновить базу | Меняли код, формы, макеты; новые реквизиты пустые | Данные в реквизитах, добавленных после копии, будут удалены |
Восстановить .dt (Администрирование → Загрузить информационную базу) | Удаляли реквизиты или таблицы с данными, меняли типы | Потеряются данные, введённые после выгрузки |
Почему не всегда хватает .cf. Когда вы удаляете реквизит и обновляете базу, платформа реструктурирует таблицы, и колонка с данными исчезает. Вернуть реквизит в конфигурацию можно, но он придёт пустым. Данные удалённых реквизитов восстанавливаются только из резервной копии базы.
Загрузка .dt полностью заменяет базу. Всё, что пользователи ввели после выгрузки, пропадёт. Перед загрузкой выгрузите текущую базу в отдельный .dt, а загрузку проводите, когда в базе никто не работает: при загрузке активные сеансы придётся завершить.
Для клиент-серверной базы вместо .dt часто используют резервную копию СУБД — она восстанавливается быстрее на больших объёмах. Это делает администратор сервера средствами самой СУБД.
Частые ошибки при откате правок
- ❌ Закрыли модуль и надеются на Ctrl+Z. После закрытия окна отмены нет. Возвращайте текст через сравнение с конфигурацией БД: в окне построчного сравнения видно старый вариант, его можно скопировать.
- ❌ «Вернуться к конфигурации БД» при общей работе без хранилища. Команда сбрасывает и чужие несохранённые в базу правки. Договоритесь с коллегами до нажатия.
- ❌ Объединение с файлом при всех отмеченных флажках. Так вы откатите всю конфигурацию, а не один объект. Сначала снимите все флажки, потом ставьте нужные.
- ❌ Восстановление
.dtбез свежей выгрузки текущей базы. Если окажется, что откатились слишком далеко, вернуться будет не к чему. - ❌ Удаление реквизита «на пробу». Удалили, обновили базу, вернули — данные уже пропали. Вместо удаления переименуйте реквизит с префиксом
Удалитьи уберите его с форм.
💡 Чтобы откатывать было проще, делайте доработки типовых конфигураций в расширениях (они появились в платформе 8.3.6). Неудачное расширение отключается или удаляется, а основная конфигурация остаётся нетронутой.