Как развернуть crserver и подключить команду к общему хранилищу
Содержание
Сервер хранилища конфигураций 1С — это отдельный компонент платформы, программа crserver. Её ставят тем же дистрибутивом, что и сервер 1С:Предприятия, запускают как службу на порту 1542 и подключаются из Конфигуратора по адресу вида tcp://srv-dev:1542/ИмяХранилища. Работает на Windows и Linux, отдельной серверной лицензии не требует.
Частое заблуждение — что хранилищу обязательно нужен кластер серверов
1С. Не нужен. Сервер хранилища живёт сам по себе: его можно поставить на машину без ragent, без СУБД и без единой информационной базы. Кластер нужен базам, а хранилищу нужен только crserver, каталог с данными и открытый порт.
Что подготовить до установки сервера хранилища
Зачем вообще сервер, если хранилище можно положить в сетевую папку? Файловое хранилище по общему ресурсу работает, но медленно и хрупко: обрыв сети во время помещения изменений портит файлы, а антивирус на файловом сервере блокирует их в самый неудобный момент. Сервер хранилища передаёт данные по своему протоколу, а к файлам обращается только он сам.
| Способ | Когда подходит | Риски |
|---|---|---|
| Локальный каталог на ПК разработчика | Один разработчик, эксперименты | Нет совместной работы |
Сетевая папка (\\server\repo) | 2–3 человека в одной локальной сети | Медленно, повреждение файлов при обрыве связи |
Сервер хранилища (tcp://) | Команда, удалённые сотрудники через VPN | Нужно следить за версией платформы |
Публикация по HTTP (http://…/repo.1ccr) | Доступ из интернета без VPN | Нужен веб-сервер и защищённое соединение |
Что проверить перед стартом:
- 🖥️ Машина. Хватит виртуалки с 2 ядрами и 4 ГБ памяти. Важнее быстрый диск: хранилище постоянно читает и пишет мелкие файлы.
- 💽 Каталог под данные. Отдельный, например
D:\1C_Repoили/var/1C/repo. Не на системном диске и не в профиле пользователя. - 🔢 Версия платформы. Выберите ту же сборку 8.3, что стоит у разработчиков в Конфигураторе. Разные версии сервера и клиента — главная причина ошибок подключения.
- 👤 Учётная запись службы. На Windows удобнее завести отдельного пользователя (например,
USR1CV8) с правами только на каталог хранилища. - 🔥 Сеть. Порт
1542/TCPдолжен быть открыт на сервере и доступен с машин разработчиков. - 🛡️ Антивирус. Каталог хранилища лучше добавить в исключения проверки «на лету».
Если в команде одновременно живут проекты на разных версиях платформы, запланируйте несколько экземпляров crserver: каждый на своей версии, своём порту (1542, 1642, 1742) и со своим каталогом данных.
Установка сервера хранилища конфигураций на Windows
Шаг 1. Поставьте компонент из дистрибутива
- Скачайте дистрибутив технологической платформы нужной версии (полный, с серверными компонентами).
- Запустите
setup.exeи на шаге выбора компонентов отметьте «Сервер хранилища конфигураций 1С:Предприятия». - Остальные серверные компоненты для одного хранилища не нужны. Клиент можно не ставить, если на этой машине никто не будет работать в Конфигураторе.
- Дождитесь окончания установки. Исполняемый файл появится в каталоге платформы, например
C:\Program Files\1cv8\8.3.xx.xxxx\bin\crserver.exe.
Сам установщик службу хранилища не создаёт. Её регистрируют отдельно.
Шаг 2. Зарегистрируйте службу
Запустите командную строку от имени администратора, перейдите в каталог bin нужной версии и выполните:
cd "C:\Program Files\1cv8\8.3.xx.xxxx\bin"
crserver.exe -instsrvc -usr .\USR1CV8 -pwd ПарольСлужбы -port 1542 -d "D:\1C_Repo"
crserver.exe -start
Что значат параметры:
-instsrvc— зарегистрироватьcrserverкак службу Windows;-usrи-pwd— учётная запись, под которой работает служба;-port— порт сервера хранилища, по умолчанию1542;-d— корневой каталог, в котором будут лежать хранилища;-startи-stop— запустить и остановить службу;-rmsrvc— удалить её.
После регистрации служба появится в оснастке services.msc с именем, в котором есть слова «Configuration Repository Server» и номер версии. Проверьте, что тип запуска — «Автоматически».
Учётной записи службы нужны права на чтение и запись в каталог -d. Если выдать права забыли, служба запустится, но создать хранилище не получится.
Шаг 3. Откройте порт в брандмауэре
netsh advfirewall firewall add rule name="1C Repository Server 1542" dir=in action=allow protocol=TCP localport=1542
Проверить доступность с машины разработчика можно из PowerShell:
Test-NetConnection srv-dev -Port 1542
Строка TcpTestSucceeded : True значит, что порт открыт и сервер слушает.
Второй экземпляр для другой версии платформы
Повторите шаг 2 из каталога bin другой версии, указав другой порт и другой каталог: -port 1642 -d "D:\1C_Repo_8_3_yy". Разработчики на этой версии подключаются уже к tcp://srv-dev:1642/….
Сервер хранилища на Linux и что делать с macOS
Установка на Linux
Начиная с версии 8.3.20 платформа для Linux распространяется единым установщиком setup-full-…-x86_64.run. Сервер хранилища в нём — отдельный компонент config_storage_server:
chmod +x setup-full-8.3.xx.xxxx-x86_64.run
sudo ./setup-full-8.3.xx.xxxx-x86_64.run --mode unattended --enable-components config_storage_server
В более старых сборках тот же компонент поставляется отдельным пакетом, в имени которого есть crs.
Файлы ложатся в /opt/1cv8/x86_64/8.3.xx.xxxx/. Подготовьте каталог данных и выдайте его пользователю usr1cv8, под которым обычно работают серверные процессы 1С:
sudo mkdir -p /var/1C/repo
sudo chown -R usr1cv8:grp1cv8 /var/1C/repo
Запуск через systemd
Удобнее всего описать сервер хранилища своим юнитом, например /etc/systemd/system/1c-crserver.service:
[Unit]
Description=1C Configuration Repository Server
After=network.target
[Service]
Type=simple
User=usr1cv8
Group=grp1cv8
ExecStart=/opt/1cv8/x86_64/8.3.xx.xxxx/crserver -port 1542 -d /var/1C/repo
Restart=on-failure
[Install]
WantedBy=multi-user.target
Затем включите и запустите:
sudo systemctl daemon-reload
sudo systemctl enable --now 1c-crserver
sudo systemctl status 1c-crserver
ss -tlnp | grep 1542
Порт в файрволе открывается одной командой: sudo ufw allow 1542/tcp в Ubuntu или sudo firewall-cmd --permanent --add-port=1542/tcp && sudo firewall-cmd --reload в дистрибутивах с firewalld.
При обновлении платформы поменяйте номер версии в строке ExecStart и перезапустите службу.
macOS
Серверные компоненты 1С, включая сервер хранилища, для macOS не выпускаются. Если команда работает на Mac, держите crserver на отдельной машине или виртуалке с Windows или Linux. Mac в этой схеме — только рабочее место разработчика.
Создание хранилища и подключение конфигурации
Хранилище создают из Конфигуратора той информационной базы, конфигурацию которой хотите поместить под контроль версий. Это делает один человек — будущий администратор хранилища.
- Откройте базу в Конфигураторе и откройте конфигурацию:
Конфигурация → Открыть конфигурацию. - Выберите
Конфигурация → Хранилище конфигурации → Создать хранилище…. - В поле адреса укажите
tcp://srv-dev:1542/ERP_Main. Если порт стандартный, его можно не писать:tcp://srv-dev/ERP_Main. - Задайте пользователя-администратора хранилища и пароль. Это не пользователь базы и не пользователь Windows — у хранилища свой список.
- Подтвердите создание. Конфигурация будет помещена в хранилище, база подключится к нему автоматически.
Путь после имени сервера указывается относительно каталога из параметра -d. В примере выше данные окажутся в D:\1C_Repo\ERP_Main. Каталог сервер создаст сам.
Подключение остальных разработчиков
Каждому разработчику нужна своя копия базы с той же конфигурацией (или пустая база). Дальше:
Конфигурация → Хранилище конфигурации → Подключиться к хранилищу….- Адрес — тот же
tcp://srv-dev/ERP_Main, логин и пароль — выданные администратором хранилища. - Если конфигурация базы отличается от хранилища, Конфигуратор предложит загрузить её из хранилища. Соглашайтесь — локальные несохранённые изменения при этом теряются.
Имя хранилища в адресе пишите латиницей и без пробелов: ERP_Main, BP_Dev. Кириллица работает, но в скриптах сборки и в путях на Linux с ней больше хлопот.
Пользователи и права в хранилище конфигураций
Список пользователей ведёт администратор хранилища: Конфигурация → Хранилище конфигурации → Администрирование. Там на вкладке пользователей их добавляют, меняют пароли и отключают.
Прав у пользователя хранилища немного, и это удобно:
| Право | Что даёт | Кому выдавать |
|---|---|---|
| Захват объектов | Брать объекты в редактирование и помещать изменения | Разработчикам |
| Изменение состава версий | Присваивать метки версиям, менять комментарии | Ведущему разработчику |
| Административные функции | Управлять пользователями, снимать чужие захваты, менять настройки | 1–2 доверенным людям |
Пользователь без прав может только читать: получать конфигурацию из хранилища и смотреть историю. Такой логин удобно завести для сервера сборки или для тестировщика.
Правила, которые избавят от споров в команде:
- 👥 Один человек — один логин. Общий пользователь
devна всех делает историю версий бесполезной: непонятно, кто что поместил. - 🔓 Чужие захваты. Ушедший в отпуск сотрудник держит объекты захваченными. Администратор хранилища может отменить чужой захват, но изменения этого сотрудника, не помещённые в хранилище, останутся только в его базе.
- 🚫 Уволенные. Не удаляйте пользователя, если у него есть версии в истории, — отключите вход и смените пароль.
- 🔑 Пароль администратора. Храните его в менеджере паролей команды. Восстановить его средствами Конфигуратора нельзя: выход — резервная копия каталога хранилища, сделанная, пока пароль был известен.
Резервное копирование хранилища
Хранилище — это каталог с файлами. Надёжная копия делается так:
- Предупредите разработчиков: на время копии помещать изменения нельзя.
- Остановите службу сервера хранилища (
crserver.exe -stopилиsystemctl stop 1c-crserver). Активные подключения из Конфигураторов прервутся. - Скопируйте каталог хранилища целиком или упакуйте его в архив.
- Запустите службу обратно.
Не копируйте каталог работающего хранилища «на лету» — такая копия может оказаться несогласованной и не открыться. Ночное задание планировщика с остановкой службы на пару минут решает вопрос.
Когда Конфигуратор не может подключиться к хранилищу
Большинство сбоев сводятся к четырём причинам: версия, сеть, права на каталог и неверный адрес. Проверяйте по порядку.
netstat -ano | findstr 1542 на Windows, ss -tlnp на Linux) и не режет ли его брандмауэр или VPN. Проверьте с клиента: Test-NetConnection srv-dev -Port 1542.После обновления платформы у разработчиков сервер хранилища нужно обновить в тот же день. Иначе первая же попытка подключиться из нового Конфигуратора упрётся в несовпадение версий.
Порядок такой:
- Дождитесь, пока все поместят изменения.
- Остановите и удалите старую службу:
crserver.exe -stop, затемcrserver.exe -rmsrvcиз каталогаbinстарой версии. - Установите компонент новой версии и зарегистрируйте службу с тем же портом и тем же каталогом
-d. - Запустите службу и подключитесь из Конфигуратора.
Перед обновлением сделайте копию каталога хранилища. Новая версия при первом обращении может перевести хранилище в свой формат, и вернуться на старую сборку будет нельзя.