Как поднять crserver и наладить групповую разработку в 1С 8.3

· 10 мин

Содержание

Сервер хранилища конфигураций 1С — это отдельная служба crserver, которая держит хранилище на одной машине и отдаёт его разработчикам по сети на порт 1542. Устанавливается она вместе с платформой 1С:Предприятие 8.3, регистрируется как служба Windows, а в Конфигураторе к ней подключаются по адресу вида tcp://srv-dev:1542/ERP_dev.

У хранилища есть три способа доступа: файловый (общая папка), через сервер хранилища (TCP) и через веб-сервер (HTTP). Файловый годится для двух человек в одной сети. Сервер хранилища выбирают, когда разработчиков больше трёх, когда нужна скорость и когда не хочется раздавать всем права на сетевую папку. HTTP-публикация нужна, если разработчики подключаются из-за пределов офиса без VPN.

Зачем нужен сервер хранилища и как он устроен

Хранилище конфигурации — это система контроля версий, встроенная в платформу. В ней лежит эталонная конфигурация, история всех помещений и сведения о том, кто какой объект сейчас захватил для правки.

Сам сервер хранилища ничего не «разрабатывает». Он делает три вещи:

  • 🗄️ хранит файлы хранилищ в одном корневом каталоге на диске сервера;
  • 🔌 принимает подключения Конфигураторов по TCP и выполняет операции на своей стороне;
  • 🔐 проверяет пользователя хранилища и его права при каждой операции.

Схема работы простая. На сервере запущен процесс crserver.exe, ему указан корневой каталог, например D:\Repository. Внутри каждое хранилище — отдельная подпапка: D:\Repository\ERP_dev, D:\Repository\ZUP_dev. Имя подпапки и становится последней частью адреса подключения.

Чем сервер выигрывает у общей папки:

КритерийФайловое хранилищеСервер хранилища (TCP)Веб-сервер (HTTP)
Где выполняется работана компьютере разработчикана серверена сервере
Доступ к папке у разработчиковнужен на чтение и записьне нуженне нужен
Скорость при 5–10 разработчикахпадает, особенно по VPNстабильнаяниже TCP
Работа через интернеттолько через VPNчерез VPN или проброс порташтатно, по HTTPS
Риск повредить файлы при обрыве сетизаметныйнизкийнизкий

Главный плюс серверного режима — разработчики не трогают файлы хранилища напрямую. Обрыв Wi-Fi у одного человека не оставит базу хранилища в полузаписанном состоянии.

Сервер хранилища не связан с сервером 1С:Предприятия и не требует его. Это разные службы с разными портами: кластер 1С слушает 1540–1541, хранилище — 1542. Их можно ставить на одну машину или на разные.

Установка сервера хранилища и запуск службы crserver

Шаг 1. Установка компонента

  1. Запустите установщик платформы той же версии, что стоит у разработчиков. Например, если в команде используют 8.3.25, ставьте ту же сборку.
  2. В списке компонентов включите «Сервер хранилища конфигураций 1С:Предприятия». Остальные компоненты на сервере хранилища не обязательны.
  3. Дождитесь окончания установки. Файл crserver.exe появится в папке bin нужной версии, например C:\Program Files\1cv8\8.3.25.1374\bin\.

Версию берите строго ту же, что у клиентов. Это первая и самая частая причина ошибок подключения, о ней ниже.

Шаг 2. Каталог и учётная запись службы

Создайте корневой каталог хранилищ на отдельном диске, например D:\Repository. Не кладите его на системный диск: хранилище крупной конфигурации за год-два легко вырастает до десятков гигабайт.

Заведите локального или доменного пользователя для службы, например svc_crserver. Дайте ему полный доступ к D:\Repository и больше ничего лишнего. Без прав на запись служба запустится, но создать хранилище не даст.

Шаг 3. Регистрация службы из командной строки

Откройте командную строку от имени администратора, перейдите в папку bin и зарегистрируйте службу:

cd "C:\Program Files\1cv8\8.3.25.1374\bin"
crserver.exe -instsrvc -port 1542 -d "D:\Repository" -usr .\svc_crserver -pwd "Пароль_учётки"
crserver.exe -start

