Сервер хранилища 1С: установка crserver, создание базы версий и настройка прав

· 9 мин

Содержание

Хранилище конфигурации 1С на сервере создаётся в Конфигураторе: Конфигурация → Хранилище конфигурации → Создать хранилище…. В поле адреса указывают либо сетевую папку (\\srv1c\repo\buh), либо адрес сервера хранилища (tcp://srv1c/buh), затем задают имя и пароль администратора хранилища. Через минуту-другую конфигурация выгружена, а база, из которой вы создавали хранилище, уже подключена к нему.

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

Что подготовить на сервере до создания хранилища

Начните с выбора способа доступа. От него зависит, что ставить на сервер.

СпособАдрес в КонфигуратореКогда подходитСлабые места
Сетевая папка\\srv1c\repo\buh1–2 разработчика в одной локальной сетиКаждому нужен доступ на запись к папке; файлы легко повредить при обрыве сети
Сервер хранилища (crserver)tcp://srv1c/buhКоманда в одной сети или через VPNНужна служба и открытый порт 1542
HTTP через веб-серверhttp://srv1c/repo/repo.1ccrРазработчики работают удалённо, без VPNНужен IIS или Apache и публикация хранилища

Для серверного варианта с crserver и TCP-доступом подготовьте четыре вещи:

  • 🖥️ Сервер. Windows Server 2016 или новее либо Linux. Нагрузка небольшая, но место на диске растёт с каждой версией: закладывайте запас в несколько размеров выгрузки .cf.
  • 📦 Компонент платформы. В установщике 1С:Предприятия отметьте компонент «Сервер хранилища конфигураций 1С:Предприятия 8». Версия платформы на сервере хранилища должна совпадать с версией у разработчиков — иначе подключение откажет или потребует обновить клиент .
  • 👤 Учётная запись службы. Отдельный локальный или доменный пользователь, например USR1CV8_REPO, с полными правами на каталог хранилищ. Под администратором домена службу не запускайте.
  • 🔌 Порт. По умолчанию сервер хранилища слушает 1542. Откройте его во входящих правилах брандмауэра сервера и на сетевом оборудовании, если разработчики в другой подсети.

Каталог хранилищ держите на отдельном диске, а не на системном C:. Так проще с копиями и не будет сюрприза, когда за год история разрастётся до десятков гигабайт.

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

Если при установке платформы служба не зарегистрировалась сама, зарегистрируйте её вручную. Исполняемый файл лежит в каталоге bin нужной версии платформы, например C:\Program Files\1cv8\8.3.25.1374\bin\crserver.exe (номер подставьте свой).

Откройте командную строку от имени администратора:

cd "C:\Program Files\1cv8\8.3.25.1374\bin"
crserver.exe -instsrvc -port 1542 -d "D:\1C_Repo" -usr .\USR1CV8_REPO -pwd ПарольСлужбы
crserver.exe -start

Что значат ключи:

  1. -instsrvc — зарегистрировать сервер хранилища как службу Windows.
  2. -port 1542 — порт, на котором служба принимает подключения.
  3. -d "D:\1C_Repo" — корневой каталог. Каждое хранилище будет папкой внутри него.
  4. -usr и -pwd — учётная запись, от имени которой работает служба.
  5. -start — запустить службу. Для остановки есть -stop, для удаления службы — -rmsrvc.

Проверьте результат в оснастке «Службы» (services.msc): служба сервера хранилища должна быть в состоянии «Выполняется», тип запуска — «Автоматически».

Остановка службы crserver обрывает работу всех разработчиков с хранилищем. Незавершённое помещение изменений у них упадёт с ошибкой. Останавливайте службу в согласованное окно, когда никто не помещает изменения.

Если нужен доступ по HTTP

Для удалённых разработчиков без VPN хранилище публикуют на веб-сервере. Это делается из Конфигуратора, запущенного на машине с IIS или Apache: Администрирование → Публикация на веб-сервере хранилища конфигурации. Указываете имя публикации, каталог и адрес хранилища (tcp://srv1c/buh или локальный путь). Разработчики подключаются по адресу вида http://srv1c/repo/repo.1ccr.

Создаём хранилище конфигурации в Конфигураторе

Создают хранилище из базы, где лежит эталонная конфигурация. Обычно это копия рабочей базы или отдельная база разработки.

  1. Сделайте выгрузку конфигурации на всякий случай: Конфигурация → Сохранить конфигурацию в файл… → получите .cf.
  2. Откройте базу в Конфигураторе под пользователем с правами администратора.
  3. Выберите Конфигурация → Хранилище конфигурации → Создать хранилище….
  4. В поле адреса укажите путь:
    • для crserver: tcp://srv1c/buh (если порт не стандартный — tcp://srv1c:1600/buh);
    • для сетевой папки: \\srv1c\repo\buh.
  5. Задайте имя и пароль администратора хранилища. Это не пользователь информационной базы — это отдельная учётная запись внутри хранилища.
  6. Подтвердите создание. Платформа выгрузит все объекты в хранилище и подключит текущую базу к нему.

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

Записывайте пароль администратора хранилища сразу в менеджер паролей. Без него не добавить пользователей и не снять чужие захваты, а штатного сброса из Конфигуратора нет.

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

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

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

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

Как отключить базу от хранилища

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

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

Версии, метки и комментарии: как вести историю хранилища

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

Цикл работы разработчика:

  1. Захват: в окне хранилища (Конфигурация → Хранилище конфигурации → Захватить в хранилище…) отмечаете нужные объекты. Флажок «Получать захваченные объекты» подтягивает их свежую версию перед захватом.
  2. Правка объектов в своей базе, проверка.
  3. Помещение: Поместить в хранилище…. Пишите комментарий — номер задачи и суть: «Задача 1482: новая печатная форма акта сверки». Флажок «Оставить объекты захваченными» нужен, если работа над объектом продолжается.
  4. Остальные получают изменения командой Обновить конфигурацию из хранилища.

Метки. В Истории хранилища выделите версию и установите метку, например «Релиз 2.1 — передан в рабочую базу». По метке потом легко найти версию, которая ушла пользователям, и откатиться к ней.

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

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

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

Права раздаются в Конфигурация → Хранилище конфигурации → Администрирование хранилища…. Окно доступно только пользователю с административными правами в хранилище.

Для каждого пользователя задаются имя, пароль и набор прав:

  • 🔑 Административные функции — добавление пользователей, смена паролей, управление хранилищем. Дайте одному-двум людям.
  • ✏️ Захват объектов — можно брать объекты на редактирование. Основное право разработчика.
  • 🕘 Изменение версий — правка комментариев и меток в истории.

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

Практические правила:

  1. Одна учётная запись — один человек. Общий логин «dev» лишает историю смысла: не понять, кто что поместил.
  2. Ушедшему сотруднику не удаляйте запись сразу. Сначала проверьте, что за ним не осталось захваченных объектов.
  3. Пароль пользователя хранилища администратор меняет в том же окне администрирования, если разработчик его забыл.

Конфликты, захваты и скорость работы

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

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

Для сетевой папки скорость сильно зависит от сети. Если в команде больше двух человек, переход на crserver обычно сразу убирает зависания при захвате и помещении.

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

Хранилище — единственное место, где живёт вся история разработки. Потерять его значит потерять возможность откатиться к любой прошлой версии.

Что копировать. Каталог конкретного хранилища целиком: основной файл 1cv8ddb.1CD и все служебные подкаталоги рядом с ним. Копия одного только .1CD неполная.

Как копировать без порчи. Файлы должны быть в согласованном состоянии:

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

Пример bat-файла для планировщика заданий:

@echo off
set REPO=D:\1C_Repo\buh
set DEST=\\backup\1c_repo\buh_%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
net stop "1C:Enterprise 8.3 Configuration Repository Server"
robocopy "%REPO%" "%DEST%" /E /R:2 /W:5
net start "1C:Enterprise 8.3 Configuration Repository Server"

Имя службы в net stop проверьте в services.msc — в свойствах службы указано её точное имя, оно зависит от версии и способа регистрации. Формат даты в %DATE% зависит от региональных настроек сервера, проверьте результат одним ручным запуском.

Не копируйте каталог «на живую», пока служба работает и кто-то помещает изменения. Такая копия может не открыться при восстановлении.

Дополнительная страховка. Раз в неделю или после каждой поставки выгружайте конфигурацию из хранилища в .cf. В окне Истории хранилища можно сохранить нужную версию в файл. Это не заменяет копию хранилища (история не сохраняется), но даёт рабочую конфигурацию за минуту.

Восстановление.

  1. Остановите службу crserver.
  2. Переименуйте повреждённый каталог хранилища, не удаляя его.
  3. Разверните копию на его место с тем же именем папки.
  4. Запустите службу и подключитесь из любой базы разработчика.
  5. Разработчикам, чьи помещения были позже даты копии, нужно заново поместить изменения из своих баз — они у них сохранились локально.
Хранилище готово к работе
Выполнено: 0 / 6

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

Можно ли перенести хранилище с сетевой папки на сервер crserver?
Да. Остановите работу разработчиков, скопируйте каталог хранилища в корневой каталог crserver и подключайтесь уже по адресу tcp://. История версий сохраняется.
Сколько хранилищ можно держать на одном crserver?
Ограничения на количество нет: каждое хранилище — отдельная папка внутри корневого каталога службы. Адрес отличается последней частью: tcp://srv1c/buh, tcp://srv1c/zup.
Нужна ли лицензия 1С для сервера хранилища?
Сам сервер хранилища отдельной лицензии не требует. Лицензии нужны разработчикам для запуска Конфигуратора и баз, как обычно.
Можно ли положить в хранилище расширение конфигурации?
Да, расширение подключают к своему хранилищу отдельно от основной конфигурации. Для него действуют те же правила захвата, помещения и меток.
Что делать после обновления платформы на машинах разработчиков?
Обновите платформу и на сервере хранилища, затем перерегистрируйте службу из каталога bin новой версии. Иначе подключение может завершиться ошибкой несовпадения версий.