Хранилище конфигурации 1С:Предприятия 8.3 для групповой разработки: от сервера до прав
Содержание
Хранилище конфигурации 1С создают в Конфигураторе командой Конфигурация → Хранилище конфигурации → Создать хранилище.... Указываете каталог (локальный, сетевой или адрес сервера хранилища tcp://...), задаёте администратора, и текущая конфигурация базы целиком помещается в хранилище. Дальше через Администрирование хранилища заводите пользователей и выдаёте права.
Выбор схемы простой. Один-два разработчика в одной сети — хватит файлового хранилища в общей папке. Команда, удалённые сотрудники или работа через интернет
— ставьте сервер хранилища crserver и подключайтесь по TCP. Всё ниже относится к платформе 8.3 и не зависит от конфигурации: процедура одинакова для БП, ЗУП, УТ и самописных решений.
1. Файловое или серверное хранилище: выбор схемы и подготовка
Хранилище — это отдельная база с историей версий конфигурации. Разработчики захватывают объекты, правят их у себя и помещают обратно. Двое не могут одновременно править один объект.
| Схема | Когда подходит | Ограничения |
|---|---|---|
| Файловое в локальной папке | Один разработчик хочет историю версий | Доступно только с этого компьютера |
| Файловое в сетевой папке | 2–3 разработчика в одной локальной сети | Медленно на больших конфигурациях, чувствительно к обрывам сети |
Сервер хранилища (crserver, TCP) | Команда, VPN, крупные конфигурации | Нужна служба и открытый порт |
| HTTP через веб-сервер | Доступ из интернета без VPN | Нужна публикация на IIS или Apache поверх crserver |
Что подготовить заранее:
- 🖥️ Сервер или компьютер, который работает постоянно. На ноутбуке разработчика хранилище держать нельзя: ушёл ноутбук — встала вся команда.
- 💾 Отдельный диск или каталог с запасом места. История версий растёт, на крупной типовой конфигурации хранилище легко занимает десятки гигабайт.
- 🔢 Одинаковая версия платформы у всех разработчиков. Для серверной схемы версия
crserverдолжна совпадать с версией клиента, иначе подключение не пройдёт. - 🗂️ Копия рабочей базы (
.dt) — из неё вы и будете создавать хранилище. - 👤 Учётная запись Windows для службы, если ставите сервер хранилища. Ей нужны полные права на каталог хранилища.
Даже если сейчас разработчик один, сразу думайте о сервере. Перенести файловое хранилище под crserver можно, но проще не переезжать.
2. Установка сервера хранилища crserver на Windows и Linux
Для файловой схемы этот раздел пропускайте: достаточно общей папки с правами на чтение и запись для разработчиков.
Windows
Сервер хранилища входит в дистрибутив платформы. В установщике отметьте компонент «Сервер хранилища конфигураций 1С:Предприятия». После установки в каталоге bin платформы появится crserver.exe.
Регистрация службы из командной строки, запущенной от администратора:
cd "C:\Program Files\1cv8\8.3.24.1548\bin"
crserver.exe -instsrvc -port 1542 -d "D:\1CRepo" -usr .\USR1CV8 -pwd ПарольСлужбы
crserver.exe -start
Здесь -port — порт, на котором слушает сервер (по умолчанию 1542), -d — корневой каталог, где будут лежать хранилища, -usr и -pwd — учётная запись службы. Номер платформы в пути подставьте свой.
Удалить службу: crserver.exe -rmsrvc. Остановить: crserver.exe -stop.
Linux
Пакет сервера хранилища ставится из дистрибутива платформы для Linux. Для пробного запуска хватит:
sudo -u usr1cv8 /opt/1cv8/x86_64/8.3.24.1548/crserver -daemon -port 1542 -d /var/1C/repo
Для постоянной работы оформите запуск через systemd от отдельного пользователя. Каталог /var/1C/repo должен принадлежать этому пользователю.
Сеть
- 🔓 Откройте входящий TCP-порт 1542 (или ваш) в брандмауэре сервера.
- 🌐 Проверьте с машины разработчика:
Test-NetConnection имя_сервера -Port 1542в PowerShell. - 🔐 Порт хранилища не выставляйте в интернет напрямую. Для удалённых сотрудников — VPN или HTTP-публикация.
3. Как создать хранилище конфигурации в Конфигураторе
Хранилище создают из базы, где лежит актуальная конфигурация. Порядок:
- Разверните копию рабочей базы из
.dtи откройте её в Конфигураторе. - Откройте конфигурацию:
Конфигурация → Открыть конфигурацию. - Выберите
Конфигурация → Хранилище конфигурации → Создать хранилище.... - Укажите адрес:
- для файлового хранилища — путь к пустому каталогу, например
\\fileserver\1CRepo\buh; - для серверного —
tcp://имя_сервера/buhилиtcp://имя_сервера:1542/buh, если порт нестандартный. Каталогbuhсоздастся внутри корня, заданного ключом-d.
- для файлового хранилища — путь к пустому каталогу, например
- Задайте имя и пароль администратора хранилища. Это отдельная учётная запись хранилища, не пользователь информационной базы.
- Подтвердите создание. Платформа поместит всю конфигурацию в хранилище, а база станет подключённой к нему.
После создания в дереве конфигурации у объектов появятся значки. Замок у объекта означает, что он в хранилище и не захвачен вами.
Создавайте хранилище из копии, а не из рабочей базы. Подключённая к хранилищу база получает конфигурацию из хранилища; в продуктиве это лишний риск.
4. Первые настройки: администратор, кэш и правила работы
Сразу после создания стоит навести порядок, пока хранилище пустое по истории.
Пароль администратора. Смените простой пароль, заданный при создании, на надёжный и храните его вне головы одного человека. Потерянный пароль администратора хранилища без резервной копии не восстановить штатно.
Локальный кэш. У каждого разработчика платформа держит кэш хранилища в профиле пользователя. При странных расхождениях версий его очищают командой Очистить локальный кэш хранилища в меню Конфигурация → Хранилище конфигурации.
Метки версий. Договоритесь отмечать версии перед выпуском в продуктив. Метка ставится в истории хранилища и потом помогает быстро найти, что именно ушло пользователям.
Комментарии к помещению. Требуйте от команды писать номер задачи и суть изменения. Пустые комментарии через год превращают историю в мусор.
Расширения. Если дорабатываете через расширения, для каждого расширения создаётся своё хранилище — из окна Конфигурация → Расширения конфигурации, у выбранного расширения есть свои команды работы с хранилищем.
5. Пользователи и права доступа в хранилище
Пользователей хранилища заводит администратор: Конфигурация → Хранилище конфигурации → Администрирование, вкладка со списком пользователей.
Для каждого разработчика:
- Нажмите «Добавить», введите имя (удобно — фамилия) и пароль.
- Отметьте нужные права.
- Сохраните и передайте разработчику логин и пароль.
Основные права:
| Право | Что даёт | Кому выдавать |
|---|---|---|
| Захват объектов | Брать объекты на редактирование и помещать изменения | Всем разработчикам |
| Изменение состава версий | Работать с версиями: метки, комментарии | Ведущему разработчику |
| Административные функции | Управлять пользователями, снимать чужие захваты, оптимизировать хранилище | Одному-двум людям |
Пользователь без отмеченных прав может подключиться и получать конфигурацию, но ничего не изменит. Это удобно для тестировщиков и для базы, из которой собирают поставку.
Не давайте разработчикам общую учётку. В истории каждый коммит подписан именем пользователя хранилища, а с общей учёткой невозможно понять, кто сломал модуль.
Когда сотрудник уходит, не удаляйте его сразу. Сначала снимите его захваты (администратор видит их в окне захваченных объектов), потом отключите учётную запись.
6. Подключение баз и перенос конфигурации из рабочей базы
Подключение разработчика
У каждого разработчика своя копия базы. Подключение:
- Откройте копию в Конфигураторе.
Конфигурация → Хранилище конфигурации → Подключиться к хранилищу....- Укажите тот же адрес хранилища, свои логин и пароль.
- Если конфигурация базы отличается от хранилища, платформа предложит заменить её конфигурацией из хранилища. Соглашайтесь — иначе работать не получится.
Ежедневный цикл
- 🔒 Захватить в хранилище — объект становится вашим, остальные видят его захваченным.
- ✏️ Правите и отлаживаете у себя.
- 📤 Поместить в хранилище — изменения уходят в новую версию с вашим комментарием.
- 📥 Получить из хранилища — забрать чужие изменения.
- ↩️ Отменить захват — если правки не нужны.
После получения изменений не забудьте Конфигурация → Обновить конфигурацию базы данных (F7). Без этого основная конфигурация обновится, а конфигурация базы данных останется старой.
Выпуск в продуктив
Рабочую базу к хранилищу не подключают. Схема другая:
- В базе разработки получите всё из хранилища.
- Сохраните конфигурацию в файл:
Конфигурация → Сохранить конфигурацию в файл...(.cf). - В рабочей базе сделайте резервную копию и загрузите
.cfчерез обновление или сравнение-объединение. - Обновите конфигурацию базы данных. Это шаг, для которого нужен монопольный доступ, если меняется структура.
Если хранилище создаётся под типовую на поддержке
Конфигурация на поддержке поставщика попадает в хранилище вместе с настройками поддержки. Обновлять типовую потом удобно в отдельной базе: захватить корень, выполнить обновление, проверить и поместить всё одним коммитом.
7. Ошибки при установке и работе хранилища
Ещё две ситуации, которые возникают реже, но ломают работу всей команды:
- 💥 Хранилище повреждено после сбоя диска или обрыва во время помещения. Не пытайтесь чинить файлы вручную. Остановите
crserver, восстановите каталог из последней копии и попросите разработчиков поместить потерянные изменения повторно. - 🧩 Разработчик потерял свою базу с несохранёнными изменениями. Захваты остаются на нём. Администратор снимает их, изменения правятся заново.
8. Обслуживание: резервные копии, история и оптимизация
Хранилище — единственное место, где живёт история доработок. Его теряют чаще, чем кажется.
Резервное копирование. Самый надёжный способ — копировать весь каталог хранилища, когда в него никто не пишет. Для серверной схемы:
crserver.exe -stop
robocopy "D:\1CRepo" "\\backup\1CRepo\current" /MIR
crserver.exe -start
Остановка службы оборвёт подключения разработчиков, поэтому запускайте задание ночью через планировщик. Пример зеркалит каталог в одну папку; чтобы хранить 7–14 ежедневных копий, забирайте эту папку системой резервного копирования с ротацией или добавьте дату в имя каталога.
Копия, снятая на ходу во время помещения, может оказаться нецелостной. Не копируйте каталог работающего хранилища.
Оптимизация данных. В окне администрирования хранилища есть команда оптимизации данных. Она уменьшает размер и ускоряет работу. Выполняйте её раз в квартал или после крупных обновлений типовой, тоже без подключённых пользователей.
История. Конфигурация → Хранилище конфигурации → История хранилища показывает версии, авторов и комментарии. Отсюда можно сравнить две версии, получить конфигурацию на нужную дату или откатить объект.
Проверка работоспособности. Раз в месяц разверните копию хранилища на тестовом сервере и подключитесь к ней. Копия, которую ни разу не поднимали, — не копия.