Сервер хранилища конфигурации 1С: ставим, запускаем и подключаем разработчиков

· 9 мин

Содержание

Сервер хранилища 1С — это отдельная служба crserver, которая даёт нескольким разработчикам работать с одной конфигурацией через сеть. Отдельной лицензии она не требует, ставится из дистрибутива платформы за пять минут. Основное время уйдёт на создание хранилища, пользователей и проверку доступа.

Без сервера хранилище лежит в общей сетевой папке, и каждый разработчик ходит к файлам напрямую. Это работает, пока команда из двух человек и сеть стабильная. Как только людей становится больше, а база конфигурации разрастается, сетевая папка начинает подводить. Ниже весь путь: от подготовки машины до первого захвата объекта.

Что подготовить до установки

Сервер хранилища не требователен к железу. Основной ресурс, который он съедает, — диск и сеть. Процессор почти не нагружается: сервер только раздаёт версии и учитывает захваты.

Что нужно собрать заранее:

  • 🖥️ Машина. Отдельный сервер или виртуалка. Можно поставить на тот же сервер, где работает кластер 1С, но лучше разнести: падение одного не заберёт другое.
  • 💾 Диск. Хранилище растёт с каждой версией конфигурации. Для типовой конфигурации с доработками закладывайте от 20 ГБ, для крупной (ERP) — от 100 ГБ с запасом. Диск должен быть быстрым: хранилище читает и пишет много мелких данных.
  • 🌐 Сеть. Открытый порт для клиентов. По умолчанию сервер хранилища слушает 1542. Если за этим портом уже сидит другая служба, назначьте другой при запуске.
  • 📦 Версия платформы. Берите ту же, на которой работают разработчики. Старый клиент и новый сервер, как правило, договариваются, но при разнице в несколько минорных версий возможны отказы подключения. Надёжнее держать один релиз на всех.
  • 👤 Учётная запись. Отдельный пользователь ОС, под которым будет работать служба. Ему нужны права на запись в каталог хранилища и больше ничего.

Не кладите каталог хранилища на системный диск рядом с ОС. Когда он заполнится, встанет не только 1С, но и сама система.

ПараметрМинимумДля крупной команды
Диск под хранилище20 ГБ100 ГБ и больше
Оперативная память2 ГБ4 ГБ
Порт1542любой свободный
Одновременных разработчиков2-310 и больше

Цифры ориентировочные. Хранилище не жрёт память, но кеш операционной системы под него лучше не урезать.

Как установить сервер хранилища 1С на Windows

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

Шаг 1. Поставьте нужный компонент

  1. Запустите установщик платформы и дойдите до списка компонентов.
  2. Найдите пункт про сервер хранилища конфигураций. Название в разных релизах чуть отличается, ищите слово «хранилище».
  3. Отметьте его. Если платформа уже стоит, запустите установщик ещё раз и выберите изменение состава.
  4. Завершите установку. В каталоге 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 всё держится на тех же файлах платформы. Главное отличие: службу придётся оформить самостоятельно.

  1. Установите пакеты платформы. Серверный бинарник crserver лежит рядом с остальными исполняемыми файлами платформы, по умолчанию в /opt/1cv8/x86_64/<версия>/.
  2. Создайте каталог под хранилище и отдельного пользователя:
sudo useradd -r -s /usr/sbin/nologin usr1cv8
sudo mkdir -p /var/1c/repo
sudo chown usr1cv8:usr1cv8 /var/1c/repo
  1. Проверьте ручной запуск:
sudo -u usr1cv8 /opt/1cv8/x86_64/8.3.XX.XXXX/crserver -d /var/1c/repo -port 1542
  1. Если всё стартует, оформите службу 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
  1. Включите и запустите:
sudo systemctl daemon-reload
sudo systemctl enable --now crserver
sudo systemctl status crserver

После обновления платформы путь в ExecStart меняется вместе с номером версии. Поправьте юнит, иначе служба не поднимется после перезагрузки.

Если на сервере включён фаервол, откройте порт 1542 только для адресов разработчиков, а не для всего интернета.

Как создать хранилище конфигурации на сервере

Сервер поднят, но он пока пустой. Само хранилище создаётся из Конфигуратора той информационной базы, которая станет эталонной.

  1. Откройте Конфигуратор нужной базы.
  2. В меню «Конфигурация» найдите пункт про хранилище конфигурации и выберите создание хранилища. Если не нашли пункт сразу, ищите в подменю «Хранилище конфигурации».
  3. В поле расположения укажите адрес вида tcp://имя_сервера:1542/название_хранилища. Обычный путь к папке здесь не подойдёт: он создаст файловое хранилище, а нам нужно серверное.
  4. Задайте имя и пароль администратора хранилища. Запишите их сразу в менеджер паролей: восстановить забытый пароль администратора сложно.
  5. Подтвердите. Конфигуратор загрузит текущую конфигурацию как первую версию.

Название хранилища в адресе — это имя подкаталога на сервере. Выбирайте понятное и без пробелов, например buh_main или zup_dev. На одном сервере может жить сколько угодно хранилищ.

