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

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

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

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

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

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

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

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

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

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

Подготовка: права, каталог и резервная копия

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

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

Создание хранилища и подключение базы

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

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

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

Как поместить изменённые объекты в хранилище

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

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

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

Конфликты версий и получение изменений коллег

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

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

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

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

Объект захвачен другим разработчиком, а правка срочнаяДоговоритесь с коллегой о помещении и отмене захвата; административную отмену захвата используйте только как крайнюю меру
При помещении платформа сообщает о новой версии в хранилищеСначала выполните «Получить из хранилища», объедините изменения и повторите помещение
Объект не удаётся захватить из-за «зависшей» блокировки уволившего сотрудникаАдминистратор хранилища отменяет захват через «Администрирование хранилища»
Нужно вернуть объект к прошлому состояниюОткройте историю версий объекта, получите нужную версию и поместите её как новую

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

Убедиться в успешном помещении просто: откройте «Хранилище конфигурации → История» и проверьте, что появилась новая версия с вашим именем, комментарием и корректным списком объектов. Дополнительно сверьте, что в дереве конфигурации с объектов снят захват (если он должен был сняться), а конфигурация базы данных обновлена без предупреждений.

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

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

История хранилища
Норма

Новая версия с вашим именем, комментарием и списком объектов

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

Версия не появилась или содержит лишние объекты

Захват объектов
Норма

Пиктограммы захвата сняты с помещённых объектов

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

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

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

Обновление прошло без ошибок и предупреждений

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

Есть сообщения о рассогласовании или неприменённых изменениях

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

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

Альтернативы хранилищу: EDT и Git

Штатное хранилище покрывает базовые задачи групповой разработки, но имеет ограничения: последовательная модель захвата, слабые средства ветвления, зависимость от конфигуратора. Для крупных команд с параллельными релизными ветками чаще применяют 1C:EDT с выгрузкой проекта в Git: там доступны ветки, слияния, код-ревью и интеграция с CI.

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

Сравнение вариантов

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

Подходит небольшим командам; простое администрирование, но нет ветвления и захват объектов последовательный

1C:EDT + Git

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

Выгрузка в файлы конфигуратора + Git

Компромисс: работа в привычном конфигураторе, версионирование через выгрузку XML; слияния сложнее, чем в EDT

Итог

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

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

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

Можно ли поместить в хранилище всю конфигурацию целиком?

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

Что делать, если объект захвачен коллегой, который недоступен?

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

Можно ли работать с хранилищем без постоянного сетевого подключения?

Нет, хранилище конфигурации требует доступа к своему каталогу при каждой операции захвата, получения и помещения. Автономного режима, как в Git, у него нет. Если разработчикам нужно работать офлайн, рассмотрите связку 1C:EDT с Git.

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

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

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

Да, это требование платформы. Хранилище фиксирует только состояние, согласованное с конфигурацией базы данных. Если обновление не выполнено или завершилось с ошибками, помещение будет заблокировано до устранения проблемы.

Можно ли отключить базу от хранилища без потери данных?

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