Сервер хранилища конфигурации 1С: ставим, запускаем и подключаем разработчиков
Содержание
Сервер хранилища 1С — это отдельная служба crserver, которая даёт нескольким разработчикам работать с одной конфигурацией через сеть. Отдельной лицензии она не требует, ставится из дистрибутива платформы за пять минут. Основное время уйдёт на создание хранилища, пользователей и проверку доступа.
Без сервера хранилище лежит в общей сетевой папке, и каждый разработчик ходит к файлам напрямую. Это работает, пока команда из двух человек и сеть стабильная. Как только людей становится больше, а база конфигурации разрастается, сетевая папка начинает подводить. Ниже весь путь: от подготовки машины до первого захвата объекта.
Что подготовить до установки
Сервер хранилища не требователен к железу. Основной ресурс, который он съедает, — диск и сеть. Процессор почти не нагружается: сервер только раздаёт версии и учитывает захваты.
Что нужно собрать заранее:
- 🖥️ Машина. Отдельный сервер или виртуалка. Можно поставить на тот же сервер, где работает кластер 1С, но лучше разнести: падение одного не заберёт другое.
- 💾 Диск. Хранилище растёт с каждой версией конфигурации. Для типовой конфигурации с доработками закладывайте от 20 ГБ, для крупной (ERP) — от 100 ГБ с запасом. Диск должен быть быстрым: хранилище читает и пишет много мелких данных.
- 🌐 Сеть. Открытый порт для клиентов. По умолчанию сервер хранилища слушает
1542. Если за этим портом уже сидит другая служба, назначьте другой при запуске. - 📦 Версия платформы. Берите ту же, на которой работают разработчики. Старый клиент и новый сервер, как правило, договариваются, но при разнице в несколько минорных версий возможны отказы подключения. Надёжнее держать один релиз на всех.
- 👤 Учётная запись. Отдельный пользователь ОС, под которым будет работать служба. Ему нужны права на запись в каталог хранилища и больше ничего.
Не кладите каталог хранилища на системный диск рядом с ОС. Когда он заполнится, встанет не только 1С, но и сама система.
| Параметр | Минимум | Для крупной команды |
|---|---|---|
| Диск под хранилище | 20 ГБ | 100 ГБ и больше |
| Оперативная память | 2 ГБ | 4 ГБ |
| Порт | 1542 | любой свободный |
| Одновременных разработчиков | 2-3 | 10 и больше |
Цифры ориентировочные. Хранилище не жрёт память, но кеш операционной системы под него лучше не урезать.
Как установить сервер хранилища 1С на Windows
На Windows сервер хранилища входит в состав платформы, но отдельным компонентом. При стандартной установке его могут не выбрать.
Шаг 1. Поставьте нужный компонент
- Запустите установщик платформы и дойдите до списка компонентов.
- Найдите пункт про сервер хранилища конфигураций. Название в разных релизах чуть отличается, ищите слово «хранилище».
- Отметьте его. Если платформа уже стоит, запустите установщик ещё раз и выберите изменение состава.
- Завершите установку. В каталоге
binплатформы появится файлcrserver.exe.
Шаг 2. Запустите сервер вручную для проверки
Прежде чем делать службу, проверьте, что всё стартует. Откройте командную строку от администратора и выполните:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\crserver.exe" -d D:\1c_repo -port 1542
Замените 8.3.XX.XXXX на свою версию. Ключ -d задаёт каталог, где сервер будет держать хранилища. Ключ -port — порт для клиентов.
Если окно не закрылось и ошибок нет, сервер работает. Остановите его Ctrl+C.
Шаг 3. Зарегистрируйте службу
Ручной запуск живёт, пока открыта консоль. Для постоянной работы нужна служба Windows:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\crserver.exe" -instsvc -port 1542 -d D:\1c_repo
После этого в оснастке «Службы» появится служба сервера хранилища. Откройте её свойства и сделайте две вещи:
- ✅ поставьте тип запуска «Автоматически»;
- ✅ на вкладке «Вход в систему» укажите ту отдельную учётную запись, которая получила права на каталог.
Запустите службу и проверьте, что порт слушается:
netstat -ano | findstr :1542
Если порт не виден, смотрите журнал событий Windows. Чаще всего причина одна: у учётной записи нет прав на каталог D:\1c_repo.
Установка сервера хранилища на Linux
На Linux всё держится на тех же файлах платформы. Главное отличие: службу придётся оформить самостоятельно.
- Установите пакеты платформы. Серверный бинарник
crserverлежит рядом с остальными исполняемыми файлами платформы, по умолчанию в/opt/1cv8/x86_64/<версия>/. - Создайте каталог под хранилище и отдельного пользователя:
sudo useradd -r -s /usr/sbin/nologin usr1cv8
sudo mkdir -p /var/1c/repo
sudo chown usr1cv8:usr1cv8 /var/1c/repo
- Проверьте ручной запуск:
sudo -u usr1cv8 /opt/1cv8/x86_64/8.3.XX.XXXX/crserver -d /var/1c/repo -port 1542
- Если всё стартует, оформите службу systemd. Минимальный юнит
/etc/systemd/system/crserver.service:
[Unit]
Description=1C configuration repository server
After=network.target
[Service]
User=usr1cv8
ExecStart=/opt/1cv8/x86_64/8.3.XX.XXXX/crserver -d /var/1c/repo -port 1542
Restart=on-failure
[Install]
WantedBy=multi-user.target
- Включите и запустите:
sudo systemctl daemon-reload
sudo systemctl enable --now crserver
sudo systemctl status crserver
После обновления платформы путь в ExecStart меняется вместе с номером версии. Поправьте юнит, иначе служба не поднимется после перезагрузки.
Если на сервере включён фаервол, откройте порт 1542 только для адресов разработчиков, а не для всего интернета.
Как создать хранилище конфигурации на сервере
Сервер поднят, но он пока пустой. Само хранилище создаётся из Конфигуратора той информационной базы, которая станет эталонной.
- Откройте Конфигуратор нужной базы.
- В меню «Конфигурация» найдите пункт про хранилище конфигурации и выберите создание хранилища. Если не нашли пункт сразу, ищите в подменю «Хранилище конфигурации».
- В поле расположения укажите адрес вида
tcp://имя_сервера:1542/название_хранилища. Обычный путь к папке здесь не подойдёт: он создаст файловое хранилище, а нам нужно серверное. - Задайте имя и пароль администратора хранилища. Запишите их сразу в менеджер паролей: восстановить забытый пароль администратора сложно.
- Подтвердите. Конфигуратор загрузит текущую конфигурацию как первую версию.
Название хранилища в адресе — это имя подкаталога на сервере. Выбирайте понятное и без пробелов, например buh_main или zup_dev. На одном сервере может жить сколько угодно хранилищ.
Если конфигурация на поддержке, перед созданием хранилища проверьте, что правила поддержки уже настроены так, как нужно команде. После загрузки в хранилище менять их придётся через захват корневого объекта.
Пользователи хранилища и права доступа
Пользователи хранилища не связаны с пользователями информационной базы. Это отдельный список, он живёт внутри самого хранилища.
Создаёт их администратор через Конфигуратор: меню «Конфигурация» → «Хранилище конфигурации» → «Администрирование» → «Пользователи». Здесь же задаются пароли и права.
У каждого пользователя один из четырёх уровней:
| Уровень | Что может | Кому давать |
|---|---|---|
| Чтение | Смотреть историю, сравнивать версии, получать конфигурацию | Аналитики, тестировщики |
| Подключение | Присоединить свою базу к хранилищу и обновляться из него | Тот, кто разворачивает рабочие копии |
| Изменение | Захватывать объекты, править и помещать изменения | Разработчики |
| Администрирование | Управлять пользователями, снимать чужие захваты, чистить версии | Один-два ответственных |
Названия уровней в интерфейсе могут звучать немного иначе, но градация именно такая: от просмотра к управлению.
Хорошая практика:
- 🔑 каждому разработчику своя учётная запись, общих логинов нет — иначе непонятно, кто что захватил;
- 🔑 администраторов не больше двух;
- 🔑 уволившемуся сотруднику права снимайте в тот же день, пока за ним не остались захваченные объекты.
Захваты других пользователей может снять только администратор, поэтому держите у него живой контакт: человек ушёл в отпуск с захваченным модулем, а команда ждёт.
Подключаем рабочее место разработчика
Разработчик работает не с хранилищем напрямую, а со своей копией базы, которую присоединяют к хранилищу.
- Откройте в Конфигураторе свою рабочую базу (копию эталонной).
- В подменю «Хранилище конфигурации» выберите подключение к хранилищу.
- Укажите тот же адрес
tcp://имя_сервера:1542/название_хранилища, свой логин и пароль. - Конфигуратор предложит загрузить конфигурацию из хранилища в базу. Согласитесь, если база пустая или тестовая.
После подключения в дереве метаданных у объектов появятся значки состояния. Рабочий цикл такой:
- захватить объект для редактирования;
- внести правки и проверить;
- поместить изменения в хранилище с комментарием;
- периодически обновлять конфигурацию из хранилища, чтобы получать правки коллег.
Комментарий при помещении пишите осмысленный. Через полгода по истории версий вы будете искать, где и когда сломали расчёт, и «исправление» вам не поможет.
Ошибки при запуске и подключении
Большинство отказов укладывается в несколько причин. Таблица поможет быстро найти свою.
journalctl -u crserver (Linux). Чаще всего нет прав у учётной записи на каталог хранилища или порт уже занят другой службой. Смените порт или освободите прежний.ExecStart в юните.Отдельно про резервные копии. Хранилище — это история всех правок конфигурации, и потерять её хуже, чем потерять любую рабочую базу. Каталог хранилища копируйте по расписанию, желательно на другой носитель. Перед копированием останавливайте службу или делайте снимок диска, чтобы файлы не менялись в момент копирования.
Обслуживание: обновления платформы, мониторинг, порядок в версиях
Поставили и забыли не получится. Раз в квартал уделите серверу час, и он не подведёт в самый неудобный момент.
Обновление платформы
Сервер хранилища обновляют вместе с платформой на машинах разработчиков. Порядок такой:
- Дождитесь, пока все поместят изменения и снимут захваты.
- Остановите службу и сделайте копию каталога хранилища.
- Поставьте новую версию платформы. Старую можно оставить рядом до проверки.
- Перерегистрируйте службу с путём к новому
crserverлибо поправьте юнит systemd. - Запустите, подключитесь одним клиентом, проверьте историю версий и только потом зовите остальных.
Что держать под наблюдением
- 📈 Свободное место на диске с хранилищем. Порог тревоги — 20% свободного.
- 📈 Статус службы. Достаточно простой проверки раз в минуту любым мониторингом.
- 📈 Долгие захваты. Объект, висящий на человеке неделю, обычно значит, что про него забыли.
Порядок в версиях
Хранилище копит каждую версию, и это нормально. Но привычка помещать изменения по десять раз на дню с комментарием «правка» превращает историю в мусор. Договоритесь в команде о простых правилах: одно изменение по смыслу — одна версия, комментарий отвечает на вопрос «что и зачем». Когда понадобится откатить расчёт или найти, кто поменял форму, вы скажете себе спасибо.
Для крупных конфигураций заведите отдельное хранилище под каждую линию разработки: основную, тестовую, срочные исправления. Так срочная правка не блокирует плановую работу.
Частые вопросы
Нужна ли отдельная лицензия на сервер хранилища?
crserver идёт в составе платформы и лицензий не потребляет. Лицензии нужны только Конфигуратору, через который люди работают с хранилищем.Можно ли держать хранилище на том же сервере, что и кластер 1С?
Чем серверное хранилище лучше файлового?
Как перенести хранилище на другой сервер?
crserver с тем же -d, запустите. Разработчикам нужно будет изменить адрес подключения, если сменилось имя сервера.