Что означают параметры:

  • -instsrvc — зарегистрировать сервер хранилища как службу Windows;
  • -port — порт, на котором служба принимает подключения (по умолчанию 1542);
  • -d — корневой каталог хранилищ;
  • -usr и -pwd — учётная запись Windows, от которой работает служба;
  • -start и -stop — запустить или остановить зарегистрированную службу;
  • -rmsrvc — снять регистрацию службы.

После запуска проверьте, что служба появилась в оснастке services.msc в состоянии «Выполняется», а порт слушается:

netstat -ano | findstr :1542

Шаг 4. Брандмауэр

Откройте входящий TCP-порт 1542 в брандмауэре Windows на сервере. Если планируете второй экземпляр службы на другом порту, откройте и его.

netsh advfirewall firewall add rule name="1C crserver 1542" dir=in action=allow protocol=TCP localport=1542

Не пробрасывайте порт 1542 напрямую в интернет. Для удалённых разработчиков используйте VPN или HTTP-публикацию через веб-сервер с HTTPS.

Linux

Для Linux crserver входит в серверный дистрибутив платформы и ставится в каталог версии, например /opt/1cv8/x86_64/8.3.25.1374/. Запускают его от отдельного пользователя через unit-файл systemd с теми же параметрами порта и каталога. Точный набор ключей для вашей сборки смотрите в выводе crserver -help.

Создание хранилища и работа с версиями

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

Хранилище создаётся из Конфигуратора, а не на сервере:

  1. Откройте в Конфигураторе базу, конфигурацию которой нужно поместить в хранилище.
  2. Выберите Конфигурация → Хранилище конфигурации → Создать хранилище....
  3. В поле адреса укажите tcp://srv-dev:1542/ERP_dev. Подпапку ERP_dev служба создаст сама внутри D:\Repository.
  4. Задайте имя и пароль администратора хранилища. Запишите пароль в менеджер паролей сразу: штатной процедуры сброса нет.
  5. Подтвердите помещение конфигурации. Платформа выгрузит все объекты, это займёт от минуты до получаса в зависимости от размера.

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

Как устроены версии

Каждое помещение изменений создаёт новую версию с номером, автором, датой и комментарием. Веток в привычном для Git смысле нет: хранилище линейное.

Чем пользуются на практике:

  • 📜 История хранилища — список версий с фильтром по автору, дате, объекту;
  • 🏷️ метки — подпись к версии вроде «Релиз 2.4 в прод», по ним быстро находят точку отката;
  • 📥 получение конфигурации нужной версии в файл .cf — для сборки поставки или сравнения;
  • 🔍 сравнение двух версий — видно, что именно менял разработчик.

Схема «несколько веток» решается несколькими хранилищами. Типичный вариант: хранилище ERP_dev для текущей разработки и ERP_release для поддержки рабочей версии. Исправление из одного переносят в другое через сравнение и объединение конфигураций.

Расширения конфигурации тоже подключают к хранилищу. Для каждого расширения создаётся своё хранилище, и адрес у него свой, например tcp://srv-dev:1542/ERP_ext_print.

Порядок работы разработчика

  1. Захватить в хранилище нужный объект (модуль, форму, справочник). Захватывать можно рекурсивно — вместе с подчинёнными.
  2. Внести правки в своей базе, проверить.
  3. Поместить в хранилище с понятным комментарием: номер задачи и суть изменения.
  4. Если правки не понадобились — Отменить захват, чтобы объект освободился.
  5. Регулярно Обновить конфигурацию из хранилища, чтобы забрать чужие изменения.

После каждого получения и помещения не забудьте обновить конфигурацию базы данных (F7), иначе в режиме 1С:Предприятие будет работать старая версия.

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

Пользователи хранилища — это не пользователи Windows и не пользователи информационной базы. У хранилища свой отдельный список.

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

Набор прав

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

