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

· 9 мин

Содержание

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

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

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

Чем хранилище отличается от информационной базы

Это разные сущности, и их легко перепутать.

  • 🗄️ Информационная база хранит и данные (справочники, документы, регистры), и текущую рабочую конфигурацию. У каждого разработчика база своя.
  • 📦 Хранилище хранит только конфигурацию и всю её историю версий. Данных в нём нет.

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

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

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

Все операции с хранилищем живут в Конфигураторе, в меню Администрирование → Хранилище конфигурации.

Создание нового хранилища:

  1. Откройте в Конфигураторе базу, конфигурация которой станет отправной точкой.
  2. Выберите Администрирование → Хранилище конфигурации → Создать хранилище.
  3. Укажите адрес хранилища (путь к папке для файлового варианта или адрес сервера — об этом ниже).
  4. Задайте имя и пароль администратора хранилища — этот пользователь получает полные права.

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

Подключение к существующему хранилищу:

  1. В другой базе выберите Администрирование → Хранилище конфигурации → Подключиться к хранилищу.
  2. Введите адрес хранилища, имя пользователя и пароль.

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

Файловое или серверное хранилище

Хранилище бывает двух видов, и выбор влияет на скорость и удобство удалённой работы.

КритерийФайловоеСерверное
Где лежитПапка (локальная или сетевая по UNC-пути)Отдельная служба хранилища, доступ через веб-сервер
Адрес подключенияПуть к папкеhttp://-адрес (через Apache или IIS)
Отдельная службаНе нужнаНужна
Для когоНебольшая команда в одной сетиРаспределённая команда, удалённые разработчики
Скорость по медленному каналуНизкаяВыше

Файловое хранилище проще: достаточно общей сетевой папки, к которой у всех есть доступ на чтение и запись. Минус — по медленному или нестабильному каналу работа с ним тормозит и чаще ломается.

Серверное хранилище поднимается как отдельная служба и публикуется через веб-сервер, подключение идёт по http-адресу. Это заметно комфортнее для тех, кто подключается через интернет или VPN.

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

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

Пользователи хранилища и их права

Хранилище ведёт собственный список пользователей, не связанный со списком пользователей информационной базы. Управляет им администратор хранилища через Администрирование → Хранилище конфигурации → Администрирование (список пользователей).

В карточке пользователя назначается набор прав. Основные из них:

  • 🔑 Администрирование хранилища — управление пользователями и настройками самого хранилища.
  • ✋ Захват объектов — право блокировать объекты для изменения и помещать версии.
  • 🧩 Изменение состава версий — операции с историей версий.
  • 👁️ Чтение данных — минимальный доступ: можно только получать конфигурацию из хранилища, но не менять её.

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

Для старта удобно свериться со списком:

Настройка хранилища перед работой команды
Выполнено: 0 / 6

Захват объектов и помещение версий: ежедневный цикл

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

Рабочий цикл одного изменения:

  1. Захватите объект. Контекстное меню объекта в дереве конфигурации → команда захвата в хранилище. Захваченный объект помечается значком и блокируется для остальных. Можно захватить объект вместе с подчинёнными.
  2. Внесите изменения в захваченные объекты как обычно.
  3. Поместите в хранилище. Команда помещения версии в хранилище сохраняет ваши правки, снимает захват и увеличивает номер версии. Обязательно пишите комментарий — он попадёт в историю.
  4. Отмените захват, если передумали. Команда отмены захвата освобождает объект без сохранения. Изменения, сделанные после захвата, при отмене теряются.

Чтобы забрать чужие изменения:

  • Хранилище конфигурации → Обновить конфигурацию из хранилища подтягивает актуальные версии объектов в вашу конфигурацию.
  • После этого примените изменения к базе через Конфигурация → Обновить конфигурацию базы данных (F7).

Если обновление затрагивает структуру данных (новые реквизиты, таблицы) и динамическое обновление невозможно, применение к базе потребует монопольного доступа. В рабочей базе это оборвёт сеансы пользователей — делайте такое обновление в согласованное окно. В личной базе разработчика проблемы обычно нет.

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

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

Как объекты ведут себя при захвате. Захваченный у вас объект коллеги видят как заблокированный и не могут его править. При этом читать и обновлять его из хранилища они по-прежнему могут — им придёт последняя помещённая версия, а не ваши несохранённые правки. Поэтому свежие изменения становятся доступны команде только после помещения, а не в момент захвата.

Сравнение, объединение и история версий

Хранилище ведёт полную историю, и это его сильная сторона.

История версий. Команда истории хранилища показывает список всех версий: номер, автора, дату и комментарий. По истории видно, кто и когда менял конфигурацию.

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

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

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

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

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

Хранилище и расширения конфигурации . Хранилище версионирует основную конфигурацию. Доработки, вынесенные в расширения конфигурации (появились в платформе 8.3.6), в хранилище не хранятся — их переносят и обновляют отдельными файлами .cfe. Если часть команды работает через расширения, для них настраивают отдельный порядок обмена версиями, а хранилище остаётся инструментом для основной конфигурации.

Типовые ошибки подключения и захвата

Большинство проблем с хранилищем сводится к доступу, правам и рассинхрону конфигураций.

Диагностика: выберите симптом

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

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

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

Хранит ли хранилище данные базы — справочники и документы?
Нет. В хранилище лежит только конфигурация и её история версий. Справочники, документы и регистры остаются в информационных базах. Синхронизировать данные между базами нужно отдельно.
Можно ли подключить одно хранилище к нескольким базам?
Да, в этом и смысл. К одному хранилищу подключаются базы всех разработчиков, а также отдельные базы для сборки или тестирования — обычно с правом только на чтение.
Разработчик захватил объект и недоступен. Как освободить?
Администратор хранилища может снять захват принудительно. Учтите: несохранённые правки этого человека при этом пропадут, поэтому сначала стоит убедиться, что они не нужны.
Чем «Обновить конфигурацию из хранилища» отличается от получения версии?
Обновление подтягивает актуальное состояние объектов из хранилища в вашу текущую конфигурацию. Получение версии выгружает конкретную историческую версию целиком — это инструмент отката и разбора прошлых состояний.
Как откатиться к старой версии конфигурации?
Откройте историю хранилища, найдите нужную версию по номеру, дате и комментарию и получите её. Вы вернётесь к состоянию конфигурации на тот момент.