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

· 10 мин

Содержание

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

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

Подготовка: сервер хранилища, каталог и порт

Хранилище бывает трёх видов. Выбор зависит от того, где сидит команда.

Способ доступаАдрес при подключенииКогда подходит
Файловый\\fileserver\repo\ERP или D:\repo\ERP1–2 разработчика в одной локальной сети
Сервер хранилища (TCP)tcp://devsrv/ERP или tcp://devsrv:1542/ERPкоманда, сеть с задержками, VPN
Через веб-сервер (HTTP)http://devsrv/repo/repo.1ccr/ERPдоступ из интернета, порт 1542 закрыт

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

Установка сервера хранилища

Сервер хранилища — отдельный компонент дистрибутива платформы. При установке отметьте пункт «Сервер хранилища конфигураций 1С:Предприятия». Исполняемый файл называется crserver.exe и лежит в каталоге bin нужной версии платформы.

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

cd "C:\Program Files\1cv8\8.3.24.1548\bin"
crserver.exe -instsrvc -port 1542 -d "D:\repo"
crserver.exe -start

Здесь -port — порт, по умолчанию 1542, а -d — корневой каталог. Все хранилища создаются внутри него, а в адресе tcp://devsrv/ERP часть ERP — это подкаталог D:\repo\ERP.

Что проверить перед созданием хранилища

  • 🔹 Версия сервера хранилища совпадает с версией платформы у разработчиков. Расхождение даже в номере сборки — частая причина отказа в подключении.
  • 🔹 Учётная запись службы имеет полный доступ к каталогу D:\repo.
  • 🔹 В брандмауэре сервера открыт входящий TCP-порт 1542 (или ваш).
  • 🔹 Каталог хранилища входит в план резервного копирования. Копируйте его при остановленной службе или в момент, когда никто не помещает изменения.

Если на одном сервере нужны хранилища разных версий платформы, поставьте несколько служб crserver из разных каталогов bin на разных портах: 1542, 1642 и так далее.

Создание хранилища конфигурации из эталонной базы

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

  1. Откройте эталонную базу в Конфигураторе и откройте конфигурацию (Конфигурация → Открыть конфигурацию).
  2. Выберите Конфигурация → Хранилище конфигурации → Создать хранилище.
  3. В поле адреса укажите каталог или tcp://devsrv/ERP. Подкаталог ERP создавать вручную не нужно.
  4. Задайте имя и пароль администратора хранилища. По умолчанию предлагается «Администратор». Пароль задайте сразу и сохраните его в менеджере паролей команды.
  5. Подтвердите создание. Платформа поместит в хранилище всю конфигурацию — для крупной типовой это может занять от нескольких минут до получаса.

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

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

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

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

Откройте Конфигурация → Хранилище конфигурации → Администрирование. В окне администрирования есть список пользователей. Для нового сотрудника нажмите добавление, введите имя, пароль и отметьте права.

ПравоЧто даётКому выдавать
Без отметоктолько чтение и получение конфигурациитестировщики, аналитики, серверы сборки
Захват объектовзахватывать и помещать измененияразработчики
Изменение версийменять комментарии и метки у версийведущий разработчик
Административные функцииуправлять пользователями, отменять чужие захваты, удалять версии1–2 человека в команде

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

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

Подключение информационной базы к хранилищу

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

Порядок подключения

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

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

Если база уже была подключена

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

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

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

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

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /S "dbsrv\erp_build" ^
  /ConfigurationRepositoryF "tcp://devsrv/ERP" ^
  /ConfigurationRepositoryN "build" /ConfigurationRepositoryP "пароль" ^
  /ConfigurationRepositoryUpdateCfg /UpdateDBCfg /Out "C:\logs\update.log"

Параметр /ConfigurationRepositoryUpdateCfg получает последнюю версию из хранилища, /UpdateDBCfg обновляет конфигурацию базы данных. Результат смотрите в файле из /Out. Пароль в bat-файле храните только на сервере с ограниченным доступом.

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

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

Захват

Выделите объект, щёлкните правой кнопкой и выберите захват в хранилище. Отметьте флажок «Получать захваченные объекты», чтобы перед правкой у вас оказалась последняя версия объекта. Иначе вы будете править устаревший модуль, а при помещении затрёте чужие изменения.

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

Помещение

После правки выделите объект и выберите помещение в хранилище. В окне помещения:

  • ✏️ напишите комментарий: номер задачи и суть правки («#1245 — проверка ИНН в форме контрагента»);
  • 🔒 снимите флажок «Оставить объекты захваченными», если работа закончена;
  • 🔍 просмотрите список: в него иногда попадают объекты, которые вы захватили по ошибке.

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

Получение изменений коллег

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

История версий

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

  • 📄 сравнить любую версию с текущей или с другой версией;
  • 💾 сохранить конфигурацию нужной версии в файл .cf, например для выпуска релиза;
  • 🏷️ установить метку на версию, переданную заказчику (нужно право «Изменение версий»).

Перед установкой обновления типовой ставьте метку вида «до обновления 3.0.1xx». Если обновление пойдёт плохо, точка отката будет найдена за секунды.

Договорённости команды

Хранилище само по себе не наводит порядок. Обычно команды фиксируют несколько простых правил:

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

Эти правила стоит записать в регламент разработки и показывать каждому новому сотруднику до выдачи пароля к хранилищу.

Рабочий день с хранилищем
Выполнено: 0 / 5

Сбои при работе с хранилищем и как их снять

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

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

Конфликт правок в одном объекте

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

Порядок такой:

  1. Захватите объект с получением последней версии.
  2. Перенесите свою правку через Конфигурация → Сравнить, объединить с конфигурацией из файла, выбрав выгруженный ранее .cf, или вручную.
  3. Проверьте результат и поместите.

Потерян пароль администратора хранилища

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

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

Хранилище раздулось и тормозит

С годами файл хранилища растёт до десятков гигабайт. Помогают три вещи:

  • 🧹 сервер хранилища вместо файлового доступа по сети;
  • 📦 удаление очень старых версий администратором (сначала сохраните нужные версии в .cf);
  • 🗂️ регулярная проверка файла 1cv8ddb.1CD утилитой chdbfl.exe при остановленной службе.

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

Можно ли подключить к хранилищу расширение конфигурации?
Да. Для расширения хранилище создаётся отдельно, из окна расширения в Конфигураторе. Основная конфигурация и каждое расширение живут в своих хранилищах.
Нужна ли лицензия для сервера хранилища?
Сервер хранилища не требует отдельной лицензии. Лицензии нужны разработчикам для запуска Конфигуратора, как и при обычной работе.
Можно ли подключить рабочую базу пользователей напрямую к хранилищу?
Технически можно, но так делают редко. Обычно рабочую базу обновляют из .cf, выгруженного из нужной версии хранилища, в согласованное окно обслуживания.
Как отключить базу от хранилища навсегда?
Выполните Конфигурация → Хранилище конфигурации → Отключиться от хранилища. Конфигурация базы останется в состоянии последней полученной версии и снова станет доступна для правки без захвата.
Сколько разработчиков выдержит один сервер хранилища?
Ограничение задаёт не число людей, а размер конфигурации, скорость диска и сети. Если помещение небольшой правки занимает минуты, сначала проверьте диск сервера и переход с файлового доступа на сервер хранилища.