Что настроить по безопасности

  • 👤 Каждому разработчику — своя учётная запись. Общий логин «dev» убивает историю: не понять, кто сломал модуль.
  • 🔑 Два администратора, а не один. Если единственный администратор забудет пароль, вернуть доступ будет нечем.
  • 📁 Права NTFS на D:\Repository — только у учётной записи службы и у администраторов сервера. Разработчикам доступ к папке не нужен.
  • 🚪 Уволившемуся сотруднику — сначала снять его захваты, затем отключить пользователя . Удалять учётку целиком не стоит: на неё ссылается история версий.

Снятие чужого захвата отменяет право того разработчика поместить свои правки. Если он успел что-то поменять у себя, эти изменения придётся переносить вручную. Перед снятием предупредите человека.

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

Подготовка клиента

  1. Установите на компьютер разработчика платформу той же версии, что и crserver на сервере.
  2. Проверьте доступность порта: Test-NetConnection srv-dev -Port 1542 в PowerShell должен вернуть TcpTestSucceeded : True.
  3. Создайте у разработчика пустую информационную базу (файловую или на своём сервере 1С).

Подключение

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

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

Подключение через HTTP

Когда VPN нет, хранилище публикуют на веб-сервере (Apache или IIS) с установленным модулем расширения веб-сервера 1С. Публикацию выполняют на машине с веб-сервером через Конфигуратор, в меню Администрирование есть отдельная команда публикации хранилищ. В адресе подключения у клиента вместо tcp:// будет http:// или https:// и путь к опубликованному каталогу. Для работы через интернет используйте только HTTPS.

Перед выдачей доступа разработчику
Выполнено: 0 / 5

Резервное копирование и обслуживание

Хранилище — это код всей команды за годы работы. Потерять его больнее, чем рабочую базу: данные можно восстановить из бэкапа сервера 1С, а историю правок — нет.

Практичная схема:

  1. Ночью, когда разработчики не работают, остановить службу: crserver.exe -stop.
  2. Скопировать каталог хранилища целиком (архиватором или robocopy) на другой диск или в другое хранилище.
  3. Запустить службу обратно: crserver.exe -start.

При остановке службы у всех подключённых разработчиков оборвётся связь с хранилищем. Незавершённое помещение в этот момент не сохранится. Ставьте задание на время, когда команда точно не работает, и предупредите тех, кто любит коммитить ночью.

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

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

Ошибки сервера хранилища и что с ними делать

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

Если ничего не помогло

Запустите crserver.exe вручную в консоли, без службы, с теми же параметрами -port и -d. Предварительно остановите службу, чтобы не было конфликта по порту. В консоли видно, стартует ли процесс и не занят ли порт другим приложением. Так быстро отделяются проблемы с правами учётной записи службы от проблем самой программы.

Если на одном сервере нужны хранилища под разные версии платформы, держите каждый экземпляр на своём порту и в своём каталоге. Например, 8.3.24 на 1542, 8.3.25 на 1642. Разработчикам выдайте адреса с явным портом.

Частые вопросы о сервере хранилища

Нужна ли лицензия 1С на сервер хранилища?
Отдельной лицензии для службы crserver не требуется. Лицензии нужны на клиентские места, с которых разработчики запускают Конфигуратор.
Можно ли поставить сервер хранилища на ту же машину, что и сервер 1С?
Можно. Службы не мешают друг другу: кластер 1С работает на портах 1540–1541 и диапазоне рабочих процессов, хранилище — на 1542. Следите только за местом на диске и нагрузкой.
Как перенести хранилище на другой сервер?
Установите на новом сервере crserver той же версии, остановите службу на старом, скопируйте подпапку хранилища в корневой каталог нового и запустите службу. Разработчикам останется переподключиться по новому адресу.
Что делать, если забыли пароль администратора хранилища?
Штатного сброса нет. Войдите под вторым пользователем с административными правами или восстановите каталог хранилища из копии, где пароль известен.
Сколько разработчиков выдержит один сервер хранилища?
Жёсткого лимита в платформе нет. Узким местом обычно становится диск и сеть, поэтому каталог хранилищ держат на SSD, а сервер — в той же локальной сети, что и большинство разработчиков.