Ведём разработку вдвоём и больше: привязка информационной базы к хранилищу конфигурации, захват объектов и история версий

· 10 мин

Содержание

Чтобы подключить базу 1С к хранилищу, откройте её в Конфигураторе и выберите Конфигурация → Хранилище конфигурации → Подключиться к хранилищу.... Укажите путь к хранилищу (папку для файлового варианта или адрес вида tcp://server/repo для сервера хранилища), имя пользователя хранилища и пароль. Конфигурация базы будет заменена конфигурацией из хранилища, после чего останется обновить конфигурацию базы данных (F7).

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

Что подготовить до подключения к хранилищу

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

📋 Что нужно иметь на руках:

  • 📁 путь к хранилищу — сетевая папка (\\fs01\repo\buh) или адрес сервера хранилища (tcp://repo-srv/buh);
  • 👤 учётная запись в хранилище — её создаёт администратор хранилища; одна учётка на одного разработчика;
  • 🔢 версия платформы — желательно та же, что у сервера хранилища и у коллег;
  • 💾 выгрузка базы — Администрирование → Выгрузить информационную базу... в файл .dt;
  • 🧾 файл текущей конфигурации — Конфигурация → Сохранить конфигурацию в файл..., если в базе есть несохранённые в хранилище доработки.

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

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

ВариантПуть при подключенииКогда подходитЧто проверить
Файловое\\server\share\repo или D:\Repo\buh1–3 разработчика в одной сетиправа на запись в папку у каждого
Сервер хранилища (crserver)tcp://repo-srv/buh или tcp://repo-srv:1542/buhкоманда, удалённые разработчикислужба запущена, порт 1542 открыт
Через веб-серверhttp://web-srv/repo/repository.1ccrдоступ из-за периметра без VPNпубликация хранилища на веб-сервере

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

💡 Сетевую папку файлового хранилища подключайте по UNC-пути, а не через букву диска. Буква Z: у коллеги может указывать на другую шару, и путь в настройках перестанет совпадать.

Пошаговое подключение базы к хранилищу конфигурации

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

Шаг 1. Открыть базу в Конфигураторе

Запустите 1С, выберите базу и нажмите Конфигуратор. Войдите пользователем с правами администратора информационной базы. Пользователи базы и пользователи хранилища — это разные списки, логин и пароль здесь могут не совпадать.

Шаг 2. Открыть окно подключения

Выберите Конфигурация → Хранилище конфигурации → Подключиться к хранилищу.... Откроется окно с тремя полями:

  1. Путь хранилища — папка или адрес tcp:// / http://; для папки есть кнопка выбора каталога.
  2. Пользователь — имя из списка пользователей хранилища.
  3. Пароль — пароль этого пользователя хранилища.

Шаг 3. Подтвердить замену конфигурации

Если конфигурация базы отличается от конфигурации хранилища, платформа предупредит, что текущая конфигурация будет заменена. Согласитесь — это нормальное поведение. Остановиться можно здесь, если вы не сохранили свои правки в .cf.

Шаг 4. Обновить конфигурацию базы данных

После загрузки из хранилища основная конфигурация изменилась, а структура базы данных — ещё нет. Выполните Конфигурация → Обновить конфигурацию базы данных (F7) и примите изменения.

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

Шаг 5. Проверить, что привязка работает

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

Проверка после подключения
Выполнено: 0 / 5

Подключение из командной строки

Для скриптов и стендов CI базу привязывают пакетным запуском Конфигуратора:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Dev" /N "Admin" /P "" ^
  /ConfigurationRepositoryF "tcp://repo-srv/buh" ^
  /ConfigurationRepositoryN "ci-bot" /ConfigurationRepositoryP "secret" ^
  /ConfigurationRepositoryBindCfg -forceBindAlreadyBindedUser -forceReplaceCfg ^
  /UpdateDBCfg /Out "D:\Logs\bind.log"

Ключ -forceReplaceCfg разрешает заменить конфигурацию базы без вопроса, -forceBindAlreadyBindedUser — привязать пользователя хранилища, который уже числится подключённым из другой базы. Номер платформы в пути подставьте свой. Для последующих обновлений из хранилища используют /ConfigurationRepositoryUpdateCfg.

Пользователи хранилища, пароли и права доступа

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

Учётные записи внутри хранилища

Список пользователей ведёт администратор хранилища: Конфигурация → Хранилище конфигурации → Администрирование.... В этом окне создают пользователя, задают пароль и права флажками в его карточке.

👥 Практичная схема ролей:

  • 🛠 разработчик — может захватывать объекты и помещать изменения;
  • 👀 читатель — только получать конфигурацию и смотреть историю (тестировщик, консультант);
  • 🔑 администратор — управляет пользователями и может снимать чужие захваты;
  • 🤖 сервисная учётка — для CI и автосборок, только чтение.

Не давайте одну учётку на двоих. Хранилище помнит, кто захватил объект и кто поместил версию. Общий логин «dev» превращает историю в бесполезный список без авторов.

Доступ к файлам и сети

  • 📁 Файловое хранилище: пароль хранилища защищает от случайных действий, но не от того, у кого есть доступ к папке. Права на шару давайте только разработчикам.
  • 🖥 Сервер хранилища: клиенты не трогают файлы напрямую, папку можно закрыть для всех, кроме учётной записи службы crserver.
  • 🌐 HTTP: публикация открывает хранилище наружу — включайте HTTPS на веб-сервере и не оставляйте пустых паролей.

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

Захват, помещение и отмена захвата объектов

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

ДействиеГде в менюЧто происходит
ЗахватХранилище конфигурации → Захватить объекты... или контекстное меню объектаобъект закрепляется за вами, коллеги не могут его менять
ПомещениеПоместить изменения объектов в хранилище...ваши правки становятся новой версией с комментарием
Отмена захватаОтменить захват...объект освобождается, локальные правки по нему можно откатить
ПолучениеПолучить конфигурацию из хранилища / Обновить конфигурацию из хранилищав базу приходят чужие изменения

Как читать значки

  • 🟢 зелёный замок — объект захвачен вами;
  • 🔴 красный замок — объект захвачен другим пользователем;
  • без замка — объект свободен.

Приёмы, без которых в команде тесно

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

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

История хранилища и сравнение версий

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

🔍 Что можно сделать в истории:

  • посмотреть, какие объекты изменились в конкретной версии;
  • сравнить две версии между собой или версию с текущей конфигурацией;
  • сохранить любую версию в файл .cf — удобно для отката или передачи на тестовую базу;
  • установить метку на версию, например «Релиз 2.4 в прод» — по ней потом быстро найти точку выпуска;
  • получить конфигурацию определённой версии в базу.

Как найти, кто сломал модуль

  1. Откройте историю и задайте отбор по объекту — например, по общему модулю, который начал падать.
  2. В списке останутся только версии, где этот модуль менялся.
  3. Выделите две соседние версии и запустите сравнение — увидите построчную разницу и автора.

💡 Перед выпуском обновления в рабочую базу ставьте метку на версию. Если релиз придётся откатить, вы сохраните .cf с этой версии, а не будете вспоминать номер.

Чем история не заменяет резервную копию

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

Ошибки при подключении к хранилищу и в работе

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

Частые ошибки и как их избежать

  • 🚫 Подключили рабочую базу, где правили «по живому». Правки исчезли при замене конфигурации. Решение — заранее сохранить .cf и после подключения перенести доработки сравнением.
  • 🚫 Забыли F7 после подключения. Конфигурация базы данных отстаёт от основной, пользователи работают со старой версией. Проверяйте признак изменённой конфигурации в заголовке.
  • 🚫 Захватили весь корень на неделю. Коллеги не могут добавить ни одного объекта. Корень — только на минуты.
  • 🚫 Скопировали папку хранилища, пока в него помещали версию. Копия может оказаться неконсистентной. Бэкап делайте, когда никто не работает, или останавливайте службу сервера хранилища на время копирования, предупредив разработчиков.

Отключение базы и перенос хранилища

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

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

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

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

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