Развёртывание хранилища 1С для командной разработки: от сервера до первой версии

· 10 мин

Содержание

Поднять хранилище конфигурации 1С — это две операции: подготовить место, где будут лежать файлы хранилища (папка или сервер хранилища crserver на порту 1542), и в Конфигураторе выполнить Конфигурация → Хранилище конфигурации → Создать хранилище. Всё остальное — пользователи, права, привязка рабочих баз — настраивается после.

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

Подготовка к развёртыванию хранилища: сервер, папка, база

Сначала решите, как разработчики будут подключаться. От этого зависит, что ставить на сервер.

ВариантСтрока подключенияКогда подходитЧто учесть
Файловый\\srv\Repo\BP или D:\Repo\BP1–3 разработчика в одной локальной сетиНужен доступ на запись к папке у всех; медленно по VPN
Сервер хранилища (TCP)tcp://srv/BPКоманда, разные сети, VPNСлужба crserver, порт 1542 открыт на сервере
Через веб-сервер (HTTP)http://srv/repo/repo.1ccrДоступ из интернета, жёсткие правила сетиНужен IIS или Apache и публикация хранилища

💡 Для команды от трёх человек сразу берите сервер хранилища. Файловое хранилище в сетевой папке плохо переносит обрывы связи: оборвался захват на середине — и разбираться с последствиями придётся вручную.

Что подготовить заранее

  • 🖥 Сервер — Windows Server 2016 и новее или Linux. Мощность нужна скромная, важнее быстрый диск.
  • 📦 Дистрибутив платформы той же версии, что у разработчиков. Номер версии сервера хранилища и клиентов держите одинаковым — при расхождении подключение не пройдёт.
  • 👤 Учётная запись службы с правом записи в каталог хранилища. Удобно взять ту же, под которой работает сервер 1С (USR1CV8), либо завести отдельную.
  • 📁 Каталог для данных, например D:\1CRepository. Не кладите его на системный диск: хранилище с длинной историей легко вырастает до десятков гигабайт.
  • 🗄 Исходная информационная база с той конфигурацией, которую будете помещать в хранилище. Обычно это копия рабочей базы, выгруженная в .dt, или чистая база из шаблона.

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

Файловому варианту сервер не нужен — пропустите этот раздел. Для TCP-подключения ставим службу crserver.

Шаг 1. Установите компонент

  1. Запустите setup.exe из дистрибутива платформы.
  2. В списке компонентов включите «Сервер хранилища конфигураций 1С:Предприятия». Остальное на сервере хранилища не обязательно.
  3. Дождитесь окончания установки. Файл crserver.exe появится в папке bin установленной версии, например C:\Program Files\1cv8\8.3.25.1394\bin.

Шаг 2. Зарегистрируйте службу

Откройте командную строку от имени администратора в папке bin и выполните:

crserver.exe -instsrvc -usr .\USR1CV8 -pwd ПарольСлужбы -port 1542 -d D:\1CRepository
crserver.exe -start

Что означают параметры:

  • -instsrvc — зарегистрировать службу Windows;
  • -usr и -pwd — учётная запись, под которой служба работает;
  • -port — порт сервера хранилища, по умолчанию 1542;
  • -d — каталог, внутри которого будут лежать все хранилища этого сервера.

Если в параметрах сомневаетесь, запустите crserver.exe с ключом -help — он выведет список ключей именно вашей версии.

Шаг 3. Откройте порт и проверьте службу

  1. В брандмауэре Windows создайте входящее правило для TCP-порта 1542.
  2. Откройте services.msc и убедитесь, что служба сервера хранилища в состоянии «Выполняется», а тип запуска — «Автоматически».
  3. С машины разработчика проверьте доступность порта: Test-NetConnection srv -Port 1542 в PowerShell.

Служба должна иметь право записи в каталог из -d. Если права нет, служба запустится, а создание хранилища упадёт с ошибкой доступа к файлу — и это самая частая причина «не создаётся».

На одном сервере можно держать несколько хранилищ: каждое — своя подпапка внутри каталога D:\1CRepository. При подключении путь указывают относительно этого каталога: tcp://srv/BP — это D:\1CRepository\BP.

