Хранилище конфигурации 1С 8.3: создание, права разработчиков, захват и получение версий
Содержание
Чтобы подключиться к хранилищу
конфигурации 1С, откройте базу в конфигураторе и выберите Конфигурация → Хранилище конфигурации → Подключиться к хранилищу. Укажите путь к хранилищу (папку, сетевой путь или адрес tcp://сервер/имя), имя и пароль пользователя хранилища. Конфигурация базы будет заменена конфигурацией из хранилища, после чего её останется применить к базе данных.
Механизм общий для платформы 8.3 и не зависит от прикладного решения: так же работают с Бухгалтерией, ЗУП, УТ и самописными конфигурациями. Ниже разобраны все этапы: создание хранилища, настройка доступа, подключение, захват объектов и получение версий.
1. Где разместить хранилище и как его создать
Хранилище — это отдельная база с историей изменений конфигурации. Разработчики захватывают в нём объекты, правят их у себя и помещают обратно. Перед созданием выберите вариант размещения.
| Вариант | Путь при подключении | Когда подходит | Ограничения |
|---|---|---|---|
| Локальная папка | D:\Repo\Buh | Один разработчик, история версий для себя | Доступно только с этого компьютера |
| Сетевая папка | \\fs01\Repo\Buh | 2–3 разработчика в одной локальной сети | Каждому нужны права на чтение и запись в папку |
| Сервер хранилища | tcp://srv1c/Buh | Команда, удалённые сотрудники, VPN | Нужна служба crserver той же версии платформы |
| Веб-сервер | http://srv/repo/repo.1ccr | Доступ через интернет без открытия портов | Нужна публикация на IIS или Apache |
Файловое хранилище
- Создайте пустую папку. Хранилище нельзя создать в папке, где уже есть файлы.
- Откройте в конфигураторе базу с той конфигурацией, которую будете дорабатывать.
- Выберите
Конфигурация → Хранилище конфигурации → Создать хранилище. - Укажите путь к папке.
- Задайте имя и пароль администратора хранилища. Это отдельная учётная запись, она не связана с пользователями информационной базы.
После создания база сразу оказывается подключённой к новому хранилищу, а в нём лежит первая версия конфигурации.
Не используйте для администратора хранилища общий логин вида «Admin». Заведите личные учётные записи каждому разработчику, а администратора держите отдельно: так в истории видно, кто и что поменял.
Сервер хранилища (crserver)
Серверный вариант надёжнее сетевой папки: клиенты не пишут в файлы напрямую, а обращаются к службе. Сервер хранилища ставится из дистрибутива платформы как отдельный компонент, исполняемый файл crserver.exe лежит в каталоге bin установленной версии.
Установка службы из командной строки, запущенной от имени администратора:
cd "C:\Program Files\1cv8\8.3.24.1548\bin"
crserver.exe -instsrvc -port 1542 -d "D:\Repo" -usr "DOMAIN\svc_1c" -pwd "Пароль"
crserver.exe -start
-port— порт службы, по умолчанию 1542.-d— корневой каталог, внутри которого будут лежать хранилища.-usrи-pwd— учётная запись, от которой работает служба. У неё должны быть права на запись в каталог из-d.
Номер сборки в пути подставьте свой. Дальше в конфигураторе выполните ту же команду «Создать хранилище», но в поле пути укажите tcp://srv1c/Buh (или tcp://srv1c:1542/Buh, если порт нестандартный). Папка Buh создастся внутри каталога из параметра -d.
Версия crserver должна совпадать с версией платформы у разработчиков. При обновлении платформы обновляйте и службу хранилища, иначе подключение не пройдёт.
2. Пользователи хранилища и права доступа
Учётные записи хранилища заводит пользователь с административными правами: Конфигурация → Хранилище конфигурации → Администрирование. В окне администрирования добавьте пользователя, задайте пароль и отметьте права.
| Право | Что даёт | Кому выдавать |
|---|---|---|
| Захват объектов | Брать объекты на редактирование и помещать изменения | Разработчикам |
| Изменение версий | Менять комментарии и ставить метки на версии | Ведущему разработчику |
| Административные функции | Управлять пользователями и настройками хранилища | 1–2 администраторам |
Пользователь без отмеченных прав может подключиться и получать конфигурацию, но ничего не изменит. Так удобно давать доступ тестировщику или серверу сборки.
Кроме прав по объектам есть второй уровень защиты — доступ к самому хранилищу:
- 🗂 для файлового хранилища — NTFS-права на папку и сетевую шару;
- 🖥 для сервера хранилища — доступ к порту 1542 через брандмауэр и VPN;
- 🌐 для веб-публикации — настройки веб-сервера и HTTPS.
Пароль администратора хранилища штатно не восстанавливается. Заведите минимум двух пользователей с административными функциями и храните пароли в менеджере паролей.
3. Подключение базы разработчика к хранилищу
Подключаться лучше из отдельной базы разработчика, а не из рабочей базы бухгалтерии. Обычная схема: копия рабочей базы через выгрузку .dt или пустая база, созданная без конфигурации.
Пошагово
- Сохраните текущую конфигурацию в файл:
Конфигурация → Сохранить конфигурацию в файл. Пригодится, если подключили не то хранилище. - Выберите
Конфигурация → Хранилище конфигурации → Подключиться к хранилищу. - Укажите путь: папку,
\\сервер\папкаилиtcp://сервер/имя. - Введите имя и пароль пользователя хранилища.
- Подтвердите замену конфигурации. Платформа предупредит, что конфигурация базы будет заменена конфигурацией хранилища.
- Выполните
Конфигурация → Обновить конфигурацию базы данных(F7).
Для обновления структуры базы конфигуратору нужен монопольный доступ. Если с копией работают другие люди, предупредите их или выберите время, когда в ней никого нет.
Если в базе была доработанная конфигурация
При подключении собственные изменения базы не переносятся в хранилище, они заменяются. Порядок такой:
- Сохраните свою конфигурацию в
.cf. - Подключитесь к хранилищу.
- Захватите нужные объекты.
- Перенесите изменения через
Конфигурация → Сравнить, объединить с конфигурацией из файла, отметив только свои объекты. - Поместите их в хранилище.
После подключения в дереве метаданных появляются значки: замок у захваченных вами объектов, другой значок у захваченных коллегами. Полный список с владельцами захватов открывается командой Конфигурация → Хранилище конфигурации → Открыть хранилище.
4. Захват объектов, помещение изменений и версии
Редактировать можно только захваченный объект. Остальные открываются на просмотр.
Захват
- Выделите объект в дереве конфигурации.
- В контекстном меню выберите «Захватить в хранилище».
- В окне захвата оставьте флажок «Получать захватываемые объекты» — так вы начнёте правку с актуальной версии, а не со своей устаревшей копии.
- Для захвата вложенных объектов включите рекурсивный режим.
Приёмы, о которых часто узнают на практике:
- 🔑 Чтобы добавить новый объект верхнего уровня (справочник, документ, общий модуль), захватите корень конфигурации — без рекурсии, иначе заблокируете всё дерево для коллег.
- 📁 Чтобы включить объект в подсистему, захватите саму подсистему.
- ⏱ Не держите корень захваченным долго: пока он у вас, никто другой не добавит новые объекты.
Помещение
Когда правка закончена, выберите «Поместить в хранилище». В окне помещения:
- напишите комментарий: номер задачи и суть изменения, например «Задача 154: новая печатная форма акта»;
- проверьте список объектов — туда должны попасть и новые объекты, и захваченный корень;
- флажок «Оставить объекты захваченными» включайте, если продолжаете работу с этими объектами.
Если правку нужно выбросить, используйте «Отменить захват». Платформа предложит вернуть объект к состоянию из хранилища.
История и метки
Окно Конфигурация → Хранилище конфигурации → История хранилища показывает все версии: номер, дату, автора, комментарий, состав объектов. Отсюда можно:
- сравнить две версии или версию с текущей конфигурацией;
- сохранить любую версию в
.cf; - поставить метку на версию — например «Релиз 2.4, передан в рабочую базу».
Комментарий к уже помещённой версии можно исправить в истории, если у пользователя есть право на изменение версий. Сам состав версии задним числом не меняется: ошибочное изменение исправляют новым помещением.
Метки ставьте на каждую версию, которую выкладываете в рабочую базу. Через полгода по меткам за минуту находится состояние на нужную дату.
5. Как получить конфигурацию из хранилища
Получение — обратная операция: изменения коллег приходят в вашу базу.
| Задача | Команда | Результат |
|---|---|---|
| Обновить всю конфигурацию | Конфигурация → Хранилище конфигурации → Обновить конфигурацию из хранилища | Все изменения последней версии |
| Обновить отдельные объекты | «Получить из хранилища» в контекстном меню объекта | Только выбранные объекты |
| Выпустить релиз | «Сохранить конфигурацию хранилища в файл» | Файл .cf для рабочей базы |
| Откатиться к старой версии | История хранилища → сохранить версию в файл | .cf нужной версии |
После получения обязательно выполните «Обновить конфигурацию базы данных». Иначе конфигуратор сообщит, что конфигурация базы данных не соответствует основной конфигурации.
Автоматическое обновление тестовой базы
Тестовую базу удобно обновлять из хранилища без ручного входа, параметрами пакетного режима конфигуратора:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\BuhTest" /N "Админ" /P "Пароль" ^
/ConfigurationRepositoryF "tcp://srv1c/Buh" /ConfigurationRepositoryN "build" /ConfigurationRepositoryP "Пароль" ^
/ConfigurationRepositoryUpdateCfg -force /UpdateDBCfg /DisableStartupDialogs /Out "D:\Logs\update.log"
Параметр /ConfigurationRepositoryUpdateCfg получает последнюю версию, -force подтверждает получение без вопросов о захваченных объектах, /UpdateDBCfg сразу применяет изменения к базе данных. Результат пишется в файл из /Out — его удобно проверять утром.
Для такого скрипта заведите в хранилище пользователя build без прав захвата. Задание ставят в планировщик Windows на ночь. Перед запуском убедитесь, что в тестовой базе нет пользователей: обновление структуры требует монопольного доступа, активные сеансы не дадут его выполнить.
6. Ошибки при работе с хранилищем и что с ними делать
Кроме разовых сбоев, есть ошибки организации работы, которые проявляются позже:
- ❌ Подключили рабочую базу. Бухгалтеры получают недоделанные изменения, а каждое обновление из хранилища требует монопольного доступа. Рабочую базу обновляйте только файлом
.cfиз выпущенной версии. - ❌ Один логин на всю команду. История теряет смысл, захваты путаются.
- ❌ Хранилище без резервной копии. Копируйте каталог хранилища по расписанию. Для сервера хранилища — при остановленной службе или в момент, когда никто не помещает изменения; остановка службы оборвёт работу с хранилищем у всех разработчиков, поэтому делайте её ночью.
- ❌ Разные версии платформы у разработчиков. Кто-то обновился раньше, остальные теряют связь с сервером хранилища. Обновляйте платформу всей командой в один день.