К статье
Практический материал

Администрирование · 13 мин

Сервер хранилища конфигураций 1С: что это и как с ним работать

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

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

Хранилище конфигурации само по себе существует и без сервера: в простейшем варианте это каталог с файлом 1cv8ddb (или набором служебных файлов), к которому разработчики подключаются напрямую через файловую систему. Однако файловый доступ плохо масштабируется: при росте команды возрастают задержки, риски блокировок и требования к правам на общую папку. Сервер хранилища решает эти проблемы, выступая посредником между конфигураторами разработчиков и файлами хранилища.

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

Что такое хранилище конфигурации и зачем ему сервер

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

Без сервера подключение к хранилищу выполняется по пути вида \\server\share\repository. Каждый конфигуратор сам читает и пишет файлы хранилища, а значит, всем разработчикам нужны права на запись в общую папку. При интенсивной работе — массовом захвате объектов, получении версий, сравнении конфигураций — файловый вариант начинает заметно тормозить, особенно если разработчики подключаются через VPN или медленные каналы.

Серверный вариант меняет схему: только сам сервер хранилища обращается к файлам, а разработчики подключаются к нему по адресу вида tcp://server:1542. Это снимает требование общей сетевой папки, снижает нагрузку на файловую систему и делает работу заметно быстрее при большом количестве операций с хранилищем.

Как устроена работа сервера хранилища

Сервер хранилища запускается как отдельный процесс (исполняемый файл входит в комплект платформы) и слушает заданный TCP-порт. При старте ему указывают каталог хранилища, который он будет обслуживать. Один серверный процесс обслуживает одно хранилище; если проектов несколько, для каждого поднимают отдельный экземпляр на своём порту.

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

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

Когда сервер хранилища действительно нужен

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

Маршрут решения

Как выбрать вариант доступа

Разработчик один, хранилище на его машинеРаботайте с локальным хранилищем, сервер не нужен
2–4 разработчика в одной локальной сетиДопустим файловый доступ через общую папку, но сервер уже удобнее
5 и более разработчиков или частые массовые операции с хранилищемРазворачивайте сервер хранилища — файловый доступ станет узким местом
Разработчики подключаются удалённо через VPN или медленные каналыИспользуйте сервер хранилища: сетевой протокол работает заметно быстрее файлового доступа
Нельзя давать разработчикам права на файловую шару по политике безопасностиСервер хранилища — единственный корректный вариант, файлы доступны только службе

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

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

Компонент сервера хранилища устанавливается из стандартного дистрибутива платформы 1С: при установке на Windows нужно отметить соответствующий пункт в списке компонентов. На Linux сервер запускается исполняемым файлом из каталога установки платформы. Отдельной лицензии на сам сервер хранилища не требуется.

Порядок развёртывания
  1. 1
    Установите платформу 1С на выделенной машине, отметив компонент сервера хранилища конфигураций
  2. 2
    Создайте каталог для хранилища и назначьте права: полный доступ только учётной записи, под которой будет работать служба
  3. 3
    Если хранилище ещё нет — создайте его из конфигуратора с указанием этого каталога, либо скопируйте существующее
  4. 4
    Запустите сервер хранилища с параметрами: путь к каталогу хранилища и TCP-порт (по умолчанию используется порт 1542)
  5. 5
    Настройте автозапуск: в Windows зарегистрируйте службу, в Linux добавьте unit systemd или скрипт автозагрузки
  6. 6
    Откройте выбранный порт в межсетевом экране для машин разработчиков
  7. 7
    Подключитесь из конфигуратора по адресу tcp://имя_сервера:порт и проверьте захват и помещение объекта

Пример запуска из командной строки в Windows выглядит следующим образом:

bash
"C:\Program Files\1cv8\8.3.24.1467\bin\crserver.exe" -port 1542 -d "D:\1C_Repo\MainRepo"

Для постоянной работы ручной запуск не подходит: служба должна стартовать автоматически и переживать перезагрузку сервера. В Windows удобно зарегистрировать сервер хранилища как службу с помощью sc create или специализированных утилит, в Linux — оформить systemd unit с автоматическим перезапуском при падении.

Подключение разработчиков и управление пользователями

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

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

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

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

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

Контрольные точки

Как проверить результат

Доступность сервера
Норма

Конфигуратор подключается по tcp://адрес:порт без ошибок, список пользователей читается

Тревожный признак

Ошибка соединения — проверьте, запущен ли процесс, открыт ли порт в брандмауэре

Захват и помещение объектов
Норма

Объект захватывается, помещается, в истории появляется новая версия с именем пользователя

Тревожный признак

Операции зависают или завершаются ошибкой доступа к файлам — проверьте права учётной записи службы на каталог

Скорость работы
Норма

Получение версий и массовый захват выполняются заметно быстрее, чем при файловом доступе

Тревожный признак

Работа медленнее файлового варианта — проверьте сеть и загрузку серверной машины

Резервная копия
Норма

Копия каталога снимается при остановленном сервере, тестовое восстановление проходит успешно

Тревожный признак

Копия делается во время работы сервера без теневого копирования — риск несогласованных данных

Типичные ошибки и ограничения

Типичные ошибки
01
Запуск двух экземпляров сервера на один каталог хранилища — приводит к повреждению данных
02
Общая учётная запись хранилища на всю команду — теряется история авторства изменений и смысл захвата объектов
03
Отсутствие резервного копирования каталога хранилища — при сбое диска теряется вся история разработки
04
Резервное копирование «на живую» без остановки сервера или теневых копий — копия может оказаться неработоспособной
05
Работа сервера и конфигураторов на сильно различающихся версиях платформы — ошибки подключения и отказы в обслуживании
06
Хранилище лежит на том же диске без мониторинга свободного места — переполнение диска останавливает работу всей команды

Важно понимать и ограничения механизма. Хранилище конфигурации — это система контроля версий, специфичная для 1С: она не заменяет Git-подобные системы по гибкости ветвления, хотя в современных версиях платформы есть механизм EDT и выгрузка в формате, пригодном для внешних систем контроля версий. Для классической разработки в конфигураторе хранилище остаётся штатным и наиболее простым инструментом.

Сравнение вариантов командной разработки

Файловый доступ к хранилищу

Подходит для 2–4 разработчиков в быстрой локальной сети. Ограничения: нужны права на общую папку, медленно по WAN, выше риск блокировок

Сервер хранилища конфигураций

Оптимален для команд от 3–5 разработчиков, удалённого доступа и строгих требований безопасности. Требует отдельной службы и обслуживания

1C:EDT с внешней системой контроля версий

Подходит для крупных проектов с ветвлением, code review и CI. Требует перехода команды на EDT и перестройки процессов

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

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

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

Нужна ли отдельная лицензия на сервер хранилища конфигураций?

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

Можно ли перевести существующее файловое хранилище на серверный доступ?

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

Сколько хранилищ может обслуживать один сервер?

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

Что делать, если хранилище повреждено?

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

Чем сервер хранилища отличается от сервера 1С:Предприятия?

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

Работает ли сервер хранилища на Linux?

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

Итог

Что важно запомнить

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