Разработка и Конфигурация · 12 мин
Сервер хранилища конфигураций 1С: назначение и настройка
Сервер хранилища конфигураций 1С: назначение, установка, настройка, отличие от файлового хранилища. Практические шаги, ошибки и FAQ для администраторов.
Сервер хранилища конфигураций 1С — это отдельная служба платформы, которая обслуживает подключения разработчиков к хранилищу конфигурации по сети. Без сервера хранилище представляет собой файл с расширением .1cda, к которому разработчики подключаются напрямую по сетевому пути, что при росте команды приводит к конфликтам доступа и падению скорости. Сервер снимает эти ограничения: все операции захвата, помещения и получения объектов проходят через него, а доступ к файлу хранилища имеет только сама служба.
Тема актуальна для команд, где над одной конфигурацией работают два и более разработчика. Если каждый ведёт доработки в своей базе и обменивается файлами .cf, рано или поздно возникает ситуация потерянных изменений: один разработчик загрузил конфигурацию целиком и затёр работу коллеги. Хранилище решает эту проблему через механизм захвата объектов, а сервер хранилища делает работу с ним стабильной и быстрой.
Материал ориентирован на администраторов 1С и ведущих разработчиков, которые планируют развернуть сервер хранилища или перенести существующее файловое хранилище на серверный вариант. Рассмотрим архитектуру, требования, пошаговую установку, типичные ошибки и способы проверки результата.
Что такое хранилище конфигурации и зачем ему сервер
Хранилище конфигурации — это централизованное хранилище версий конфигурации 1С. Оно фиксирует, какой разработчик захватил объект на изменение, хранит историю версий и позволяет откатиться к любой из них. Физически хранилище — это файл с расширением .1cda, который создаётся из конфигуратора командой «Конфигурация → Хранилище конфигурации → Создать хранилище».
Без сервера разработчики подключаются к хранилищу по сетевому пути вида \\server\share\storage.1cda. Такой режим работает, но имеет ограничения: файл открывается несколькими клиентами одновременно через механизмы сетевой файловой системы, скорость операций заметно падает при росте числа пользователей, а обрыв сети в момент записи может привести к повреждению хранилища.
Серверный режим меняет схему: файл хранилища открывает только служба сервера, а конфигураторы подключаются к ней по адресу вида tcp://servername:1542/StorageName. Это снимает проблему конкурентного файлового доступа, ускоряет массовые операции (получение версии, сравнение) и позволяет размещать хранилище на машине без общих сетевых папок.
Когда сервер хранилища действительно нужен
Решение о развёртывании сервера зависит от размера команды и интенсивности работы. Для одного-двух разработчиков с невысокой активностью файловый режим вполне работоспособен, и ввод сервера добавит больше задач по сопровождению, чем пользы. Для команды из трёх и более человек, активно ведущей параллельную разработку, серверный режим становится практически обязательным.
Как выбрать действие
Дополнительный аргумент в пользу сервера — безопасность. В файловом режиме у каждого разработчика должен быть доступ на уровне файловой системы к каталогу с хранилищем, то есть технически любой из них может скопировать или удалить файл. При серверном режиме доступ к каталогу нужен только службе, а разработчики аутентифицируются на уровне хранилища.
Требования и подготовка к установке
Сервер хранилища входит в состав дистрибутива платформы 1С:Предприятие и устанавливается вместе с компонентами сервера. Для работы достаточно выделенной машины или виртуального сервера с установленной платформой той же версии, что используется для разработки. Желательно, чтобы версия платформы сервера хранилища совпадала с версией клиентов — несовпадение релизов является частой причиной ошибок подключения.
По умолчанию сервер хранилища использует TCP-порт 1542. Этот порт нужно открыть в межсетевом экране между машинами разработчиков и сервером. Если порт занят или закрыт политиками, сервер можно запустить на другом порту, но тогда его нужно явно указывать в строке подключения.
Перед миграцией существующего хранилища обязательно сделайте полную копию файла .1cda. Операция переноса сама по себе безопасна — файл просто размещается в каталоге, который обслуживает сервер, — но резервная копия страхует от ошибок при настройке прав и путей.
Установка и запуск сервера хранилища
В Windows сервер хранилища устанавливается как служба через утилиту командной строки, входящую в состав платформы. Запуск выполняется из каталога bin установленной версии платформы с правами администратора. В Linux служба регистрируется аналогичным образом через скрипты дистрибутива.
"C:\Program Files\1cv8\8.3.22.1750\bin\crserver.exe" -instsrvc -d "D:\1C_Storage"Параметр -d задаёт корневой каталог, в котором размещаются хранилища, обслуживаемые сервером. Каждое хранилище — это подкаталог внутри корневого каталога, и имя подкаталога становится именем хранилища в строке подключения. После регистрации службы её нужно запустить через оснастку services.msc или командой net start.
- 1Установите на выделенной машине платформу 1С той же версии, что у разработчиков
- 2Создайте корневой каталог для хранилищ, например D:\1C_Storage
- 3Зарегистрируйте службу командой crserver.exe -instsrvc -d с указанием каталога
- 4Запустите службу и проверьте, что порт 1542 прослушивается
- 5Скопируйте файл .1cda в подкаталог внутри корневого каталога сервера
- 6В конфигураторе подключитесь к хранилищу по адресу tcp://server:1542/ИмяХранилища
- 7Выполните тестовый захват и помещение объекта, затем проверьте историю версий
Учётная запись, под которой работает служба, должна иметь полные права на корневой каталог и все вложенные файлы. Если служба стартует и сразу останавливается, первым делом проверяйте права на каталог и корректность пути в параметрах службы.
Подключение разработчиков и разграничение прав
Подключение к серверному хранилищу выполняется из конфигуратора: «Конфигурация → Хранилище конфигурации → Подключиться к хранилищу». В поле пути указывается строка вида tcp://имя_сервера:1542/ИмяХранилища. Далее вводятся имя и пароль пользователя хранилища — они задаются администратором хранилища и не связаны с пользователями информационной базы.
Администратор хранилища управляет списком пользователей через конфигуратор в режиме администрирования хранилища. Для каждого пользователя можно ограничить права: например, запретить изменение версий хранилища или откат. Минимально необходимое разделение — один администратор и обычные разработчики без административных прав.
Практическая рекомендация: заводите в хранилище персональные учётные записи, а не общую на всю команду. История версий и захват объектов привязаны к имени пользователя хранилища, и общий аккаунт обесценивает весь механизм контроля — будет невозможно понять, кто внёс конкретное изменение.
Проверка работоспособности и обслуживание
После развёртывания проверьте ключевые сценарии: подключение, захват объекта, помещение изменений, получение версии другим разработчиком и просмотр истории. Все операции должны выполняться без ошибок блокировок и с приемлемой скоростью.
Как проверить результат
Служба в состоянии «Работает», порт 1542 прослушивается (netstat -an)
Служба остановлена или порт не отвечает — проверяйте права на каталог и путь в параметрах
Хранилище открывается по tcp-адресу, виден список версий
Ошибка соединения — проверяйте порт, имя сервера и имя хранилища в строке
Объект захватывается, изменения помещаются, версия появляется в истории
Ошибка блокировки или отказ в доступе — проверяйте права пользователя хранилища
Два разработчика одновременно работают без ошибок доступа к файлу
Ошибки совместного доступа — вероятно, кто-то подключён по старому файловому пути
Регулярное обслуживание сводится к резервному копированию каталога хранилищ и контролю свободного места на диске. Копирование файла .1cda безопасно выполнять, когда служба остановлена, либо использовать средства теневого копирования. Растущее хранилище со временем замедляется — периодически полезно проверять его целостность штатными средствами платформы.
Ограничения и альтернативы
Сервер хранилища решает задачу совместной разработки, но не является системой контроля версий в современном смысле. В нём нет ветвлений и слияний веток, удобного code review и интеграции с внешними CI-инструментами. Для команд, которым нужны эти возможности, платформа предлагает альтернативу — формат EDT и выгрузку конфигурации в файлы для работы с Git.
Сравнение вариантов
Подходит для 1–2 разработчиков; простое в развёртывании, но медленное и уязвимое к обрывам сети
Оптимально для команды от трёх человек в классическом конфигураторе; требует отдельной службы и обслуживания
Для команд с ветвлением, код-ревью и автоматизацией сборки; требует перехода на EDT и перестройки процессов
Переход на Git — отдельный проект, и менять на него работающее хранилище только ради моды не стоит. Разумная стратегия: довести до стабильного состояния сервер хранилища, а миграцию на EDT планировать осознанно, с обучением команды и пилотным проектом.
Что важно запомнить
Сервер хранилища конфигураций 1С — служба, которая монопольно обслуживает файлы хранилищ и принимает подключения разработчиков по TCP. Он нужен командам от трёх разработчиков: ускоряет операции, устраняет конкурентный файловый доступ и повышает безопасность. Перед переносом делайте копию .1cda, не смешивайте файловый и серверный доступ, заводите персональные учётные записи и регулярно выполняйте резервное копирование.
Частые вопросы
Можно ли использовать один сервер хранилища для нескольких хранилищ?
Да. Один экземпляр службы обслуживает все хранилища, размещённые в подкаталогах её корневого каталога. Каждое хранилище адресуется по имени подкаталога в строке подключения, дополнительные службы не требуются.
Как перенести существующее файловое хранилище на сервер?
Отключите всех разработчиков, сделайте копию файла .1cda, скопируйте файл в подкаталог корневого каталога сервера хранилища и переподключите конфигураторы по tcp-адресу. Сам файл не конвертируется — меняется только способ доступа к нему.
Что делать, если хранилище повреждено?
Остановите службу, восстановите файл из последней резервной копии и проверьте его целостность. Если копии нет, используйте штатные средства тестирования и исправления платформы, но успех не гарантирован — поэтому регулярное копирование .1cda обязательно.
Нужна ли отдельная лицензия на сервер хранилища?
Сервер хранилища входит в состав платформы и, как правило, не требует отдельной лицензии в отличие от сервера 1С:Предприятия, обслуживающего информационные базы. Точные условия лицензирования зависят от вашей поставки — уточняйте их в сопроводительной документации к дистрибутиву.
Почему конфигуратор не подключается к серверу хранилища?
Чаще всего причины такие: закрыт порт 1542 на межсетевом экране, служба не запущена, неверно указано имя хранилища в строке подключения или версии платформы сервера и клиента не совпадают. Проверяйте эти пункты последовательно, начиная с доступности порта командой telnet или Test-NetConnection.
Можно ли ограничить разработчику доступ только к части объектов конфигурации?
Нет, хранилище не поддерживает разграничение прав по отдельным объектам конфигурации. Права настраиваются на уровне операций с хранилищем целиком. Если нужна изоляция доработок, используйте отдельные расширения конфигурации или механизм поставки с частичным доступом.