Как развернуть crserver и подключить команду к общему хранилищу

· 9 мин

Содержание

Сервер хранилища конфигураций 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. Поставьте компонент из дистрибутива

  1. Скачайте дистрибутив технологической платформы нужной версии (полный, с серверными компонентами).
  2. Запустите setup.exe и на шаге выбора компонентов отметьте «Сервер хранилища конфигураций 1С:Предприятия».
  3. Остальные серверные компоненты для одного хранилища не нужны. Клиент можно не ставить, если на этой машине никто не будет работать в Конфигураторе.
  4. Дождитесь окончания установки. Исполняемый файл появится в каталоге платформы, например 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 в этой схеме — только рабочее место разработчика.

Создание хранилища и подключение конфигурации

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

  1. Откройте базу в Конфигураторе и откройте конфигурацию: Конфигурация → Открыть конфигурацию.
  2. Выберите Конфигурация → Хранилище конфигурации → Создать хранилище….
  3. В поле адреса укажите tcp://srv-dev:1542/ERP_Main. Если порт стандартный, его можно не писать: tcp://srv-dev/ERP_Main.
  4. Задайте пользователя-администратора хранилища и пароль. Это не пользователь базы и не пользователь Windows — у хранилища свой список.
  5. Подтвердите создание. Конфигурация будет помещена в хранилище, база подключится к нему автоматически.

Путь после имени сервера указывается относительно каталога из параметра -d. В примере выше данные окажутся в D:\1C_Repo\ERP_Main. Каталог сервер создаст сам.

Подключение остальных разработчиков

Каждому разработчику нужна своя копия базы с той же конфигурацией (или пустая база). Дальше:

  1. Конфигурация → Хранилище конфигурации → Подключиться к хранилищу….
  2. Адрес — тот же tcp://srv-dev/ERP_Main, логин и пароль — выданные администратором хранилища.
  3. Если конфигурация базы отличается от хранилища, Конфигуратор предложит загрузить её из хранилища. Соглашайтесь — локальные несохранённые изменения при этом теряются.

Имя хранилища в адресе пишите латиницей и без пробелов: ERP_Main, BP_Dev. Кириллица работает, но в скриптах сборки и в путях на Linux с ней больше хлопот.

Пользователи и права в хранилище конфигураций

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

Прав у пользователя хранилища немного, и это удобно:

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

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

Правила, которые избавят от споров в команде:

  • 👥 Один человек — один логин. Общий пользователь dev на всех делает историю версий бесполезной: непонятно, кто что поместил.
  • 🔓 Чужие захваты. Ушедший в отпуск сотрудник держит объекты захваченными. Администратор хранилища может отменить чужой захват, но изменения этого сотрудника, не помещённые в хранилище, останутся только в его базе.
  • 🚫 Уволенные. Не удаляйте пользователя, если у него есть версии в истории, — отключите вход и смените пароль.
  • 🔑 Пароль администратора. Храните его в менеджере паролей команды. Восстановить его средствами Конфигуратора нельзя: выход — резервная копия каталога хранилища, сделанная, пока пароль был известен.

Резервное копирование хранилища

Хранилище — это каталог с файлами. Надёжная копия делается так:

  1. Предупредите разработчиков: на время копии помещать изменения нельзя.
  2. Остановите службу сервера хранилища (crserver.exe -stop или systemctl stop 1c-crserver). Активные подключения из Конфигураторов прервутся.
  3. Скопируйте каталог хранилища целиком или упакуйте его в архив.
  4. Запустите службу обратно.

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

Сервер хранилища готов к работе
Выполнено: 0 / 8

Когда Конфигуратор не может подключиться к хранилищу

Большинство сбоев сводятся к четырём причинам: версия, сеть, права на каталог и неверный адрес. Проверяйте по порядку.

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

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

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

  1. Дождитесь, пока все поместят изменения.
  2. Остановите и удалите старую службу: crserver.exe -stop, затем crserver.exe -rmsrvc из каталога bin старой версии.
  3. Установите компонент новой версии и зарегистрируйте службу с тем же портом и тем же каталогом -d.
  4. Запустите службу и подключитесь из Конфигуратора.

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

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

Нужна ли лицензия для сервера хранилища конфигураций?
Нет. Сервер хранилища не потребляет серверную лицензию. Лицензии нужны разработчикам на запуск Конфигуратора, как обычно.
Можно ли поставить сервер хранилища на ту же машину, что и сервер 1С?
Да. crserver использует свой порт 1542 и не мешает агенту кластера на 1540. Следите только, чтобы диапазон портов рабочих процессов не пересекался с портами хранилищ.
Сколько хранилищ может обслуживать один сервер?
Сколько угодно в пределах диска. Все они лежат подкаталогами в каталоге -d и различаются путём в адресе: tcp://srv-dev/ERP_Main, tcp://srv-dev/BP_Dev.
Как перенести хранилище на другой сервер?
Остановите службу, скопируйте каталог хранилища на новый сервер в его каталог -d, запустите там crserver той же версии. Разработчики переподключаются по новому адресу.
Можно ли работать с хранилищем через интернет без VPN?
Можно через публикацию хранилища на веб-сервере: подключение идёт по адресу http или https с файлом .1ccr. Открывать порт 1542 в интернет напрямую не стоит.