Администрирование · 11 мин
Как создать хранилище конфигурации 1С на сервере
Как создать хранилище конфигурации 1С на сервере: выбор варианта доступа, настройка через tcp и файловый каталог, подключение разработчиков, права и типичные ошибки.
Хранилище конфигурации — это централизованная база, в которой 1С хранит историю изменений конфигурации и версии её объектов. Без него совместная разработка превращается в ручной обмен cf-файлами: невозможно отследить, кто и когда изменил объект, откатить неудачную правку или параллельно работать нескольким программистам. Хранилище решает эти задачи через механизм захвата объектов: пока разработчик редактирует объект, остальные видят его только для чтения.
Физически хранилище — это каталог на диске, содержащий служебные файлы платформы (в частности, файл 1CV8Clst.lst и внутреннюю структуру версий). Разместить его можно двумя способами: в общей сетевой папке с доступом по протоколу SMB или на отдельном сервере хранилища конфигураций (crserver), который работает по протоколу tcp. Второй вариант предпочтителен при числе разработчиков больше двух-трёх и при работе по медленным каналам связи.
Для создания хранилища потребуется конфигуратор с правами администратора информационной базы, а также доступ к серверу, где будут размещаться файлы хранилища. Ниже разобран полный цикл: от выбора схемы размещения до подключения разработчиков и проверки результата.
Выбор способа размещения хранилища: файл или сервер
Платформа 1С поддерживает два варианта доступа к хранилищу. Первый — файловый: каталог хранилища публикуется как сетевая папка, и разработчики подключаются по пути вида \\server\repository. Второй — серверный: на выделенной машине запускается сервер хранилищ конфигураций, входящий в состав дистрибутива технологической платформы, а подключение выполняется по адресу tcp://server:1542/repository.
Файловый вариант проще в развёртывании, но чувствителен к качеству сети: при работе по Wi-Fi или VPN возможны ошибки доступа и повреждение данных хранилища. Серверный вариант устойчивее, быстрее при большом числе версий и позволяет обслуживать несколько хранилищ одним процессом. Для команды из двух разработчиков в одном офисе допустим файловый доступ; при распределённой команде или трёх и более разработчиках разумно сразу поднимать crserver.
Сравнение вариантов размещения
Подходит для 1–2 разработчиков в локальной сети. Ограничение: чувствительность к обрывам связи, риск блокировок файлов антивирусом, медленная работа по VPN.
Подходит для команд от трёх человек и удалённой работы. Требует установки компонента сервера хранилищ и открытия порта (по умолчанию 1542).
Подготовка сервера и установка сервера хранилищ
Для серверного варианта на машине, где будет размещаться хранилище, нужно установить компонент «Сервер хранилищ конфигураций» из дистрибутива технологической платформы той же версии, что и рабочая платформа разработчиков. При установке в Windows компонент может регистрироваться как служба; в Linux он запускается скриптом или через systemd-юнит, который администратор создаёт самостоятельно.
По умолчанию сервер хранилищ использует порт 1542. Его нужно открыть в брандмауэре сервера и убедиться, что порт не занят другим приложением. Каталог, в котором будут создаваться хранилища, должен быть доступен учётной записи, под которой работает служба crserver, на чтение и запись.
Запуск сервера вручную из командной строки выглядит так:
"C:\Program Files\1cv8\8.3.22.1750\bin\crserver.exe" -port 1542 -d "D:\1C_Repository"Параметр -d задаёт корневой каталог, внутри которого будут создаваться отдельные хранилища. Версию платформы в пути замените на фактически установленную. После запуска проверьте, что порт слушается: командой netstat -an | find "1542" в Windows или ss -tlnp | grep 1542 в Linux.
Создание хранилища из конфигуратора
Создание выполняется из информационной базы, конфигурация которой станет первой версией в хранилище. Обычно это копия рабочей базы или свежая разработческая база. Перед началом убедитесь, что конфигурация базы находится в актуальном, обновлённом состоянии и не открыта другими конфигураторами.
- 1Откройте конфигуратор под пользователем с полными правами и правом администрирования.
- 2Перейдите в меню «Конфигурация — Хранилище конфигурации — Создать хранилище».
- 3Укажите путь к хранилищу: tcp://имя_сервера:1542/имя_хранилища для серверного варианта или путь к сетевому каталогу для файлового.
- 4При первом обращении задайте имя и пароль администратора хранилища (пользователь создаётся внутри хранилища, это не пользователь информационной базы).
- 5Дождитесь окончания помещения конфигурации в хранилище — платформа сформирует первую версию.
- 6Проверьте, что база подключена: в меню «Хранилище конфигурации» стали доступны команды захвата и помещения объектов.
Процесс помещения большой конфигурации может занять заметное время — платформа передаёт все объекты и формирует начальную версию. Прерывать операцию нельзя: недозаписанное хранилище придётся удалять и создавать заново. После завершения база-источник автоматически оказывается подключённой к хранилищу.
Если хранилище создаётся в файловом варианте, каталог должен существовать и быть пустым до начала операции. Для tcp-варианта подкаталог с именем хранилища сервер создаст сам внутри каталога, указанного в параметре -d.
Подключение разработчиков и настройка пользователей хранилища
Каждый разработчик работает со своей локальной информационной базой, подключённой к общему хранилищу. Подключение выполняется через меню «Конфигурация — Хранилище конфигурации — Подключиться к хранилищу»: указывается тот же путь (tcp://сервер:1542/имя или сетевой каталог) и учётные данные пользователя хранилища.
Пользователи хранилища заводятся отдельно от пользователей информационных баз: «Конфигурация — Хранилище конфигурации — Администрирование хранилища — Пользователи». Каждому разработчику создают собственную учётную запись — это важно для истории версий: в журнале будет видно, кто захватывал и помещал каждый объект. Общая учётная запись на всю команду лишает историю смысла.
После подключения разработчик выполняет «Получить из хранилища» (обновление конфигурации базы до состояния хранилища), после чего может захватывать объекты для редактирования. Рекомендуемый цикл работы: получили актуальную версию → захватили нужные объекты → изменили → поместили с комментарием → при необходимости обновили конфигурацию базы данных.
Требуйте от команды осмысленные комментарии при помещении объектов. Через полгода запись «доработка по задаче № 4512, изменён расчёт скидки» сэкономит часы анализа, а пустые комментарии превращают историю версий в бесполезный список дат.
Администрирование: права, версии и обслуживание
В диалоге администрирования хранилища доступны управление пользователями, просмотр захваченных объектов и отмена чужого захвата. Отмена захвата нужна, когда разработчик уехал в отпуск, не поместив объект: администратор снимает захват, но несохранённые изменения при этом теряются, поэтому перед отменой стоит попытаться связаться с автором.
Хранилище накапливает версии бессрочно, и со временем его объём растёт. Платформа позволяет сократить историю, сохранив версии начиная с определённой даты (функция сокращения доступна в администрировании хранилища). Перед сокращением обязательно сделайте резервную копию каталога хранилища — операция необратима.
Резервное копирование хранилища делается на уровне файловой системы: достаточно скопировать каталог хранилища целиком при остановленной работе разработчиков или при остановленной службе crserver. Копирование «на живую» во время активной записи может дать несогласованную копию.
Проверка результата и типичные ошибки
После настройки выполните контрольную проверку: подключите вторую базу, захватите в ней любой объект, поместите небольшое изменение с комментарием и убедитесь, что в первой базе изменение видно после получения из хранилища. Такой сквозной тест подтверждает и доступность сервера, и корректность прав пользователей.
Как проверить результат
Команда подключения из конфигуратора выполняется без ошибок, порт 1542 слушается на сервере
Ошибка соединения: проверьте службу crserver, брандмауэр и правильность порта в пути
Захваченный объект у второго разработчика доступен только для чтения, в истории виден автор захвата
Объект редактируется у всех одновременно — база не подключена к хранилищу
После помещения в истории появляется новая версия с автором и комментарием
Версия не создаётся или автор отображается неверно — проверьте учётные записи хранилища
Наиболее частые проблемы при развёртывании связаны не с самой платформой, а с инфраструктурой: закрытым портом, недостатком прав на каталог, антивирусом, блокирующим файлы хранилища, и несовпадением версий платформы у участников.
Частые вопросы
Можно ли создать хранилище для базы, которая уже находится на поддержке у поставщика?
Да. Хранилище и поддержка — независимые механизмы. Конфигурация на поддержке помещается в хранилище как обычно; правила обновления от поставщика сохраняются, а доработки оформляются захватом объектов в хранилище.
Сколько хранилищ может обслуживать один сервер crserver?
Один экземпляр сервера хранилищ обслуживает все хранилища, созданные внутри его корневого каталога (параметр -d). Каждое хранилище адресуется своим именем в пути tcp://сервер:1542/имя. Жёсткого ограничения на количество нет, оно определяется ресурсами сервера.
Что делать, если разработчик забыл пароль пользователя хранилища?
Администратор хранилища меняет пароль через «Хранилище конфигурации — Администрирование хранилища — Пользователи». Если утерян пароль самого администратора хранилища, восстановить его штатными средствами нельзя — хранилище придётся пересоздавать из актуальной конфигурации базы с потерей истории версий.
Нужно ли отключать хранилище при обновлении конфигурации поставщика?
Нет. Обновление выполняется в базе, подключённой к хранилищу: сначала захватываются изменяемые объекты, затем выполняется обновление от поставщика, после чего результат помещается в хранилище новой версией. Остальные разработчики получают его обычным получением из хранилища.
Можно ли перенести хранилище на другой сервер?
Да. Остановите работу разработчиков и службу crserver, скопируйте каталог хранилища на новый сервер, установите и запустите там сервер хранилищ с тем же корневым каталогом, затем переподключите базы, указав новый путь. Сама история версий при корректном копировании сохраняется полностью.
Чем хранилище конфигурации отличается от выгрузки конфигурации в файлы?
Выгрузка в файлы — это снимок текущего состояния без истории и механизма совместной работы. Хранилище дополнительно ведёт версии, фиксирует авторов изменений и управляет захватом объектов, что и делает его инструментом командной разработки.
Что важно запомнить
Хранилище создаётся из конфигуратора командой «Создать хранилище»; для команды от трёх человек используйте сервер хранилищ crserver с доступом по tcp и портом 1542. Каждому разработчику заводите отдельного пользователя хранилища, регулярно копируйте каталог хранилища и не работайте через файловый доступ по нестабильным каналам связи.