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

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

Как откатить изменения в хранилище конфигурации 1С

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

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

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

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

Что именно нужно откатить: определяем сценарий

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

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

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

Объект захвачен, но изменения не помещались в хранилищеОтмените захват объекта — хранилище вернёт его к последней зафиксированной версии
Изменения помещены в хранилище, рабочая база не обновленаЗагрузите в базу предыдущую версию конфигурации из хранилища
Рабочая база уже обновлена на ошибочную версиюСделайте копию базы, затем откатите конфигурацию на нужную версию и проверьте реструктуризацию
Хранилище повреждено или недоступноВосстановите конфигурацию из файла .cf или из копии рабочей базы

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

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

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

Если объект захвачен другим разработчиком, который недоступен, администратор хранилища может отменить захват принудительно: в окне хранилища на вкладке «Соединения» или через список захваченных объектов с правами администратора хранилища. Учтите, что при этом несохранённые правки коллеги пропадут без возможности восстановления.

Перед отменой захвата полезно сохранить текущую версию изменённого объекта в файл: выгрузите конфигурацию или отдельные модули через «Конфигурация → Сохранить конфигурацию в файл» либо скопируйте текст модуля. Это страховка на случай, если часть правок понадобится вернуть вручную.

Возврат к предыдущей версии хранилища

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

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

Порядок отката к версии хранилища
  1. 1
    Сделайте резервную копию информационной базы (выгрузку .dt или копию на уровне СУБД)
  2. 2
    Откройте конфигуратор, подключитесь к хранилищу и откройте вкладку «Версии»
  3. 3
    Выделите нужную версию и нажмите «Открыть версию» либо используйте «Сравнить/объединить с версией хранилища»
  4. 4
    При сравнении отметьте объекты, которые нужно вернуть к старому состоянию, и выполните объединение
  5. 5
    Обновите конфигурацию базы данных (F7), проверив список реструктуризации
  6. 6
    Протестируйте ключевые операции на копии базы до применения в рабочей

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

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

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

Откат рабочей базы после применения ошибочного обновления

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

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

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

Восстановление без хранилища: файл .cf и резервная копия

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

Чтобы поднять конфигурацию из рабочей базы, откройте её конфигуратор и выполните «Конфигурация → Сохранить конфигурацию в файл». Полученный .cf можно загрузить в любую другую базу через «Загрузить конфигурацию из файла». Это полноценная замена конфигурации, но без истории версий — история хранится только в самом хранилище.

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

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

Сравнение способов отката

Выбор способа определяется состоянием изменений и доступностью источников. Таблица ниже помогает сопоставить варианты по ключевым условиям.

СпособКогда применятьЧто теряетсяРиск для данных
Отмена захватаПравки не помещены в хранилищеНесохранённые локальные измененияНет
Откат к версии хранилищаОшибочная версия помещенаИзменения более поздних версийТолько при реструктуризации
Сравнение и объединениеНужно вернуть часть объектовНичего, кроме откатываемых правокМинимальный
Загрузка из .cfХранилище недоступноИстория версийЗависит от различий конфигураций
Восстановление из копии .dtПовреждены и конфигурация, и данныеДанные после момента копииТеряются свежие данные

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

После отката убедитесь, что конфигурация базы соответствует нужной версии. Откройте «Конфигурация → Поддержка → Настройка поддержки» или сравните конфигурацию базы с конфигурацией поставщика/хранилища — различий быть не должно (если откат был полным). Затем запустите базу в режиме предприятия и проверьте типовые операции: проведение документов, формирование ключевых отчётов, работу изменённых ранее объектов.

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

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

Сравнение конфигурации базы с версией хранилища
Норма

Различий нет, либо есть только осознанно оставленные

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

Объекты остались в ошибочном состоянии

Обновление конфигурации базы данных
Норма

Обновление завершилось без ошибок реструктуризации

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

Сообщения об ошибках, база не запускается

Работа в режиме предприятия
Норма

Документы проводятся, отчёты формируются

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

Ошибки выполнения модулей, недостающие реквизиты

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

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

Итог

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

Хранилище откатывает только конфигурацию, не данные. Незафиксированные правки отменяются отменой захвата, помещённые — возвратом к версии через вкладку «Версии» или выборочным объединением. Перед откатом рабочей базы всегда делайте копию и внимательно читайте окно реструктуризации.

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

Можно ли удалить ошибочную версию из хранилища совсем?

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

Что делать, если забыт пароль администратора хранилища?

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

Откатится ли конфигурация вместе с данными документов?

Нет. Хранилище содержит только метаданные, код и формы. Данные (документы, справочники, регистры) версиями хранилища не управляются. Чтобы вернуть данные, нужна резервная копия информационной базы — выгрузка .dt или копия средствами СУБД.

Можно ли откатить только один модуль, а не весь объект?

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

Обязательно ли обновлять конфигурацию базы данных после отката?

Да. Загрузка версии из хранилища меняет только основную конфигурацию; конфигурация базы данных обновляется отдельной командой (F7). Пока обновление не выполнено, база работает на старой структуре, а конфигуратор будет показывать признак расхождения конфигураций.

Как узнать, кто и когда внёс ошибочное изменение?

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