Как восстановить изменения после подключения к хранилищу 1С и правильно обновить рабочую базу?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Почему при подключении к хранилищу пропадают данные?

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

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

Шаг 1: Захват объектов в хранилище

Выясним причину, по которой простое сравнение и объединение с файлом .cf может не дать результата. После подключения к хранилищу все объекты конфигурации находятся в состоянии «не захвачено». Это значит, что они защищены от изменений со стороны пользователя. Если мы попытаемся выполнить сравнение/объединение, система может показать различия, но не позволит применить их, так как объекты заблокированы хранилищем.

Разберем, как правильно подготовить базу к восстановлению данных:

  1. Откройте дерево конфигурации.
  2. Нажмите правой кнопкой мыши на корень конфигурации (самая верхняя строка с названием вашей системы).
  3. Выберите пункт «Хранилище конфигурации» — «Захватить в хранилище».
  4. В появившемся окне обязательно установите флаг «Рекурсивно». Это позволит захватить не только корень, но и все подчиненные объекты (справочники, документы, модули), в которых могли быть изменения.

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

Шаг 2: Сравнение и объединение с сохраненным файлом

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

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

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

Шаг 3: Помещение изменений в хранилище

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

  1. Нажмите правой кнопкой на корень конфигурации и выберите «Хранилище конфигурации» — «Поместить в хранилище».
  2. В окне помещения желательно оставить подробный комментарий о том, какие задачи были выполнены. Это поможет в будущем при анализе истории.
  3. Нажмите «ОК». Теперь версия в хранилище обновилась и инкрементировалась (например, стала Версией №10).

Шаг 4: Обновление рабочей базы

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

Посмотрим на алгоритм обновления рабочей базы:

  1. Запустите Конфигуратор рабочей базы.
  2. Если рабочая база еще не подключена к хранилищу, подключите её (в режиме «только для получения», чтобы случайно ничего не захватить).
  3. Выполните команду «Конфигурация» — «Хранилище конфигурации» — «Обновить конфигурацию из хранилища». На этом этапе данные из хранилища копируются в основную конфигурацию рабочей базы.
  4. Обратите внимание: кнопка «Обновить конфигурацию базы данных» (синий бочонок или клавиша F7) станет активной. Это критически важный момент! Пока вы не нажмете F7, структура таблиц в SQL не изменится, и пользователи не увидят обновлений.
  5. Нажмите F7 и примите изменения.

Дополнительные рекомендации по работе с хранилищем

Для эффективной работы профессиональные разработчики используют дополнительные инструменты хранилища:

1. Использование меток (Labels)

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

2. Очистка локального кэша

Иногда возникают ошибки синхронизации (объект захвачен вами, но не дает сохранять изменения). В таких случаях помогает очистка локального кэша хранилища, который находится в папке профиля пользователя AppData\Local\1C\1cv8\...\repository.

3. Сервер хранилища (crserver.exe)

Если вы работаете в команде, настоятельно рекомендуем использовать crserver.exe (протокол tcp://) вместо прямого доступа к файлу через сетевую папку. Это значительно ускоряет работу и предотвращает риск повреждения базы хранилища при сетевых сбоях.

4. Автоматизация обновлений (CI/CD)

Для крупных проектов процесс обновления рабочей базы можно автоматизировать через командную строку. Рассмотрим пример команды для получения изменений из хранилища:


"C:\Program Files\1cv8\common\1cv8.exe" DESIGNER /S "Server\Base" /N "Admin" /P "Pass" /ConfigurationRepositoryF "tcp://RepoServer/Repo" /ConfigurationRepositoryN "DevUser" /ConfigurationRepositoryP "DevPass" /ConfigurationRepositoryUpdateCfg /UpdateDBCfg

Этот скрипт автоматически обновит конфигурацию из хранилища и применит изменения к базе данных (UpdateDBCfg).

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

← На главную