Создание хранилища конфигурации и его параметры

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

Создаём хранилище

  1. Откройте конфигурацию: Конфигурация → Открыть конфигурацию.
  2. Выберите Конфигурация → Хранилище конфигурации → Создать хранилище.
  3. В поле адреса укажите путь в одном из форматов: D:\Repo\BP, \\srv\Repo\BP или tcp://srv/BP. Для нового хранилища на сервере подпапка создастся сама.
  4. Задайте имя и пароль первого пользователя. Это администратор хранилища, у него сразу есть все права.
  5. Подтвердите создание. Конфигуратор поместит конфигурацию в хранилище и привяжет к нему текущую базу.

Если в базе было подключено обслуживание поставщиком (типовая конфигурация на поддержке), Конфигуратор спросит о настройках поддержки. Для разработки на типовой конфигурации поддержку обычно оставляют, а правила редактирования объектов меняют до помещения.

Параметры, которые стоит задать сразу

После создания зайдите в раздел администрирования хранилища (Конфигурация → Хранилище конфигурации → Администрирование). Там собраны:

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

💡 Сразу задайте первой версии метку вроде «Исходная конфигурация 3.0.xxx». Метка ставится в истории хранилища через контекстное меню версии. Потом по ней легко найти точку отсчёта.

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

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

Как добавить разработчика

  1. Под администратором откройте Конфигурация → Хранилище конфигурации → Администрирование → Пользователи.
  2. Нажмите добавление, введите имя и пароль.
  3. Отметьте нужные права и сохраните.

Какие права выдавать

ПравоЧто позволяетКому давать
Без отметок (только чтение)Получать конфигурацию и смотреть историюТестировщикам, аналитикам, сборщику релизов
Захват объектовЗахватывать объекты и помещать измененияВсем разработчикам
Изменение состава версийМенять комментарии и метки версий, удалять историюВедущему разработчику
Административные функцииУправлять пользователями, снимать чужие захватыОдному-двум людям

Удалённого пользователя можно восстановить из того же окна: в списке его видно, а версии, которые он поместил, остаются в истории под его именем.

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

Ветки разработки при работе с хранилищем 1С

Хранилище 1С не умеет ветки в привычном для Git смысле: у него одна линия версий. Поэтому ветки организуют несколькими хранилищами.

Типовая схема

  • 🌿 Основное хранилище — то, что уходит в рабочую базу. В него помещают только проверенные изменения.
  • 🧪 Хранилище разработки — отдельное, для крупной доработки или новой версии типовой. Создаётся из конфигурации основного хранилища на нужную версию.
  • 🔧 Хранилище исправлений — для срочных правок, если основная ветка в этот момент «разобрана».

Как создать ветку

  1. В базе, подключённой к основному хранилищу, откройте Конфигурация → Хранилище конфигурации → История хранилища.
  2. Выберите версию-развилку и сохраните её конфигурацию в файл .cf через контекстное меню.
  3. Создайте новую пустую информационную базу и загрузите туда этот .cf.
  4. В новой базе создайте второе хранилище — по шагам из раздела выше, с другим путём, например tcp://srv/BP_dev.
  5. Заведите пользователей нового хранилища.

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

  1. Сохраните в .cf конфигурацию из хранилища разработки.
  2. В базе основного хранилища захватите объекты, которые менялись в ветке. Список удобно получить сравнением конфигураций.
  3. Выполните Конфигурация → Сравнить, объединить с конфигурацией из файла и отметьте нужные изменения.
  4. Проверьте конфигурацию (Конфигурация → Проверка конфигурации) и поместите объекты в основное хранилище.

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

Захват, помещение и слияние объектов

Ежедневная работа с хранилищем крутится вокруг пяти команд. Все они есть в контекстном меню объекта в дереве конфигурации и в окне Конфигурация → Хранилище конфигурации → Открыть хранилище.

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