Если конфигурация на поддержке, перед созданием хранилища проверьте, что правила поддержки уже настроены так, как нужно команде. После загрузки в хранилище менять их придётся через захват корневого объекта.

Пользователи хранилища и права доступа

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

Создаёт их администратор через Конфигуратор: меню «Конфигурация» → «Хранилище конфигурации» → «Администрирование» → «Пользователи». Здесь же задаются пароли и права.

У каждого пользователя один из четырёх уровней:

УровеньЧто можетКому давать
ЧтениеСмотреть историю, сравнивать версии, получать конфигурациюАналитики, тестировщики
ПодключениеПрисоединить свою базу к хранилищу и обновляться из негоТот, кто разворачивает рабочие копии
ИзменениеЗахватывать объекты, править и помещать измененияРазработчики
АдминистрированиеУправлять пользователями, снимать чужие захваты, чистить версииОдин-два ответственных

Названия уровней в интерфейсе могут звучать немного иначе, но градация именно такая: от просмотра к управлению.

Хорошая практика:

  • 🔑 каждому разработчику своя учётная запись, общих логинов нет — иначе непонятно, кто что захватил;
  • 🔑 администраторов не больше двух;
  • 🔑 уволившемуся сотруднику права снимайте в тот же день, пока за ним не остались захваченные объекты.

Захваты других пользователей может снять только администратор, поэтому держите у него живой контакт: человек ушёл в отпуск с захваченным модулем, а команда ждёт.

Подключаем рабочее место разработчика

Разработчик работает не с хранилищем напрямую, а со своей копией базы, которую присоединяют к хранилищу.

  1. Откройте в Конфигураторе свою рабочую базу (копию эталонной).
  2. В подменю «Хранилище конфигурации» выберите подключение к хранилищу.
  3. Укажите тот же адрес tcp://имя_сервера:1542/название_хранилища, свой логин и пароль.
  4. Конфигуратор предложит загрузить конфигурацию из хранилища в базу. Согласитесь, если база пустая или тестовая.

После подключения в дереве метаданных у объектов появятся значки состояния. Рабочий цикл такой:

  • захватить объект для редактирования;
  • внести правки и проверить;
  • поместить изменения в хранилище с комментарием;
  • периодически обновлять конфигурацию из хранилища, чтобы получать правки коллег.

Комментарий при помещении пишите осмысленный. Через полгода по истории версий вы будете искать, где и когда сломали расчёт, и «исправление» вам не поможет.

Что проверить после настройки
Выполнено: 0 / 6

Ошибки при запуске и подключении

Большинство отказов укладывается в несколько причин. Таблица поможет быстро найти свою.

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

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

Обслуживание: обновления платформы, мониторинг, порядок в версиях

Поставили и забыли не получится. Раз в квартал уделите серверу час, и он не подведёт в самый неудобный момент.

Обновление платформы

Сервер хранилища обновляют вместе с платформой на машинах разработчиков. Порядок такой:

  1. Дождитесь, пока все поместят изменения и снимут захваты.
  2. Остановите службу и сделайте копию каталога хранилища.
  3. Поставьте новую версию платформы. Старую можно оставить рядом до проверки.
  4. Перерегистрируйте службу с путём к новому crserver либо поправьте юнит systemd.
  5. Запустите, подключитесь одним клиентом, проверьте историю версий и только потом зовите остальных.

Что держать под наблюдением

  • 📈 Свободное место на диске с хранилищем. Порог тревоги — 20% свободного.
  • 📈 Статус службы. Достаточно простой проверки раз в минуту любым мониторингом.
  • 📈 Долгие захваты. Объект, висящий на человеке неделю, обычно значит, что про него забыли.

Порядок в версиях

Хранилище копит каждую версию, и это нормально. Но привычка помещать изменения по десять раз на дню с комментарием «правка» превращает историю в мусор. Договоритесь в команде о простых правилах: одно изменение по смыслу — одна версия, комментарий отвечает на вопрос «что и зачем». Когда понадобится откатить расчёт или найти, кто поменял форму, вы скажете себе спасибо.

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

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

Нужна ли отдельная лицензия на сервер хранилища?
Нет. Служба crserver идёт в составе платформы и лицензий не потребляет. Лицензии нужны только Конфигуратору, через который люди работают с хранилищем.
Можно ли держать хранилище на том же сервере, что и кластер 1С?
Можно, если ресурсов хватает. Но при сбое или перезагрузке этого сервера команда остановит и работу баз, и разработку. Разделение надёжнее.
Чем серверное хранилище лучше файлового?
Файловое — это общая сетевая папка, и клиенты правят файлы напрямую. Это медленнее и хуже переживает обрывы сети. Серверное обслуживает запросы через службу и устойчивее к сбоям.
Как перенести хранилище на другой сервер?
Остановите службу, скопируйте каталог хранилища на новую машину, установите там crserver с тем же -d, запустите. Разработчикам нужно будет изменить адрес подключения, если сменилось имя сервера.
Сколько хранилищ можно держать на одном сервере?
Ограничений на количество нет, упрёмся только в диск. Каждое хранилище создаётся под своим именем в адресе подключения.