Как работать с хранилищем конфигурации в 1С
Содержание
Хранилище конфигурации подключается в Конфигураторе: Администрирование → Хранилище конфигурации → Подключиться к хранилищу. Это отдельный механизм совместной разработки: несколько специалистов правят одну и ту же конфигурацию, но каждый — в своей базе, а хранилище хранит общую историю версий и не даёт двум людям одновременно менять один объект.
Работать с ним нужно, когда над конфигурацией трудится больше одного человека либо когда важно вести историю изменений и уметь откатиться к любой прошлой версии. Если вы правите типовую на поддержке в одиночку, хранилище не обязательно — но оно всё равно удобно как журнал версий и страховка от неудачной доработки.
Ниже — как создать и настроить хранилище , раздать права, построить ежедневный цикл «захватил — изменил — поместил» и что делать с типовыми ошибками подключения и захвата.
Чем хранилище отличается от информационной базы
Это разные сущности, и их легко перепутать.
- 🗄️ Информационная база хранит и данные (справочники, документы, регистры), и текущую рабочую конфигурацию. У каждого разработчика база своя.
- 📦 Хранилище хранит только конфигурацию и всю её историю версий. Данных в нём нет.
Схема совместной работы выглядит так: одно хранилище и несколько информационных баз, подключённых к нему. Разработчик меняет конфигурацию у себя, помещает изменения в хранилище, а коллеги забирают их к себе. Число подключённых баз не ограничено жёстко — к хранилищу подключают и рабочие базы разработчиков, и служебные базы для сборки релиза или автоматического тестирования. Хранилище при этом играет роль, похожую на систему контроля версий, но с одним важным отличием — оно блокирует объекты на уровне захвата, а не разрешает параллельную правку с последующим слиянием.
Данные между базами хранилище не переносит. Если вам нужно, чтобы у всех были одинаковые справочники и документы, это решается отдельно — выгрузкой/загрузкой базы или обменом, а не хранилищем.
Как создать хранилище и подключиться к нему
Все операции с хранилищем живут в Конфигураторе, в меню Администрирование → Хранилище конфигурации.
Создание нового хранилища:
- Откройте в Конфигураторе базу, конфигурация которой станет отправной точкой.
- Выберите
Администрирование → Хранилище конфигурации → Создать хранилище. - Укажите адрес хранилища (путь к папке для файлового варианта или адрес сервера — об этом ниже).
- Задайте имя и пароль администратора хранилища — этот пользователь получает полные права.
После создания текущая конфигурация базы помещается в хранилище как первая версия, а база автоматически подключается к нему.
Подключение к существующему хранилищу:
- В другой базе выберите
Администрирование → Хранилище конфигурации → Подключиться к хранилищу. - Введите адрес хранилища, имя пользователя и пароль.
Перед подключением конфигурация базы данных должна совпадать с версией в хранилище. Если вы подключаете пустую типовую или базу с другой конфигурацией, Конфигуратор предложит сравнить и объединить её с хранилищем. Проще всего создавать рабочую базу из той же конфигурации, что лежит в хранилище, — тогда подключение проходит без слияния.
Файловое или серверное хранилище
Хранилище бывает двух видов, и выбор влияет на скорость и удобство удалённой работы.
| Критерий | Файловое | Серверное |
|---|---|---|
| Где лежит | Папка (локальная или сетевая по UNC-пути) | Отдельная служба хранилища, доступ через веб-сервер |
| Адрес подключения | Путь к папке | http://-адрес (через Apache или IIS) |
| Отдельная служба | Не нужна | Нужна |
| Для кого | Небольшая команда в одной сети | Распределённая команда, удалённые разработчики |
| Скорость по медленному каналу | Низкая | Выше |
Файловое хранилище проще: достаточно общей сетевой папки, к которой у всех есть доступ на чтение и запись. Минус — по медленному или нестабильному каналу работа с ним тормозит и чаще ломается.
Серверное хранилище поднимается как отдельная служба и публикуется через веб-сервер, подключение идёт по http-адресу. Это заметно комфортнее для тех, кто подключается через интернет или VPN.
Файловое хранилище чувствительно к сетевым сбоям. Если папка во время помещения версии стала недоступна, операция может прерваться. Для команды, работающей удалённо, серверный вариант надёжнее.
Резервное копирование и перенос. Файловое хранилище — это папка, поэтому его резервная копия делается копированием папки целиком, лучше в момент, когда никто не помещает версию. Перенести такое хранилище на другой диск или сервер можно так же — скопировать папку и переподключить базы на новый путь. Серверное хранилище копируют и переносят средствами его службы. Хранилище хранит всю историю доработок — его потеря означает потерю этой истории, поэтому резервная копия хранилища обязательна наравне с копиями баз.
Пользователи хранилища и их права
Хранилище ведёт собственный список пользователей, не связанный со списком пользователей информационной базы. Управляет им администратор хранилища через Администрирование → Хранилище конфигурации → Администрирование (список пользователей).
В карточке пользователя назначается набор прав. Основные из них:
- 🔑 Администрирование хранилища — управление пользователями и настройками самого хранилища.
- ✋ Захват объектов — право блокировать объекты для изменения и помещать версии.
- 🧩 Изменение состава версий — операции с историей версий.
- 👁️ Чтение данных — минимальный доступ: можно только получать конфигурацию из хранилища, но не менять её.
Логика простая: рядовому разработчику хватает захвата объектов, ведущему или тимлиду — ещё и администрирование. Если человек должен только забирать актуальную конфигурацию (например, для сборки или тестирования), оставьте ему чтение данных без захвата.
Для старта удобно свериться со списком:
Захват объектов и помещение версий: ежедневный цикл
Основа совместной работы — блокировка объектов. Прежде чем менять модуль, форму или реквизит, объект нужно захватить, чтобы никто другой не правил его параллельно.
Рабочий цикл одного изменения:
- Захватите объект. Контекстное меню объекта в дереве конфигурации → команда захвата в хранилище. Захваченный объект помечается значком и блокируется для остальных. Можно захватить объект вместе с подчинёнными.
- Внесите изменения в захваченные объекты как обычно.
- Поместите в хранилище. Команда помещения версии в хранилище сохраняет ваши правки, снимает захват и увеличивает номер версии. Обязательно пишите комментарий — он попадёт в историю.
- Отмените захват, если передумали. Команда отмены захвата освобождает объект без сохранения. Изменения, сделанные после захвата, при отмене теряются.
Чтобы забрать чужие изменения:
Хранилище конфигурации → Обновить конфигурацию из хранилищаподтягивает актуальные версии объектов в вашу конфигурацию.- После этого примените изменения к базе через
Конфигурация → Обновить конфигурацию базы данных(F7).
Если обновление затрагивает структуру данных (новые реквизиты, таблицы) и динамическое обновление невозможно, применение к базе потребует монопольного доступа. В рабочей базе это оборвёт сеансы пользователей — делайте такое обновление в согласованное окно. В личной базе разработчика проблемы обычно нет.
Добавление новых объектов. Чтобы создать новый объект — справочник, документ, обработку, — захватить отдельный объект недостаточно: его ещё нет. Нужно захватить корень конфигурации (саму конфигурацию в вершине дерева) или ветку-владельца, потому что именно там хранится состав объектов. После создания и помещения захват корня сразу снимают — иначе никто другой не сможет добавлять свои объекты, пока вы держите вершину.
Хорошая привычка — захватывать минимум объектов и помещать их небольшими порциями с понятными комментариями. Чем дольше объект висит захваченным, тем больше коллег ждут, пока вы его отпустите. Особенно это касается корня конфигурации: его захват фактически останавливает добавление объектов у всей команды.
Как объекты ведут себя при захвате. Захваченный у вас объект коллеги видят как заблокированный и не могут его править. При этом читать и обновлять его из хранилища они по-прежнему могут — им придёт последняя помещённая версия, а не ваши несохранённые правки. Поэтому свежие изменения становятся доступны команде только после помещения, а не в момент захвата.
Сравнение, объединение и история версий
Хранилище ведёт полную историю, и это его сильная сторона.
История версий. Команда истории хранилища показывает список всех версий: номер, автора, дату и комментарий. По истории видно, кто и когда менял конфигурацию.
Получение конкретной версии. Можно выгрузить не последнюю, а любую историческую версию конфигурации — это и есть откат. Вы получаете состояние конфигурации на выбранный номер версии.
Сравнение. Конфигуратор умеет сравнивать вашу текущую конфигурацию с конфигурацией хранилища и показывать, что именно разошлось по объектам. Это полезно перед помещением крупной порции изменений.
Объединение с обновлением поставщика. Отдельная задача — когда типовая конфигурация на поддержке получает обновление от 1С. Порядок такой:
- Захватите объекты, которые затронет обновление (либо всю конфигурацию, если правок много).
- Выполните объединение с обновлением поставщика через стандартный механизм сравнения-объединения конфигураций.
- Разберите конфликты между правками поставщика и вашими доработками.
- Поместите результат в хранилище одной версией с комментарием про номер релиза.
Крупное объединение с обновлением поставщика лучше делать на отдельной базе и, по возможности, в одиночку — чтобы не держать пол-конфигурации захваченной, пока коллеги ждут.
Хранилище и расширения конфигурации
. Хранилище версионирует основную конфигурацию. Доработки, вынесенные в расширения конфигурации (появились в платформе 8.3.6), в хранилище не хранятся — их переносят и обновляют отдельными файлами .cfe. Если часть команды работает через расширения, для них настраивают отдельный порядок обмена версиями, а хранилище остаётся инструментом для основной конфигурации.
Типовые ошибки подключения и захвата
Большинство проблем с хранилищем сводится к доступу, правам и рассинхрону конфигураций.
Отдельно про принудительное снятие захвата: это полномочие администратора на случай, когда разработчик ушёл в отпуск или уволился, не отпустив объекты. Принудительная отмена захвата уничтожает несохранённые изменения этого пользователя, поэтому применяйте её осознанно и по согласованию.
Ещё одна частая ситуация — попытка захватить объект, который уже изменён локально без захвата (например, после подключения базы со своей конфигурацией). В этом случае сначала приведите конфигурацию в соответствие с хранилищем через объединение, а уже потом работайте штатно.