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

Разработка и Конфигурация · 11 мин

Хранилище конфигурации 1С: как работать с ним на практике

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

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

Хранилище представляет собой каталог с файлом 1cv8ddb (или 1cv8ddb.1CD) и служебными данными. Разработчики подключаются к нему из конфигуратора, захватывают нужные объекты, вносят изменения и помещают результат обратно. Каждое помещение создаёт новую версию, к которой можно откатиться.

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

Что такое хранилище конфигурации и когда оно нужно

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

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

Как создать хранилище конфигурации

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

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

Создание хранилища по шагам
  1. 1
    Откройте конфигуратор эталонной базы под учётной записью с полными правами
  2. 2
    Выберите Конфигурация → Хранилище конфигурации → Создать хранилище
  3. 3
    Укажите пустой каталог на сетевом ресурсе с доступом на запись для всех разработчиков
  4. 4
    Дождитесь помещения конфигурации в хранилище — создаётся первая версия
  5. 5
    В разделе Администрирование добавьте пользователей хранилища для каждого разработчика
  6. 6
    Проверьте подключение с другого компьютера под созданной учётной записью

Как подключиться к хранилищу

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

Для нового разработчика удобнее создать пустую базу и загрузить конфигурацию из хранилища при первом подключении. Так гарантируется, что локальная копия полностью совпадает с эталоном и не содержит забытых локальных правок.

Ежедневный цикл работы: захват, изменение, помещение

Начинайте рабочий день с получения изменений: «Хранилище конфигурации → Получить из хранилища» или команда обновления конфигурации из хранилища. Это подтянет правки коллег и снизит вероятность конфликтов при помещении.

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

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

Типичные ошибки в ежедневной работе
01
Захват десятков объектов «про запас» — коллеги не могут править нужные им объекты и вынуждены ждать или просить отменить захват
02
Помещение без комментария — история версий превращается в бесполезный список номеров
03
Работа неделями без получения изменений — при помещении возникает масса конфликтов и рассинхронизация
04
Захват объекта и уход в отпуск — объект заблокирован, снять захват может только администратор хранилища

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

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

Реструктуризацию в рабочей базе проводите в нерабочее время и только после резервного копирования. Если обновление прервётся на середине, база может остаться в состоянии, требующем восстановления из копии.

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

Как проверить результат помещения

Версия в хранилище
Норма

В истории хранилища появилась новая версия с вашим комментарием

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

Версии нет — помещение не выполнено или завершилось ошибкой

Состояние объектов
Норма

Изменённые объекты помечены как помещённые, захват снят или оставлен осознанно

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

Объекты висят захваченными без необходимости

Конфигурация базы данных
Норма

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

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

Конфигурация базы данных отличается — изменения не применились

Конфликты, отмена захвата и откат версий

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

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

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

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

Как выбрать действие в спорной ситуации

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

Ограничения хранилища и альтернативы

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

Для крупных команд и сложных процессов платформа предлагает EDT с интеграцией Git: там доступны ветки, merge request и построчное слияние. Переход на EDT оправдан при команде от нескольких разработчиков и необходимости параллельных релизных веток. Для небольших команд классическое хранилище остаётся простым и надёжным решением.

Хранилище конфигурации или EDT с Git

Классическое хранилище

Подходит командам до нескольких человек и линейной разработке; простое администрирование, но нет веток, а захват блокирует объект целиком

1C:EDT + Git

Подходит крупным командам и параллельным релизам; ветки и построчное слияние, но требует освоения EDT и поддержки Git-инфраструктуры

Выгрузка cf-файлов вручную

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

FAQ

Можно ли работать с хранилищем через интернет, а не по локальной сети?

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

Что делать, если хранилище повреждено и не открывается?

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

Можно ли работать с конфигурацией, не подключаясь к хранилищу?

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

Как узнать, кто и когда изменил конкретный объект?

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

Почему объект нельзя захватить, хотя никто им не работает?

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

Нужно ли помещать в хранилище каждое мелкое изменение?

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

Итог

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

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