Развёртывание хранилища 1С для командной разработки: от сервера до первой версии
Содержание
Поднять хранилище конфигурации 1С — это две операции: подготовить место, где будут лежать файлы хранилища (папка или сервер хранилища crserver на порту 1542), и в Конфигураторе выполнить Конфигурация → Хранилище конфигурации → Создать хранилище. Всё остальное — пользователи, права, привязка рабочих баз — настраивается после.
Частое заблуждение: «хранилище — это та же база, только общая». Нет. Хранилище — это отдельный набор файлов с историей версий конфигурации. Данных учёта там нет. Каждый разработчик работает в своей информационной базе, а хранилище лишь синхронизирует их конфигурации и не даёт двоим править один объект одновременно.
Подготовка к развёртыванию хранилища: сервер, папка, база
Сначала решите, как разработчики будут подключаться. От этого зависит, что ставить на сервер.
| Вариант | Строка подключения | Когда подходит | Что учесть |
|---|---|---|---|
| Файловый | \\srv\Repo\BP или D:\Repo\BP | 1–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. Установите компонент
- Запустите
setup.exeиз дистрибутива платформы. - В списке компонентов включите «Сервер хранилища конфигураций 1С:Предприятия». Остальное на сервере хранилища не обязательно.
- Дождитесь окончания установки. Файл
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. Откройте порт и проверьте службу
- В брандмауэре Windows создайте входящее правило для TCP-порта 1542.
- Откройте
services.mscи убедитесь, что служба сервера хранилища в состоянии «Выполняется», а тип запуска — «Автоматически». - С машины разработчика проверьте доступность порта:
Test-NetConnection srv -Port 1542в PowerShell.
Служба должна иметь право записи в каталог из -d. Если права нет, служба запустится, а создание хранилища упадёт с ошибкой доступа к файлу — и это самая частая причина «не создаётся».
На одном сервере можно держать несколько хранилищ: каждое — своя подпапка внутри каталога D:\1CRepository. При подключении путь указывают относительно этого каталога: tcp://srv/BP — это D:\1CRepository\BP.
Создание хранилища конфигурации и его параметры
Теперь откройте исходную базу в Конфигураторе. Перед первым помещением конфигурации в хранилище сделайте выгрузку базы в .dt: при создании конфигурация базы становится первой версией хранилища, и откат без копии неудобен.
Создаём хранилище
- Откройте конфигурацию:
Конфигурация → Открыть конфигурацию. - Выберите
Конфигурация → Хранилище конфигурации → Создать хранилище. - В поле адреса укажите путь в одном из форматов:
D:\Repo\BP,\\srv\Repo\BPилиtcp://srv/BP. Для нового хранилища на сервере подпапка создастся сама. - Задайте имя и пароль первого пользователя. Это администратор хранилища, у него сразу есть все права.
- Подтвердите создание. Конфигуратор поместит конфигурацию в хранилище и привяжет к нему текущую базу.
Если в базе было подключено обслуживание поставщиком (типовая конфигурация на поддержке), Конфигуратор спросит о настройках поддержки. Для разработки на типовой конфигурации поддержку обычно оставляют, а правила редактирования объектов меняют до помещения.
Параметры, которые стоит задать сразу
После создания зайдите в раздел администрирования хранилища (Конфигурация → Хранилище конфигурации → Администрирование). Там собраны:
- пользователи и их права — о них ниже;
- установка пароля на текущего пользователя;
- оптимизация данных — уплотняет файлы хранилища после долгой работы;
- параметры хранилища — например, разрешение подключаться клиентам другой версии платформы, если оно доступно в вашей версии.
💡 Сразу задайте первой версии метку вроде «Исходная конфигурация 3.0.xxx». Метка ставится в истории хранилища через контекстное меню версии. Потом по ней легко найти точку отсчёта.
Пользователи хранилища и права доступа
Пользователи хранилища не связаны с пользователями информационной базы. У каждого разработчика свой логин в хранилище — так в истории видно, кто что поместил.
Как добавить разработчика
- Под администратором откройте
Конфигурация → Хранилище конфигурации → Администрирование → Пользователи. - Нажмите добавление, введите имя и пароль.
- Отметьте нужные права и сохраните.
Какие права выдавать
| Право | Что позволяет | Кому давать |
|---|---|---|
| Без отметок (только чтение) | Получать конфигурацию и смотреть историю | Тестировщикам, аналитикам, сборщику релизов |
| Захват объектов | Захватывать объекты и помещать изменения | Всем разработчикам |
| Изменение состава версий | Менять комментарии и метки версий, удалять историю | Ведущему разработчику |
| Административные функции | Управлять пользователями, снимать чужие захваты | Одному-двум людям |
Удалённого пользователя можно восстановить из того же окна: в списке его видно, а версии, которые он поместил, остаются в истории под его именем.
Не работайте под администратором каждый день. Администратор может снять захват любого объекта, и случайный клик по чужому объекту обнулит чьи-то несохранённые изменения в хранилище.
Ветки разработки при работе с хранилищем 1С
Хранилище 1С не умеет ветки в привычном для Git смысле: у него одна линия версий. Поэтому ветки организуют несколькими хранилищами.
Типовая схема
- 🌿 Основное хранилище — то, что уходит в рабочую базу. В него помещают только проверенные изменения.
- 🧪 Хранилище разработки — отдельное, для крупной доработки или новой версии типовой. Создаётся из конфигурации основного хранилища на нужную версию.
- 🔧 Хранилище исправлений — для срочных правок, если основная ветка в этот момент «разобрана».
Как создать ветку
- В базе, подключённой к основному хранилищу, откройте
Конфигурация → Хранилище конфигурации → История хранилища. - Выберите версию-развилку и сохраните её конфигурацию в файл
.cfчерез контекстное меню. - Создайте новую пустую информационную базу и загрузите туда этот
.cf. - В новой базе создайте второе хранилище — по шагам из раздела выше, с другим путём, например
tcp://srv/BP_dev. - Заведите пользователей нового хранилища.
Как слить ветку обратно
- Сохраните в
.cfконфигурацию из хранилища разработки. - В базе основного хранилища захватите объекты, которые менялись в ветке. Список удобно получить сравнением конфигураций.
- Выполните
Конфигурация → Сравнить, объединить с конфигурацией из файлаи отметьте нужные изменения. - Проверьте конфигурацию (
Конфигурация → Проверка конфигурации) и поместите объекты в основное хранилище.
💡 Перед развилкой поставьте метку на версию основного хранилища. При слиянии понадобится общий предок — найти его по метке проще, чем по датам.
Захват, помещение и слияние объектов
Ежедневная работа с хранилищем крутится вокруг пяти команд. Все они есть в контекстном меню объекта в дереве конфигурации и в окне Конфигурация → Хранилище конфигурации → Открыть хранилище.
| Команда | Что делает |
|---|---|
| Захватить в хранилище | Блокирует объект за вами; другие видят замок и не могут его менять |
| Поместить в хранилище | Отправляет изменения новой версией с комментарием |
| Отменить захват | Снимает блокировку, локальные изменения откатываются к версии хранилища |
| Получить из хранилища | Забирает в вашу базу чужие изменения |
| Обновить конфигурацию из хранилища | Получает все изменения сразу |
Порядок работы над задачей
- Получите актуальную версию:
Обновить конфигурацию из хранилища. - Захватите объекты, которые будете менять. Удобно захватывать рекурсивно, если правите объект вместе с его формами и макетами.
- Внесите изменения и проверьте их в отладке.
- Поместите объекты в хранилище с понятным комментарием: номер задачи и суть правки.
- При помещении можно оставить объекты захваченными — флаг в диалоге. Полезно, если работа над задачей продолжается.
- Обновите конфигурацию базы данных (
F7), чтобы изменения попали в структуру базы.
Когда двое правят одно и то же
Захват не даёт двум людям одновременно менять один объект, но общие модули и роли — узкое место. Там конфликты решают так:
- 🔒 захватили общий модуль — поместите его как можно скорее, не держите захват днями;
- 🧩 нужен чужой захваченный объект — договоритесь с владельцем, чтобы он поместил его или отменил захват;
- 🛠 владелец недоступен — администратор хранилища снимает захват в окне хранилища. Несохранённые изменения владельца в хранилище не попадут, их останется перенести вручную из его базы.
Перед помещением сравните объект с версией хранилища через контекстное меню. Это быстро показывает, не затёрли ли вы случайно чужую правку, полученную до захвата.
Диагностика и восстановление хранилища
Когда хранилище «не открывается», начинайте с простого: сеть, служба, права. До файлов хранилища добирайтесь в последнюю очередь.
Если повреждены файлы хранилища
Данные хранилища лежат в файле 1cv8ddb.1CD внутри его каталога. Порядок действий:
- Предупредите разработчиков и остановите службу сервера хранилища — все открытые подключения к хранилищу оборвутся, несохранённые помещения пропадут. Делайте это, когда никто не помещает изменения.
- Скопируйте весь каталог хранилища в другое место — это страховка.
- Проверьте копию файла
1cv8ddb.1CDутилитойchdbfl.exeиз папкиbinплатформы: сначала только проверка, затем, если найдены ошибки, — с исправлением. - Верните исправленный файл, запустите службу и откройте историю хранилища.
Если исправить не удалось, восстановите каталог из резервной копии. Копию хранилища удобно снимать ежедневно при остановленной службе — достаточно скопировать каталог целиком.
Что делать, если пропал пароль администратора
Пароль администратора хранилища сбросить штатно нельзя. Варианты такие: войти под другим пользователем с административными правами, если он есть; восстановить каталог хранилища из копии, где пароль известен. Поэтому заводите двух администраторов с первого дня.
Частые ошибки при развёртывании хранилища
- ❌ Хранилище на системном диске без резервного копирования. Через год диск забит историей, а копии нет.
- ❌ Один логин на всю команду. В истории не понять, кто внёс изменение, а подключение из двух мест сразу блокируется.
- ❌ Разные версии платформы на сервере хранилища и у разработчиков. Обновляете платформу — обновляйте и
crserver, и клиентов в один день. - ❌ Работа прямо в рабочей базе, подключённой к хранилищу. Подключайте к хранилищу базы разработчиков, а изменения в рабочую базу переносите файлом
.cfпосле тестирования. - ❌ Пустые комментарии при помещении. Через полгода история без комментариев бесполезна.