Работа с хранилищем конфигурации в 1С — это стандарт индустрии для командной разработки и контроля версий. Однако новички часто сталкиваются с неприятной ситуацией: при первом подключении к хранилищу все локальные доработки, которые еще не были туда помещены, бесследно «затираются» конфигурацией из хранилища. В этой статье мы подробно разберем, как восстановить утерянные данные из файла выгрузки, как правильно захватывать объекты и каким образом переносить изменения в рабочую информационную базу.
Рассмотрим механизм работы команды «Подключиться к хранилищу». В момент выполнения этого действия система 1С полностью заменяет текущую основную конфигурацию (конфигурацию разработчика) той версией, которая на данный момент является актуальной в хранилище. Это логично с точки зрения системы: чтобы начать совместную работу, все участники должны иметь идентичную «точку старта».
Проанализируем ситуацию: если вы вели разработку в копии базы и решили подключить её к уже существующему хранилищу, ваши локальные изменения будут удалены. Чтобы избежать безвозвратной потери данных, обязательно делайте выгрузку конфигурации в файл .cf перед подключением. Если вы уже это сделали и потеряли правки в базе, не паникуйте — их можно вернуть.
Выясним причину, по которой простое сравнение и объединение с файлом .cf может не дать результата. После подключения к хранилищу все объекты конфигурации находятся в состоянии «не захвачено». Это значит, что они защищены от изменений со стороны пользователя. Если мы попытаемся выполнить сравнение/объединение, система может показать различия, но не позволит применить их, так как объекты заблокированы хранилищем.
Разберем, как правильно подготовить базу к восстановлению данных:
Важный совет: Если изменений очень много и вы не помните точно, какие объекты правили, захват всей конфигурации рекурсивно — самый надежный способ. Однако помните, что пока объекты захвачены вами, другие разработчики не смогут их изменять.
Теперь, когда объекты захвачены и доступны для редактирования, мы можем вернуть наши доработки. Выполним следующие действия:
.cf.После этого ваша локальная конфигурация разработчика станет идентична той, что была до «затирания» хранилищем.
На данном этапе изменения есть только в вашей локальной базе. Чтобы они стали доступны коллегам и для обновления рабочей базы, их нужно «отдать» в хранилище. Проанализируем последовательность и список изменений:
Рассмотрим ситуацию, когда изменения уже в хранилище, и нам нужно перенести их в «боевую» (рабочую) базу. Важно понимать разницу между Конфигурацией разработчика и Конфигурацией базы данных.
Посмотрим на алгоритм обновления рабочей базы:
Для эффективной работы профессиональные разработчики используют дополнительные инструменты хранилища:
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 перед любыми манипуляциями с подключением к хранилищу, и тогда любая техническая заминка будет решаться за несколько минут.