Администрирование · 12 мин
Как откатить изменения в хранилище конфигурации 1С
Как откатить изменения в хранилище конфигурации 1С: возврат к версии, отмена захвата объектов, восстановление из копии. Пошаговые инструкции и типичные ошибки.
Хранилище конфигурации 1С ведёт историю версий, и это главный инструмент отката ошибочных изменений. Если разработчик захватил объект, внёс неправильные доработки и поместил их в хранилище, всегда можно вернуться к предыдущей версии — но способ зависит от ситуации: нужно ли отменить ещё не сохранённые правки, откатить конкретный объект или восстановить всю конфигурацию целиком.
Важно понимать базовый принцип: хранилище хранит только конфигурацию (метаданные, код, формы), но не пользовательские данные. Откат версии конфигурации не удаляет документы и справочники в информационной базе, однако может затронуть структуру данных, если в новых версиях добавлялись или удалялись реквизиты. Поэтому перед любым откатом, который пойдёт дальше в рабочую базу, делается резервная копия.
Ниже разобраны все рабочие сценарии: от отмены захвата объекта до полного восстановления конфигурации из старой версии хранилища, а также вариант с файлами выгрузки, когда само хранилище недоступно или повреждено.
Что именно нужно откатить: определяем сценарий
Прежде чем действовать, определите, на каком этапе находятся нежелательные изменения. От этого зависит и риск, и объём работы. Самый простой случай — изменения сделаны в конфигураторе, но ещё не помещены в хранилище: достаточно отменить захват или не сохранять конфигурацию. Средний по сложности — изменения помещены в хранилище, но рабочая база ещё не обновлена. Самый тяжёлый — обновление уже применено к рабочей базе, и пользователи успели поработать на новой структуре.
Как выбрать действие
Отдельно стоит ситуация, когда нужно отменить только часть правок, а остальные изменения той же версии сохранить. Здесь прямой откат версии не подходит — придётся работать через сравнение и объединение конфигураций, выборочно возвращая старый код нужных объектов.
Отмена захвата объекта без потери данных хранилища
Если объект захвачен вами и изменения ещё не помещены, самый быстрый откат — отмена захвата. Откройте конфигуратор, перейдите в меню «Конфигурация → Хранилище конфигурации → Отменить захват» и отметьте нужные объекты. Конфигурация базы вернётся к состоянию последней версии хранилища, а все локальные правки будут потеряны.
Если объект захвачен другим разработчиком, который недоступен, администратор хранилища может отменить захват принудительно: в окне хранилища на вкладке «Соединения» или через список захваченных объектов с правами администратора хранилища. Учтите, что при этом несохранённые правки коллеги пропадут без возможности восстановления.
Перед отменой захвата полезно сохранить текущую версию изменённого объекта в файл: выгрузите конфигурацию или отдельные модули через «Конфигурация → Сохранить конфигурацию в файл» либо скопируйте текст модуля. Это страховка на случай, если часть правок понадобится вернуть вручную.
Возврат к предыдущей версии хранилища
Основной инструмент отката — история версий хранилища. Откройте конфигуратор с пользователем, имеющим права администратора хранилища, и перейдите: «Конфигурация → Хранилище конфигурации → Хранилище». В открывшемся окне перейдите на вкладку «Версии» — там отображается список всех зафиксированных версий с номерами, датами, авторами и комментариями.
Найдите версию, к которой нужно вернуться. Комментарии при помещении объектов здесь критически важны: по ним проще определить, в какой версии появилось ошибочное изменение. Если комментарии не велись, ориентируйтесь по дате и списку изменённых объектов — его можно посмотреть, выбрав версию и открыв отчёт по истории хранилища.
- 1Сделайте резервную копию информационной базы (выгрузку .dt или копию на уровне СУБД)
- 2Откройте конфигуратор, подключитесь к хранилищу и откройте вкладку «Версии»
- 3Выделите нужную версию и нажмите «Открыть версию» либо используйте «Сравнить/объединить с версией хранилища»
- 4При сравнении отметьте объекты, которые нужно вернуть к старому состоянию, и выполните объединение
- 5Обновите конфигурацию базы данных (F7), проверив список реструктуризации
- 6Протестируйте ключевые операции на копии базы до применения в рабочей
Для полного отката всей конфигурации удобнее другой путь: выделите нужную версию и используйте команду загрузки конфигурации из этой версии в базу. Платформа заменит текущую конфигурацию базы на выбранную версию. После этого обязательно выполните «Обновить конфигурацию базы данных» — платформа покажет окно реструктуризации, если между версиями менялась структура данных.
Выборочный откат отдельных объектов
Когда откатывать всю конфигурацию нельзя (в новых версиях есть полезные доработки других разработчиков), используйте сравнение и объединение: «Конфигурация → Сравнить, объединить с конфигурацией из файла» или с версией хранилища. В дереве различий отметьте только те объекты, которые нужно вернуть, и установите режим «Взять из версии хранилища». Остальные объекты останутся в текущем состоянии.
Откат рабочей базы после применения ошибочного обновления
Если ошибочная версия уже попала в рабочую базу, действия зависят от того, менялась ли структура данных. Если правки касались только модулей, форм и макетов — откат конфигурации на прежнюю версию безопасен: данные не затрагиваются, достаточно обновить конфигурацию базы данных из нужной версии хранилища.
Сложнее, когда в ошибочной версии добавлялись или удалялись реквизиты, измерения регистров, менялись типы полей. При откате платформа выполнит обратную реструктуризацию, и данные в удаляемых реквизитах будут потеряны. Поэтому перед таким откатом обязательно сделайте полную выгрузку базы в .dt, а лучше дополнительно сохраните критичные данные отчётами или выгрузкой в табличные документы.
После обновления конфигурации базы данных проверьте журнал реструктуризации: платформа сообщает о принятых и отменённых изменениях. При появлении ошибок реструктуризации не пытайтесь повторно обновлять базу «вслепую» — проанализируйте сообщение, часто причина в ссылочной целостности или длине наименований.
Восстановление без хранилища: файл .cf и резервная копия
Хранилище может оказаться недоступным: повреждён файл 1cv8ddb (файловое хранилище), потерян каталог на сервере, утерян пароль администратора. В этом случае источником для отката становится файл конфигурации .cf — если вы регулярно сохраняли его как эталон, либо конфигурация самой рабочей базы.
Чтобы поднять конфигурацию из рабочей базы, откройте её конфигуратор и выполните «Конфигурация → Сохранить конфигурацию в файл». Полученный .cf можно загрузить в любую другую базу через «Загрузить конфигурацию из файла». Это полноценная замена конфигурации, но без истории версий — история хранится только в самом хранилище.
Если повреждено файловое хранилище, иногда помогает копия файла 1cv8ddb из резервной копии каталога. Подключитесь к восстановленному файлу как к новому хранилищу и проверьте версии. При отсутствии копии хранилище придётся создавать заново: сохраните текущую конфигурацию рабочей базы в .cf, создайте новое хранилище и загрузите конфигурацию из файла как первую версию.
Полезная привычка — после каждого значимого релиза сохранять конфигурацию рабочей базы в отдельный .cf-файл с датой в имени. Это занимает минуту, но даёт точку восстановления, независимую от работоспособности хранилища и доступности сервера.
Сравнение способов отката
Выбор способа определяется состоянием изменений и доступностью источников. Таблица ниже помогает сопоставить варианты по ключевым условиям.
| Способ | Когда применять | Что теряется | Риск для данных |
|---|---|---|---|
| Отмена захвата | Правки не помещены в хранилище | Несохранённые локальные изменения | Нет |
| Откат к версии хранилища | Ошибочная версия помещена | Изменения более поздних версий | Только при реструктуризации |
| Сравнение и объединение | Нужно вернуть часть объектов | Ничего, кроме откатываемых правок | Минимальный |
| Загрузка из .cf | Хранилище недоступно | История версий | Зависит от различий конфигураций |
| Восстановление из копии .dt | Повреждены и конфигурация, и данные | Данные после момента копии | Теряются свежие данные |
Проверка результата и типичные ошибки
После отката убедитесь, что конфигурация базы соответствует нужной версии. Откройте «Конфигурация → Поддержка → Настройка поддержки» или сравните конфигурацию базы с конфигурацией поставщика/хранилища — различий быть не должно (если откат был полным). Затем запустите базу в режиме предприятия и проверьте типовые операции: проведение документов, формирование ключевых отчётов, работу изменённых ранее объектов.
Как проверить результат
Различий нет, либо есть только осознанно оставленные
Объекты остались в ошибочном состоянии
Обновление завершилось без ошибок реструктуризации
Сообщения об ошибках, база не запускается
Документы проводятся, отчёты формируются
Ошибки выполнения модулей, недостающие реквизиты
Отдельное замечание про распределённые базы: если база входит в план обмена РИБ, откат конфигурации в центральном узле требует аккуратной рассылки обновления в подчинённые узлы. Несовпадение версий конфигурации между узлами блокирует обмен, поэтому откат в РИБ планируйте на время минимальной нагрузки и контролируйте приём обновления в каждом узле.
Что важно запомнить
Хранилище откатывает только конфигурацию, не данные. Незафиксированные правки отменяются отменой захвата, помещённые — возвратом к версии через вкладку «Версии» или выборочным объединением. Перед откатом рабочей базы всегда делайте копию и внимательно читайте окно реструктуризации.
Частые вопросы
Можно ли удалить ошибочную версию из хранилища совсем?
Штатного удаления произвольной версии из середины истории нет — хранилище ведёт последовательную историю. Можно лишь загрузить в базу более раннюю версию и продолжить работу с неё: новые помещения создадут следующие версии поверх. Полное сокращение истории возможно только пересозданием хранилища.
Что делать, если забыт пароль администратора хранилища?
Пароль хранилища не восстанавливается штатными средствами. Практический путь — сохранить конфигурацию из рабочей базы в файл .cf, создать новое хранилище с новым администратором и загрузить конфигурацию туда. История версий при этом будет начата заново.
Откатится ли конфигурация вместе с данными документов?
Нет. Хранилище содержит только метаданные, код и формы. Данные (документы, справочники, регистры) версиями хранилища не управляются. Чтобы вернуть данные, нужна резервная копия информационной базы — выгрузка .dt или копия средствами СУБД.
Можно ли откатить только один модуль, а не весь объект?
Напрямую по модулю — нет, минимальная единица в хранилище — объект конфигурации. Но при сравнении и объединении с версией хранилища можно вручную перенести нужный фрагмент кода, либо открыть старую версию объекта, скопировать текст модуля и вставить в текущую конфигурацию.
Обязательно ли обновлять конфигурацию базы данных после отката?
Да. Загрузка версии из хранилища меняет только основную конфигурацию; конфигурация базы данных обновляется отдельной командой (F7). Пока обновление не выполнено, база работает на старой структуре, а конфигуратор будет показывать признак расхождения конфигураций.
Как узнать, кто и когда внёс ошибочное изменение?
Откройте окно хранилища и постройте отчёт по истории: «Конфигурация → Хранилище конфигурации → Отчёт по истории». В отчёте видно, какие объекты менялись в каждой версии, кем и когда. По конкретному объекту историю можно посмотреть и из его свойств через вызов истории хранилища.