Как поднять crserver и наладить групповую разработку в 1С 8.3
Содержание
Сервер хранилища конфигураций 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. Установка компонента
- Запустите установщик платформы той же версии, что стоит у разработчиков. Например, если в команде используют 8.3.25, ставьте ту же сборку.
- В списке компонентов включите «Сервер хранилища конфигураций 1С:Предприятия». Остальные компоненты на сервере хранилища не обязательны.
- Дождитесь окончания установки. Файл
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.
Создание хранилища и работа с версиями
Как создать хранилище на сервере
Хранилище создаётся из Конфигуратора, а не на сервере:
- Откройте в Конфигураторе базу, конфигурацию которой нужно поместить в хранилище.
- Выберите
Конфигурация → Хранилище конфигурации → Создать хранилище.... - В поле адреса укажите
tcp://srv-dev:1542/ERP_dev. ПодпапкуERP_devслужба создаст сама внутриD:\Repository. - Задайте имя и пароль администратора хранилища. Запишите пароль в менеджер паролей сразу: штатной процедуры сброса нет.
- Подтвердите помещение конфигурации. Платформа выгрузит все объекты, это займёт от минуты до получаса в зависимости от размера.
После этого база, из которой создавали хранилище, остаётся подключённой к нему под администратором.
Как устроены версии
Каждое помещение изменений создаёт новую версию с номером, автором, датой и комментарием. Веток в привычном для Git смысле нет: хранилище линейное.
Чем пользуются на практике:
- 📜
История хранилища— список версий с фильтром по автору, дате, объекту; - 🏷️ метки — подпись к версии вроде «Релиз 2.4 в прод», по ним быстро находят точку отката;
- 📥 получение конфигурации нужной версии в файл
.cf— для сборки поставки или сравнения; - 🔍 сравнение двух версий — видно, что именно менял разработчик.
Схема «несколько веток» решается несколькими хранилищами. Типичный вариант: хранилище ERP_dev для текущей разработки и ERP_release для поддержки рабочей версии. Исправление из одного переносят в другое через сравнение и объединение конфигураций.
Расширения конфигурации тоже подключают к хранилищу. Для каждого расширения создаётся своё хранилище, и адрес у него свой, например tcp://srv-dev:1542/ERP_ext_print.
Порядок работы разработчика
Захватить в хранилищенужный объект (модуль, форму, справочник). Захватывать можно рекурсивно — вместе с подчинёнными.- Внести правки в своей базе, проверить.
Поместить в хранилищес понятным комментарием: номер задачи и суть изменения.- Если правки не понадобились —
Отменить захват, чтобы объект освободился. - Регулярно
Обновить конфигурацию из хранилища, чтобы забрать чужие изменения.
После каждого получения и помещения не забудьте обновить конфигурацию базы данных (F7), иначе в режиме 1С:Предприятие будет работать старая версия.
Пользователи хранилища и права доступа
Пользователи хранилища — это не пользователи Windows и не пользователи информационной базы. У хранилища свой отдельный список.
Управляют им так: Конфигурация → Хранилище конфигурации → Администрирование хранилища. Окно доступно только пользователю с административными правами. Там на закладке пользователей добавляют людей, задают пароли и права.
Набор прав
| Право | Что позволяет | Кому давать |
|---|---|---|
| Без отметок | подключаться, смотреть историю, получать версии | аналитикам, тестировщикам |
| Захват объектов | захватывать объекты и помещать изменения | разработчикам |
| Изменение состава версий | менять список версий хранилища | ведущему разработчику |
| Административные функции | управлять пользователями, снимать чужие захваты, менять настройки | 1–2 людям в команде |
Что настроить по безопасности
- 👤 Каждому разработчику — своя учётная запись. Общий логин «dev» убивает историю: не понять, кто сломал модуль.
- 🔑 Два администратора, а не один. Если единственный администратор забудет пароль, вернуть доступ будет нечем.
- 📁 Права NTFS на
D:\Repository— только у учётной записи службы и у администраторов сервера. Разработчикам доступ к папке не нужен. - 🚪 Уволившемуся сотруднику — сначала снять его захваты, затем отключить пользователя . Удалять учётку целиком не стоит: на неё ссылается история версий.
Снятие чужого захвата отменяет право того разработчика поместить свои правки. Если он успел что-то поменять у себя, эти изменения придётся переносить вручную. Перед снятием предупредите человека.
Подключение рабочих мест разработчиков
Подготовка клиента
- Установите на компьютер разработчика платформу той же версии, что и
crserverна сервере. - Проверьте доступность порта:
Test-NetConnection srv-dev -Port 1542в PowerShell должен вернутьTcpTestSucceeded : True. - Создайте у разработчика пустую информационную базу (файловую или на своём сервере 1С).
Подключение
- Откройте пустую базу в Конфигураторе.
- Выберите
Конфигурация → Хранилище конфигурации → Подключиться к хранилищу.... - Укажите адрес
tcp://srv-dev:1542/ERP_dev, имя и пароль пользователя хранилища. - Согласитесь на замену конфигурации базы конфигурацией из хранилища.
- Дождитесь загрузки и обновите конфигурацию базы данных.
Если у разработчика уже есть база с той же конфигурацией и данными, подключить её тоже можно. Платформа сравнит конфигурации и предложит загрузить версию из хранилища, локальные отличия при этом будут потеряны. Перед этим выгрузите свою конфигурацию в .cf.
Подключение через HTTP
Когда VPN нет, хранилище публикуют на веб-сервере (Apache или IIS) с установленным модулем расширения веб-сервера 1С. Публикацию выполняют на машине с веб-сервером через Конфигуратор, в меню Администрирование есть отдельная команда публикации хранилищ. В адресе подключения у клиента вместо tcp:// будет http:// или https:// и путь к опубликованному каталогу. Для работы через интернет используйте только HTTPS.
Резервное копирование и обслуживание
Хранилище — это код всей команды за годы работы. Потерять его больнее, чем рабочую базу: данные можно восстановить из бэкапа сервера 1С, а историю правок — нет.
Практичная схема:
- Ночью, когда разработчики не работают, остановить службу:
crserver.exe -stop. - Скопировать каталог хранилища целиком (архиватором или robocopy) на другой диск или в другое хранилище.
- Запустить службу обратно:
crserver.exe -start.
При остановке службы у всех подключённых разработчиков оборвётся связь с хранилищем. Незавершённое помещение в этот момент не сохранится. Ставьте задание на время, когда команда точно не работает, и предупредите тех, кто любит коммитить ночью.
Дополнительно раз в неделю выгружайте последнюю версию конфигурации из хранилища в .cf — это быстрая страховка, если сам файл хранилища повредится.
Для обслуживания в окне администрирования хранилища есть оптимизация данных: она уменьшает размер файла после большого числа версий. Запускайте её тоже вне рабочих часов и только после свежей копии.
Ошибки сервера хранилища и что с ними делать
Если ничего не помогло
Запустите crserver.exe вручную в консоли, без службы, с теми же параметрами -port и -d. Предварительно остановите службу, чтобы не было конфликта по порту. В консоли видно, стартует ли процесс и не занят ли порт другим приложением. Так быстро отделяются проблемы с правами учётной записи службы от проблем самой программы.
Если на одном сервере нужны хранилища под разные версии платформы, держите каждый экземпляр на своём порту и в своём каталоге. Например, 8.3.24 на 1542, 8.3.25 на 1642. Разработчикам выдайте адреса с явным портом.