Порядок работы над задачей

  1. Получите актуальную версию: Обновить конфигурацию из хранилища.
  2. Захватите объекты, которые будете менять. Удобно захватывать рекурсивно, если правите объект вместе с его формами и макетами.
  3. Внесите изменения и проверьте их в отладке.
  4. Поместите объекты в хранилище с понятным комментарием: номер задачи и суть правки.
  5. При помещении можно оставить объекты захваченными — флаг в диалоге. Полезно, если работа над задачей продолжается.
  6. Обновите конфигурацию базы данных (F7), чтобы изменения попали в структуру базы.

Когда двое правят одно и то же

Захват не даёт двум людям одновременно менять один объект, но общие модули и роли — узкое место. Там конфликты решают так:

  • 🔒 захватили общий модуль — поместите его как можно скорее, не держите захват днями;
  • 🧩 нужен чужой захваченный объект — договоритесь с владельцем, чтобы он поместил его или отменил захват;
  • 🛠 владелец недоступен — администратор хранилища снимает захват в окне хранилища. Несохранённые изменения владельца в хранилище не попадут, их останется перенести вручную из его базы.

Перед помещением сравните объект с версией хранилища через контекстное меню. Это быстро показывает, не затёрли ли вы случайно чужую правку, полученную до захвата.

Диагностика и восстановление хранилища

Когда хранилище «не открывается», начинайте с простого: сеть, служба, права. До файлов хранилища добирайтесь в последнюю очередь.

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

Если повреждены файлы хранилища

Данные хранилища лежат в файле 1cv8ddb.1CD внутри его каталога. Порядок действий:

  1. Предупредите разработчиков и остановите службу сервера хранилища — все открытые подключения к хранилищу оборвутся, несохранённые помещения пропадут. Делайте это, когда никто не помещает изменения.
  2. Скопируйте весь каталог хранилища в другое место — это страховка.
  3. Проверьте копию файла 1cv8ddb.1CD утилитой chdbfl.exe из папки bin платформы: сначала только проверка, затем, если найдены ошибки, — с исправлением.
  4. Верните исправленный файл, запустите службу и откройте историю хранилища.

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

Что делать, если пропал пароль администратора

Пароль администратора хранилища сбросить штатно нельзя. Варианты такие: войти под другим пользователем с административными правами, если он есть; восстановить каталог хранилища из копии, где пароль известен. Поэтому заводите двух администраторов с первого дня.

Частые ошибки при развёртывании хранилища

  • ❌ Хранилище на системном диске без резервного копирования. Через год диск забит историей, а копии нет.
  • ❌ Один логин на всю команду. В истории не понять, кто внёс изменение, а подключение из двух мест сразу блокируется.
  • ❌ Разные версии платформы на сервере хранилища и у разработчиков. Обновляете платформу — обновляйте и crserver, и клиентов в один день.
  • ❌ Работа прямо в рабочей базе, подключённой к хранилищу. Подключайте к хранилищу базы разработчиков, а изменения в рабочую базу переносите файлом .cf после тестирования.
  • ❌ Пустые комментарии при помещении. Через полгода история без комментариев бесполезна.

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

Можно ли перенести хранилище на другой сервер?
Да. Остановите службу, скопируйте каталог хранилища на новый сервер в каталог, заданный ключом -d, и запустите службу там. Разработчикам останется переподключиться по новому адресу.
Нужна ли лицензия 1С для сервера хранилища?
Отдельная лицензия на crserver не требуется. Лицензии нужны разработчикам для запуска Конфигуратора.
Можно ли подключить к хранилищу расширение конфигурации?
Да, у расширения может быть собственное хранилище. Его создают так же, но из меню работы с расширениями, а не основной конфигурации.
Сколько места занимает хранилище?
Первая версия — примерно столько же, сколько файл .cf конфигурации. Дальше рост зависит от частоты помещений: крупная типовая с активной разработкой за год может вырасти в несколько раз.
Чем хранилище отличается от выгрузки в файлы и Git?
Хранилище даёт блокировку объектов и историю прямо в Конфигураторе. Git с выгрузкой в файлы удобен для веток и код-ревью, но требует EDT или отдельных инструментов синхронизации.