Групповая разработка в Конфигураторе: сервер хранилища, права разработчиков и подключение рабочих мест
Содержание
Подключить хранилище
конфигурации 1С можно из Конфигуратора: Конфигурация → Хранилище конфигурации → Подключиться к хранилищу.... В окне указывают адрес хранилища (путь к папке или tcp://сервер/имя), имя и пароль пользователя хранилища. После подключения конфигурация базы заменяется версией из хранилища, а объекты можно захватывать и помещать обратно.
Типичная ситуация: в компании появился второй программист, и правки в одной базе начали затирать друг друга. Хранилище решает это так: каждый работает в своей копии базы, а общая конфигурация живёт в одном месте с историей версий. Порядок настройки один для всех конфигураций на платформе 8.3 — БП, ЗУП, УТ, ERP или своей разработки. Сначала готовят место, потом создают хранилище, заводят пользователей и только затем подключают рабочие места.
Что подготовить перед созданием хранилища
Хранилище бывает трёх видов. Выбор зависит от того, где сидят разработчики и сколько их.
| Вариант | Адрес | Когда подходит | Ограничения |
|---|---|---|---|
| Файловое, в папке | D:\Repo\BP или \\server\Repo\BP | 1–2 разработчика, одна сеть | Нужен доступ на запись к папке у всех; по медленной сети работает долго |
| Через сервер хранилища | tcp://server/BP или tcp://server:1542/BP | Команда, разные офисы, VPN | Нужна служба crserver, открытый порт |
| Через веб-сервер | http://server/repo/BP.1ccr | Разработчики за пределами сети, доступ только по HTTP(S) | Нужна публикация на IIS или Apache поверх сервера хранилища |
Для команды из трёх и более человек берите сервер хранилища. Файловое хранилище в сетевой папке работает, но при обрыве связи во время помещения есть риск повредить его файлы.
Что нужно подготовить:
- 🖥️ Машину под хранилище. Это может быть тот же сервер, где стоит кластер 1С. Требования скромные: рабочая станция или виртуальная машина, Windows Server 2016 и новее или Linux.
- 💾 Диск с запасом. Хранилище копит все версии. Для типовой БП 3.0 с активной доработкой за год набегает несколько гигабайт.
- 🔢 Одну версию платформы. Держите на сервере хранилища и у всех разработчиков одинаковый номер платформы 8.3. Несовпадение — частая причина ошибок подключения.
- 🔥 Открытый порт. По умолчанию сервер хранилища слушает TCP-порт
1542. Его надо открыть в брандмауэре сервера. - 📦 Эталонную базу. Хранилище создают из базы, где уже лежит нужная конфигурация. Обычно это копия рабочей базы или чистая база из шаблона.
Установка сервера хранилища
Сервер хранилища ставится из дистрибутива технологической платформы. В установщике отметьте компонент «Сервер хранилища конфигураций 1С:Предприятия» и выберите установку как службу Windows.
Если компонент уже скопирован, но служба не создана, её регистрируют вручную из каталога bin платформы:
cd "C:\Program Files\1cv8\8.3.24.1691\bin"
crserver.exe -instsrvc -port 1542 -d "D:\Repo" -usr .\svc1c -pwd "Пароль"
crserver.exe -start
Здесь -d — корневой каталог, в котором будут лежать хранилища, -usr и -pwd — учётная запись службы. Номер версии в пути замените на свой. Полный список ключей выводит crserver.exe -help.
Учётной записи службы нужны права на чтение и запись в каталог из ключа -d. Права администратора Windows ей не нужны.
Создание хранилища конфигурации
Хранилище создаёт один человек — будущий администратор хранилища. Делается это один раз.
- Откройте эталонную базу в режиме Конфигуратора.
- Откройте конфигурацию:
Конфигурация → Открыть конфигурацию. - Выберите
Конфигурация → Хранилище конфигурации → Создать хранилище.... - Укажите адрес. Для файлового — каталог (пустой или новый). Для серверного —
tcp://имя_сервера/BP, гдеBP— имя хранилища, его каталог сервер создаст внутри корня из ключа-d. - Задайте имя и пароль администратора хранилища. По умолчанию платформа предлагает имя «Администратор».
- Подтвердите создание. Платформа поместит в хранилище всю конфигурацию — для типовой БП это занимает от нескольких минут до получаса.
После создания эталонная база уже подключена к хранилищу. Все объекты в дереве метаданных получают значок замка: они в хранилище и не захвачены.
Если основная конфигурация стоит на поддержке поставщика, хранилище сохранит и настройки поддержки. Обновлять типовую конфигурацию потом придётся через базу, подключённую к хранилищу: захватить корень конфигурации, обновить, поместить.
Не создавайте хранилище из рабочей базы, в которой работают пользователи. Возьмите её копию: при подключении к хранилищу и обновлении конфигурации базы данных вы будете регулярно менять структуру, а это нужно делать вне рабочего контура.
Пользователи хранилища и их права
Пользователи хранилища — это отдельный список. Он не связан ни с пользователями информационной базы, ни с учётными записями Windows. Заводит их администратор хранилища.
Путь: Конфигурация → Хранилище конфигурации → Администрирование.... В окне администрирования добавьте пользователя кнопкой создания, задайте имя (удобно — фамилия разработчика), пароль и права.
| Право | Что даёт | Кому выдавать |
|---|---|---|
| Административные функции | Управлять пользователями, отменять чужие захваты, оптимизировать данные хранилища | 1 человеку, максимум 2 |
| Захват объектов | Захватывать и помещать объекты, то есть менять конфигурацию | Всем разработчикам |
| Изменение версий | Менять комментарии и метки у уже помещённых версий | Ведущему разработчику |
Пользователь без прав только читает: может подключиться, получить конфигурацию и посмотреть историю. Так удобно подключать тестировщиков и базы для сборки поставки.
Несколько правил, которые избавляют от хаоса:
- 👤 Один человек — один пользователь. Общий логин «Разработчик» лишает историю смысла: не видно, кто что поместил.
- 🔑 Пароли разные и не пустые. Хранилище с пустым паролем администратора открыто любому, кто знает адрес.
- 🗑️ Уволенного удалить сразу. Перед удалением проверьте, не висят ли на нём захваченные объекты, и отмените захват.
Подключение рабочих мест разработчиков
Каждый разработчик работает в своей информационной базе. Её не обязательно копировать из эталона: подойдёт и пустая база, потому что конфигурация придёт из хранилища.
- Создайте новую информационную базу без конфигурации или загрузите выгрузку
.dtэталонной базы, если нужны данные для отладки. - Откройте её в Конфигураторе.
- Выберите
Конфигурация → Хранилище конфигурации → Подключиться к хранилищу.... - Введите адрес хранилища, имя и пароль, которые выдал администратор.
- Платформа сравнит конфигурацию базы с хранилищем. Если они различаются, появится предупреждение, что конфигурация будет заменена версией из хранилища. Согласитесь.
- Дождитесь загрузки и выполните
Конфигурация → Обновить конфигурацию базы данных(F7).
После этого база готова к работе. Окно хранилища открывается командой Конфигурация → Хранилище конфигурации → Хранилище: там видно дерево объектов и кто какой объект держит.
При подключении все изменения в основной конфигурации базы, которых нет в хранилище, будут потеряны. Если в базе были собственные правки, сначала сохраните конфигурацию в файл: Конфигурация → Сохранить конфигурацию в файл....
Подключение из командной строки
Для сборочных серверов и скриптов автообновления подключение и получение конфигурации делают без интерфейса:
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /S "srv1c\bp_build" ^
/N "Администратор" /P "Пароль" ^
/ConfigurationRepositoryF "tcp://srv1c/BP" ^
/ConfigurationRepositoryN "build" /ConfigurationRepositoryP "Пароль" ^
/ConfigurationRepositoryUpdateCfg -force ^
/UpdateDBCfg /Out "C:\Logs\build.log"
Ключ /ConfigurationRepositoryUpdateCfg получает актуальную версию из хранилища, /UpdateDBCfg обновляет структуру базы. Пользователю build достаточно хранилищного пользователя без прав.
Работа с версиями: захват, помещение, откат
Хранилище работает по принципу «один объект — один владелец». Менять объект может только тот, кто его захватил.
Захват и помещение
- В дереве конфигурации выделите объект (документ, общий модуль, форму) и выберите в контекстном меню
Захватить в хранилище. - В окне захвата оставьте флажок «Получать захваченные объекты»: тогда вы начнёте править последнюю версию, а не устаревшую копию из своей базы.
- Внесите изменения и проверьте их у себя.
- Выберите
Поместить в хранилище, напишите комментарий — номер задачи и что сделано. Если работа не закончена, поставьте флажок «Оставлять объекты захваченными». - Остальные разработчики получают изменения командой
Получить из хранилищав контекстном меню корня конфигурации, затем обновляют базу (F7).
Новый объект в конфигурацию добавляют только при захваченном родителе. Чтобы создать документ, захватите ветку «Документы» или корень конфигурации. Корень лучше держать недолго: пока он захвачен, коллеги не могут добавлять объекты.
История и метки
Окно истории открывается командой Конфигурация → Хранилище конфигурации → История хранилища.... В нём для каждой версии видно автора, дату, комментарий и состав изменённых объектов.
- 🏷️ Метки. Перед выпуском поставки поставьте на версию метку, например «Релиз 2.4 для прода». Потом её легко найти среди сотен версий.
- 🔍 Сравнение. Две любые версии можно сравнить между собой или с конфигурацией своей базы.
- 💾 Выгрузка версии. Нужную версию можно сохранить в файл
.cfи уже им обновлять рабочую базу.
Как откатить неудачное изменение
Удалить версию из середины истории нельзя. Откат делают так: в истории выберите последнюю рабочую версию, получите из неё нужные объекты (или сравните и перенесите код), захватите их и поместите заново с комментарием «Откат изменений по задаче…». В истории останутся и ошибочная версия, и исправление — так и должно быть.
Обновление рабочей базы из хранилища
Рабочую базу к хранилищу не подключают. Схема другая: из хранилища получают файл конфигурации и уже им обновляют рабочую базу.
| Способ | Как | Когда |
|---|---|---|
| Сравнение и объединение | В рабочей базе Конфигурация → Сравнить, объединить с конфигурацией из файла..., указать .cf из хранилища | Рабочая база на поддержке или с правками, которых нет в хранилище |
| Загрузка целиком | Конфигурация → Загрузить конфигурацию из файла... | Рабочая база полностью совпадает с хранилищем по происхождению |
| Файл поставки | В базе разработки Конфигурация → Поставка конфигурации → Создать файл поставки и обновления | Несколько рабочих баз у разных клиентов |
Обновление структуры рабочей базы требует монопольного доступа. Пользователей придётся выгнать из программы, поэтому планируйте это на нерабочее время и предупредите людей заранее. Перед обновлением сделайте выгрузку .dt или резервную копию СУБД.
Если подключение не работает и обслуживание хранилища
Большинство проблем с хранилищем — сетевые или версионные. Ниже типичные симптомы и что проверить.
Регулярное обслуживание
- 🗄️ Резервная копия. Копируйте весь каталог хранилища целиком, по расписанию, раз в день. Делайте это ночью, когда никто не помещает изменения: копия, снятая в момент помещения, может оказаться несогласованной. Для надёжности перед копированием останавливайте службу
crserver— подключённые разработчики при этом потеряют связь с хранилищем, предупредите их. - 🧹 Оптимизация. В окне администрирования хранилища есть команда оптимизации данных. Она уменьшает объём файлов после большого числа версий. Запускайте её, когда никто не работает с хранилищем.
- 📋 Ревизия захватов. Раз в неделю смотрите окно хранилища: объекты, захваченные неделями, тормозят остальных.
- 🔄 Обновление платформы . Переход на новый номер платформы делайте одновременно на сервере хранилища и у всех разработчиков, а не по одному.
Если хранилище повреждено
Признак — ошибки при чтении истории или при получении конфигурации у всех пользователей сразу. Порядок действий:
- Попросите всех разработчиков сохранить незавершённые правки в файл
.cfили выгрузить изменённые объекты. - Восстановите каталог хранилища из последней резервной копии.
- Если копии нет — создайте новое хранилище из базы разработчика с самой свежей конфигурацией. История версий при этом начнётся заново, а старые базы придётся отключить командой
Конфигурация → Хранилище конфигурации → Отключиться от хранилищаи подключить к новому адресу.