Хранилище конфигурации 1С: создание, подключение и права разработчиков
Содержание
Чтобы подключить хранилище 1С, откройте базу в Конфигураторе и выберите Конфигурация → Хранилище конфигурации → Подключиться к хранилищу. Укажите путь к хранилищу (папку, tcp:// или http:// адрес), имя пользователя хранилища и пароль. Если хранилища ещё нет, его сначала создают из этой же базы командой Создать хранилище.
Типичная ситуация: в компании два программиста правят одну БП 3.0, и каждый раз после «сборки» чьи-то доработки пропадают. Хранилище конфигурации 1С решает это блокировкой: объект может менять только тот, кто его захватил, а каждая поставка изменений сохраняется версией с автором и комментарием. Инструкция ниже подходит для платформы 8.3 и любой конфигурации: механизм платформенный, от БП, ЗУП или УТ он не зависит.
Как устроено хранилище и когда оно нужно
Хранилище — это отдельная база, в которой лежит эталонная конфигурация и вся история её изменений. Рабочие базы разработчиков подключаются к нему и получают оттуда объекты.
Как это работает на практике:
- 🔒 Захват. Разработчик захватывает справочник, модуль или форму. Остальные видят объект заблокированным и могут только читать его.
- 📤 Помещение. После правок объект помещают обратно. Хранилище создаёт новую версию с номером, датой, автором и комментарием.
- 📥 Получение. Коллеги обновляют свою конфигурацию из хранилища и получают чужие изменения.
- 🕓 История. Любую версию можно сравнить с текущей, откатить или выгрузить в
.cf.
Хранилище оправдано, когда над конфигурацией работают двое и больше, когда нужна история «кто и зачем поменял», когда доработки идут в тестовой базе, а потом переносятся в рабочую. Для одного разработчика оно тоже полезно: получаете бесплатный журнал версий.
Хранилище хранит только конфигурацию, но не данные. Документы, справочники с элементами и остатки в нём не появляются, а резервную копию базы оно не заменяет.
Способы размещения: папка, сервер хранилища или веб
Перед созданием решите, где хранилище будет жить. Есть три варианта, и путь подключения у них разный.
| Способ | Как выглядит путь | Когда подходит | Ограничения |
|---|---|---|---|
| Сетевая папка | \\SRV\Repo\BP или D:\Repo\BP | 1–3 разработчика в одной локальной сети | Каждому нужны права на чтение и запись в папку; при обрыве сети возможна порча файлов |
Сервер хранилища (crserver) | tcp://SRV:1542/BP | Команда, удалённые разработчики через VPN | Версия crserver должна совпадать с версией платформы у клиентов |
| Веб-публикация | http://SRV/repo/repo.1ccr/BP | Доступ через интернет, через прокси | Нужен веб-сервер (IIS или Apache) и модуль расширения веб-сервера 1С |
Сетевая папка
Создайте пустой каталог, например D:\Repo\BP, и откройте к нему общий доступ. Права на чтение и запись нужны учётной записи Windows каждого разработчика, а не только администратору. Клиент 1С открывает файлы хранилища напрямую, поэтому без права записи захват не сработает.
Каталог для нового хранилища должен быть пустым. В папку, где уже лежат файлы, Конфигуратор хранилище не создаст.
Сервер хранилища crserver
Сервер хранилища ставится вместе с платформой, если при установке отметить компонент «Сервер хранилища конфигураций 1С:Предприятия». Исполняемый файл crserver.exe лежит в каталоге bin нужной версии платформы.
Регистрация службы из командной строки администратора:
cd "C:\Program Files\1cv8\8.3.24.1342\bin"
crserver.exe -instsrvc -port 1542 -d "D:\Repo" -usr .\USR1CV8 -pwd ПарольСлужбы
crserver.exe -start
Параметр -d задаёт корневой каталог. Внутри него каждое хранилище — отдельная подпапка, и в адресе tcp://SRV:1542/BP последняя часть как раз имя этой подпапки. Порт по умолчанию — 1542, его надо открыть в брандмауэре сервера.
Клиент и crserver должны быть одной версии платформы. Если разработчики работают на разных версиях, запустите на сервере несколько служб crserver разных версий на разных портах, например 1542 и 1642.
Публикация на веб-сервере
В Конфигураторе, запущенном от имени администратора Windows, выберите Администрирование → Публикация хранилища конфигураций на веб-сервере. Укажите имя публикации, каталог и путь к хранилищу (папке или tcp://). Адрес подключения потом выглядит так: http://SRV/repo/repo.1ccr/BP, где repo — имя публикации.
Создание хранилища из конфигурации
Хранилище создают один раз, из базы с эталонной конфигурацией. Обычно это копия рабочей базы или тестовая база, где конфигурация совпадает с рабочей.
- Сделайте выгрузку конфигурации:
Конфигурация → Сохранить конфигурацию в файл. Это страховка на случай, если что-то пойдёт не так. - Если конфигурация на поддержке и изменения запрещены, включите возможность изменения:
Конфигурация → Поддержка → Настройка поддержки. Без этого дорабатывать объекты под хранилищем не получится. - Выберите
Конфигурация → Хранилище конфигурации → Создать хранилище. - Укажите адрес: путь к пустой папке,
tcp://SRV:1542/BPилиhttp://.... - Задайте пользователя-администратора хранилища и пароль. По умолчанию предлагается имя «Администратор», его можно заменить.
- Подтвердите создание. Платформа поместит в хранилище всю конфигурацию, а эта база станет первой подключённой.
Для типовой конфигурации первое помещение занимает от пары минут до получаса. Время зависит от объёма и скорости сети, ERP грузится заметно дольше БП.
Учётные записи хранилища не связаны с пользователями информационной базы и с учётками Windows. Это отдельный список, который ведётся внутри самого хранилища.
Пользователи и права в хранилище
Пользователей заводит администратор хранилища. Команда: Конфигурация → Хранилище конфигурации → Администрирование. В открывшемся окне есть список пользователей и вкладки с настройками.
Для каждого пользователя задаются имя, пароль и права:
| Право | Что разрешает | Кому давать |
|---|---|---|
| Чтение | Подключаться и получать объекты, смотреть историю | Всем, включая тестовые и рабочие базы |
| Захват объектов | Захватывать и помещать изменённые объекты | Разработчикам |
| Изменение версий | Менять метки и комментарии сохранённых версий | Ведущему разработчику |
| Административные функции | Управлять пользователями, снимать чужой захват, настраивать хранилище | Одному-двум людям |
Практичные правила:
- 👤 Один человек — одна учётка. Общая учётка «Разработчик» лишает историю смысла: не видно, кто что поменял.
- 🏭 Для рабочей базы заведите отдельного пользователя только с правом чтения. Так из рабочей базы случайно ничего не захватят.
- 🔑 Пароль администратора храните в менеджере паролей. Восстановить его штатно нельзя.
Когда человек уходит из команды, учётку лучше не удалять, а отнять у неё права. История версий с его авторством при этом останется читаемой.
Подключение рабочей базы к хранилищу
Подключают любую базу, где вы хотите вести разработку или получать изменения.
- Откройте базу в Конфигураторе. Если в конфигурации базы есть свои несохранённые правки, выгрузите их в
.cf: при подключении они могут быть потеряны. - Выберите
Конфигурация → Хранилище конфигурации → Подключиться к хранилищу. - Укажите путь к хранилищу, имя пользователя хранилища и пароль.
- Если конфигурация базы отличается от хранилища, платформа предложит заменить её содержимым хранилища. Соглашайтесь, если база подключается впервые и её отличия не нужны.
- После загрузки выполните
Конфигурация → Обновить конфигурацию базы данных(F7), чтобы структура базы совпала с полученной конфигурацией.
После подключения все объекты в дереве конфигурации помечены значком замка: их нельзя менять без захвата. Это нормальное состояние.
Не подключайте рабочую базу с правом захвата. Правка «на живую» в рабочей базе под хранилищем — частая причина того, что изменения попадают пользователям раньше, чем их проверили.
Подключение из командной строки
Для скриптов обновления тестовых баз пригодится пакетный режим Конфигуратора. Пример получает изменения из хранилища и обновляет структуру базы:
"C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe" DESIGNER /F "D:\Bases\BP_Test" /N "Админ" /P "123" ^
/ConfigurationRepositoryF "tcp://SRV:1542/BP" /ConfigurationRepositoryN "Тест" /ConfigurationRepositoryP "456" ^
/ConfigurationRepositoryUpdateCfg /UpdateDBCfg /Out "D:\Logs\update.log"
Такой файл ставят в планировщик Windows на ночь, и к утру тестовая база получает свежую конфигурацию.
Ежедневная работа: захват, помещение, получение
Все команды доступны из контекстного меню объекта в дереве конфигурации и из меню Конфигурация → Хранилище конфигурации.
Захватить и изменить
Щёлкните объект правой кнопкой и выберите Захватить в хранилище. В окне отметьте, нужно ли захватывать подчинённые объекты (формы, макеты, модули). По умолчанию флаг «Получать захватываемые объекты» включён: перед захватом объект обновится до последней версии из хранилища. Не выключайте его, иначе рискуете править устаревшую копию.
Поместить изменения
Когда доработка готова и проверена, выберите Поместить в хранилище. В окне видно, какие объекты уходят, и есть поле комментария. Пишите в комментарии номер задачи и суть: «Задача 412: новый реквизит Проект в документе Поступление». Через полгода это единственный способ понять, зачем менялся объект.
Флаг «Оставить объекты захваченными» пригодится, если вы помещаете промежуточный результат и продолжаете работу.
Отменить захват
Если правки не нужны, команда Отменить захват вернёт объект к версии из хранилища и снимет блокировку. Локальные изменения при этом пропадут.
Получить чужие изменения
Обновить конфигурацию из хранилища подтягивает всё, что коллеги поместили с момента прошлого получения. После этого обновите конфигурацию базы данных. Для одного объекта есть точечная команда Получить из хранилища в контекстном меню.
История и версии
Команда История хранилища показывает все версии с автором, датой и комментарием. Отсюда можно:
- 🔍 сравнить версию с текущей конфигурацией или с другой версией;
- 💾 сохранить версию в файл
.cf, чтобы передать её на рабочую базу; - 🏷 установить метку, например «Релиз для прода 15.10», чтобы потом быстро найти точку поставки.
Новые объекты (справочник, отчёт) сначала добавляют в конфигурацию, а потом помещают. Чтобы добавить объект в ветку, родительская ветка (например, «Справочники») должна быть захвачена или помещение пройдёт с её захватом. Захватывайте корень конфигурации только на время, иначе заблокируете всех.
Ошибки подключения и что с ними делать
Большая часть проблем — это сеть, версии и права. Ниже разбор по симптомам.
\\SRV\Repo\BP), а не через букву сетевого диска: у службы и у разных сеансов диски могут отличаться.Test-NetConnection SRV -Port 1542 в PowerShell.crserver должны быть одной версии. Обновите платформу у разработчика или запустите дополнительную службу crserver нужной версии на отдельном порту.Отдельный случай — копия базы. Если вы скопировали файловую базу целиком вместе с привязкой к хранилищу, копия будет считать себя подключённой под тем же пользователем. Лучше в копии сразу выполнить Отключиться от хранилища и подключить её заново под своей учёткой. Выгрузка в .dt привязку к хранилищу не переносит, такую базу подключают с нуля.
Если хранилище в папке повреждено после обрыва сети, не правьте файлы вручную. Остановите работу всех разработчиков, сделайте копию каталога хранилища и восстановите его из резервной копии. Поэтому каталог хранилища нужно бэкапить так же регулярно, как рабочие базы.