Сервер хранилища 1С: установка crserver, создание базы версий и настройка прав
Содержание
Хранилище конфигурации 1С на сервере создаётся в Конфигураторе: Конфигурация → Хранилище конфигурации → Создать хранилище…. В поле адреса указывают либо сетевую папку (\\srv1c\repo\buh), либо адрес сервера хранилища (tcp://srv1c/buh), затем задают имя и пароль администратора хранилища. Через минуту-другую конфигурация выгружена, а база, из которой вы создавали хранилище, уже подключена к нему.
Самая долгая часть — не эта кнопка, а подготовка сервера: установка службы crserver, открытый порт, права учётной записи службы и план резервных копий. Ниже весь путь по порядку: от выбора способа доступа до восстановления хранилища из копии. Описание относится к платформе 8.3 и подходит для любой типовой или самописной конфигурации.
Что подготовить на сервере до создания хранилища
Начните с выбора способа доступа. От него зависит, что ставить на сервер.
| Способ | Адрес в Конфигураторе | Когда подходит | Слабые места |
|---|---|---|---|
| Сетевая папка | \\srv1c\repo\buh | 1–2 разработчика в одной локальной сети | Каждому нужен доступ на запись к папке; файлы легко повредить при обрыве сети |
Сервер хранилища (crserver) | tcp://srv1c/buh | Команда в одной сети или через VPN | Нужна служба и открытый порт 1542 |
| HTTP через веб-сервер | http://srv1c/repo/repo.1ccr | Разработчики работают удалённо, без VPN | Нужен IIS или Apache и публикация хранилища |
Для серверного варианта с crserver и TCP-доступом подготовьте четыре вещи:
- 🖥️ Сервер. Windows Server 2016 или новее либо Linux. Нагрузка небольшая, но место на диске растёт с каждой версией: закладывайте запас в несколько размеров выгрузки
.cf. - 📦 Компонент платформы. В установщике 1С:Предприятия отметьте компонент «Сервер хранилища конфигураций 1С:Предприятия 8». Версия платформы на сервере хранилища должна совпадать с версией у разработчиков — иначе подключение откажет или потребует обновить клиент .
- 👤 Учётная запись службы. Отдельный локальный или доменный пользователь, например
USR1CV8_REPO, с полными правами на каталог хранилищ. Под администратором домена службу не запускайте. - 🔌 Порт. По умолчанию сервер хранилища слушает
1542. Откройте его во входящих правилах брандмауэра сервера и на сетевом оборудовании, если разработчики в другой подсети.
Каталог хранилищ держите на отдельном диске, а не на системном C:. Так проще с копиями и не будет сюрприза, когда за год история разрастётся до десятков гигабайт.
Установка и запуск службы crserver
Если при установке платформы служба не зарегистрировалась сама, зарегистрируйте её вручную. Исполняемый файл лежит в каталоге bin нужной версии платформы, например C:\Program Files\1cv8\8.3.25.1374\bin\crserver.exe (номер подставьте свой).
Откройте командную строку от имени администратора:
cd "C:\Program Files\1cv8\8.3.25.1374\bin"
crserver.exe -instsrvc -port 1542 -d "D:\1C_Repo" -usr .\USR1CV8_REPO -pwd ПарольСлужбы
crserver.exe -start
Что значат ключи:
-instsrvc— зарегистрировать сервер хранилища как службу Windows.-port 1542— порт, на котором служба принимает подключения.-d "D:\1C_Repo"— корневой каталог. Каждое хранилище будет папкой внутри него.-usrи-pwd— учётная запись, от имени которой работает служба.-start— запустить службу. Для остановки есть-stop, для удаления службы —-rmsrvc.
Проверьте результат в оснастке «Службы» (services.msc): служба сервера хранилища должна быть в состоянии «Выполняется», тип запуска — «Автоматически».
Остановка службы crserver обрывает работу всех разработчиков с хранилищем. Незавершённое помещение изменений у них упадёт с ошибкой. Останавливайте службу в согласованное окно, когда никто не помещает изменения.
Если нужен доступ по HTTP
Для удалённых разработчиков без VPN хранилище публикуют на веб-сервере. Это делается из Конфигуратора, запущенного на машине с IIS или Apache: Администрирование → Публикация на веб-сервере хранилища конфигурации. Указываете имя публикации, каталог и адрес хранилища (tcp://srv1c/buh или локальный путь). Разработчики подключаются по адресу вида http://srv1c/repo/repo.1ccr.
Создаём хранилище конфигурации в Конфигураторе
Создают хранилище из базы, где лежит эталонная конфигурация. Обычно это копия рабочей базы или отдельная база разработки.
- Сделайте выгрузку конфигурации на всякий случай:
Конфигурация → Сохранить конфигурацию в файл…→ получите.cf. - Откройте базу в Конфигураторе под пользователем с правами администратора.
- Выберите
Конфигурация → Хранилище конфигурации → Создать хранилище…. - В поле адреса укажите путь:
- для
crserver:tcp://srv1c/buh(если порт не стандартный —tcp://srv1c:1600/buh); - для сетевой папки:
\\srv1c\repo\buh.
- для
- Задайте имя и пароль администратора хранилища. Это не пользователь информационной базы — это отдельная учётная запись внутри хранилища.
- Подтвердите создание. Платформа выгрузит все объекты в хранилище и подключит текущую базу к нему.
После создания в дереве конфигурации у каждого объекта появится значок замка. Объекты доступны только для чтения, пока вы их не захватите.
Записывайте пароль администратора хранилища сразу в менеджер паролей. Без него не добавить пользователей и не снять чужие захваты, а штатного сброса из Конфигуратора нет.
Подключаем остальных разработчиков
Каждому разработчику нужна своя база (файловая или серверная) с той же конфигурацией.
- В его базе:
Конфигурация → Хранилище конфигурации → Подключиться к хранилищу…. - Адрес — тот же
tcp://srv1c/buh, логин и пароль — те, что выдал администратор хранилища. - Если конфигурация в базе отличается от хранилища, платформа предложит заменить её версией из хранилища. Для новой пустой базы разработчика это нормальный путь.
Не подключайте к хранилищу рабочую базу, где работают пользователи. Разработка идёт в отдельных базах, а в рабочую изменения попадают выгрузкой .cf или обновлением по согласованному регламенту.
Как отключить базу от хранилища
Иногда базу разработчика нужно отвязать: например, она стала тестовой. Команда Конфигурация → Хранилище конфигурации → Отключиться от хранилища. Перед этим поместите или отмените свои захваты — иначе объекты останутся захваченными за вами, и коллегам придётся просить администратора разбираться.
После отключения конфигурация базы остаётся такой, какой была в момент отключения, и снова доступна для свободного редактирования. Повторно подключить её можно той же командой «Подключиться к хранилищу…».
Версии, метки и комментарии: как вести историю хранилища
Каждое помещение изменений создаёт новую версию. Через год их будут сотни, поэтому порядок нужен с первого дня.
Цикл работы разработчика:
- Захват: в окне хранилища (
Конфигурация → Хранилище конфигурации → Захватить в хранилище…) отмечаете нужные объекты. Флажок «Получать захваченные объекты» подтягивает их свежую версию перед захватом. - Правка объектов в своей базе, проверка.
- Помещение:
Поместить в хранилище…. Пишите комментарий — номер задачи и суть: «Задача 1482: новая печатная форма акта сверки». Флажок «Оставить объекты захваченными» нужен, если работа над объектом продолжается. - Остальные получают изменения командой
Обновить конфигурацию из хранилища.
Метки. В Истории хранилища выделите версию и установите метку, например «Релиз 2.1 — передан в рабочую базу». По метке потом легко найти версию, которая ушла пользователям, и откатиться к ней.
Сравнение. Перед помещением полезно выполнить Сравнить конфигурацию с хранилищем — сразу видно, что вы меняли и не забыли ли откатить отладочный код.
| Практика | Зачем |
|---|---|
| Комментарий с номером задачи | Поиск версии по задаче за секунды |
| Метка на каждой поставке | Понятно, что сейчас в рабочей базе |
| Помещать небольшими порциями | Меньше конфликтов, проще откат одной правки |
| Не держать захват неделями | Коллеги не ждут объект |
Пользователи хранилища и их права
Права раздаются в Конфигурация → Хранилище конфигурации → Администрирование хранилища…. Окно доступно только пользователю с административными правами в хранилище.
Для каждого пользователя задаются имя, пароль и набор прав:
- 🔑 Административные функции — добавление пользователей, смена паролей, управление хранилищем. Дайте одному-двум людям.
- ✏️ Захват объектов — можно брать объекты на редактирование. Основное право разработчика.
- 🕘 Изменение версий — правка комментариев и меток в истории.
Пользователь без права захвата может подключиться и получать обновления, но менять ничего не сможет. Такая учётная запись удобна для тестировщика или для базы, которая только забирает изменения.
Практические правила:
- Одна учётная запись — один человек. Общий логин «dev» лишает историю смысла: не понять, кто что поместил.
- Ушедшему сотруднику не удаляйте запись сразу. Сначала проверьте, что за ним не осталось захваченных объектов.
- Пароль пользователя хранилища администратор меняет в том же окне администрирования, если разработчик его забыл.
Конфликты, захваты и скорость работы
Хранилище исключает одновременную правку одного объекта: пока объект захвачен, другой разработчик получит отказ при попытке его взять. Основные проблемы — вокруг захватов и объёма.
Для сетевой папки скорость сильно зависит от сети. Если в команде больше двух человек, переход на crserver обычно сразу убирает зависания при захвате и помещении.
Резервные копии хранилища и восстановление
Хранилище — единственное место, где живёт вся история разработки. Потерять его значит потерять возможность откатиться к любой прошлой версии.
Что копировать. Каталог конкретного хранилища целиком: основной файл 1cv8ddb.1CD и все служебные подкаталоги рядом с ним. Копия одного только .1CD неполная.
Как копировать без порчи. Файлы должны быть в согласованном состоянии:
- Выберите окно, когда никто не помещает изменения (ночь, выходные).
- Остановите службу
crserver— у подключённых разработчиков оборвётся связь с хранилищем, предупредите их заранее. - Скопируйте каталог, например, архиватором в сетевое хранилище копий.
- Запустите службу обратно.
Пример bat-файла для планировщика заданий:
@echo off
set REPO=D:\1C_Repo\buh
set DEST=\\backup\1c_repo\buh_%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
net stop "1C:Enterprise 8.3 Configuration Repository Server"
robocopy "%REPO%" "%DEST%" /E /R:2 /W:5
net start "1C:Enterprise 8.3 Configuration Repository Server"
Имя службы в net stop проверьте в services.msc — в свойствах службы указано её точное имя, оно зависит от версии и способа регистрации. Формат даты в %DATE% зависит от региональных настроек сервера, проверьте результат одним ручным запуском.
Не копируйте каталог «на живую», пока служба работает и кто-то помещает изменения. Такая копия может не открыться при восстановлении.
Дополнительная страховка. Раз в неделю или после каждой поставки выгружайте конфигурацию из хранилища в .cf. В окне Истории хранилища можно сохранить нужную версию в файл. Это не заменяет копию хранилища (история не сохраняется), но даёт рабочую конфигурацию за минуту.
Восстановление.
- Остановите службу
crserver. - Переименуйте повреждённый каталог хранилища, не удаляя его.
- Разверните копию на его место с тем же именем папки.
- Запустите службу и подключитесь из любой базы разработчика.
- Разработчикам, чьи помещения были позже даты копии, нужно заново поместить изменения из своих баз — они у них сохранились локально.