Как вести групповую разработку через хранилище конфигурации 1С 8.3
Содержание
Хранилище конфигурации создают в Конфигураторе командой Конфигурация → Хранилище конфигурации → Создать хранилище…, а разработчики подключаются к нему через Подключиться к хранилищу… в том же меню. Дальше работа идёт по циклу: захватить объект, изменить, поместить в хранилище с комментарием. Каждое помещение становится новой версией, которую можно сравнить, получить или выгрузить в .cf.
Механизм общий для платформы 8.3 и не зависит от конфигурации: одинаково работает для Бухгалтерии, ЗУП, УТ и самописных решений. Хранилище решает две задачи: не даёт двум людям править один объект одновременно и хранит полную историю изменений с авторами и датами.
Создание хранилища конфигурации: папка или сервер
Есть три способа разместить хранилище. Выбор влияет на скорость и надёжность сильнее, чем кажется на старте.
| Вариант | Адрес при подключении | Когда подходит | Риски |
|---|---|---|---|
| Локальная или сетевая папка | D:\Repo\Buh или \\srv\Repo\Buh | 1–2 разработчика в одной сети | Сбой сети при записи может повредить файл хранилища |
Сервер хранилища (crserver) | tcp://srv-repo/Buh | Команда, удалённые разработчики | Нужен отдельный процесс или служба |
| Публикация на веб-сервере | http://srv-web/repo/repo.1ccr | Доступ через интернет, без открытия портов crserver | Нужна настройка IIS или Apache |
Как создать хранилище
- Откройте базу разработки в Конфигураторе. В ней должна быть та конфигурация, с которой начнётся история.
- Выберите
Конфигурация → Хранилище конфигурации → Создать хранилище…. - Укажите адрес: путь к пустой папке или
tcp://адрес сервера. - Задайте имя и пароль администратора хранилища. По умолчанию платформа предлагает пользователя «Администратор».
- Подтвердите создание. Текущая конфигурация базы станет первой версией, а сама база сразу окажется подключённой к хранилищу.
Пользователи хранилища не связаны с пользователями информационной базы. Это отдельный список со своими паролями и правами.
Сервер хранилища crserver
Сервер хранилища ставится вместе с платформой (компонент «Сервер хранилища конфигураций 1С:Предприятия»). Исполняемый файл crserver.exe лежит в папке bin нужной версии платформы. Порт по умолчанию — 1542.
Регистрация службы выглядит так:
"C:\Program Files\1cv8\8.3.24.1548\bin\crserver.exe" -instsrvc -port 1542 -d "D:\Repo"
Параметр -d задаёт корневой каталог. Хранилище, созданное по адресу tcp://srv-repo/Buh, окажется в папке D:\Repo\Buh. Остальные ключи (учётная запись службы, диапазон портов) смотрите в справке, которую выводит crserver.exe -help.
Версия сервера хранилища должна совпадать с версией платформы у разработчиков. При обновлении платформы обновляют и службу crserver, иначе подключение не пройдёт.
Подключение разработчиков и права в хранилище
Администратор хранилища заводит каждому разработчику своего пользователя. Общая учётка «Разработчик» на троих лишает историю смысла: не видно, кто и что поменял.
Как завести пользователя
- Подключитесь к хранилищу под администратором.
- Откройте
Конфигурация → Хранилище конфигурации → Администрирование…. - На закладке пользователей добавьте нового, задайте имя и пароль.
- Отметьте права.
Права хранилища:
- 🔒 Захват объектов — можно захватывать и помещать изменения. Это основное право разработчика.
- 📝 Изменение состава версий — можно править комментарии к версиям, ставить метки.
- 🛠 Административные функции — управление пользователями, отмена чужих захватов, настройки хранилища.
Без права захвата пользователь может только читать: получать конфигурацию и смотреть историю. Так удобно подключать тестировщика или консультанта.
Подключение базы разработчика
- Создайте у разработчика пустую базу или выгрузите копию рабочей.
- В Конфигураторе выберите
Конфигурация → Хранилище конфигурации → Подключиться к хранилищу…. - Укажите адрес, имя и пароль пользователя хранилища.
- Платформа предупредит, что конфигурация базы будет заменена конфигурацией из хранилища. Согласитесь.
- После загрузки выполните
Конфигурация → Обновить конфигурацию базы данных(F7).
Если в базе были свои несохранённые доработки, при подключении они пропадут. Перед подключением выгрузите конфигурацию в файл: Конфигурация → Сохранить конфигурацию в файл….
Захват, изменение и помещение объектов в хранилище
После подключения дерево конфигурации остаётся доступным только для просмотра. Править можно лишь захваченные объекты.
Значки в дереве метаданных:
- ✅ зелёная галочка — объект захвачен вами;
- 🔴 красный замок — объект захвачен другим пользователем;
- без значка — объект свободен.
Рабочий цикл
- Перед захватом обновите свою копию:
Конфигурация → Хранилище конфигурации → Обновить конфигурацию из хранилища. Так вы начнёте с последней версии. - Щёлкните объект правой кнопкой и выберите
Захватить в хранилище. Флажок «Рекурсивно» захватит и подчинённые объекты: реквизиты, формы, макеты. - Внесите изменения и проверьте их в режиме отладки.
- Выберите
Поместить в хранилище. В окне помещения напишите комментарий и при необходимости отметьте «Оставить объекты захваченными», если работа не закончена. - Остальные разработчики получают изменения через обновление из хранилища.
Хороший комментарий отвечает на вопрос «зачем». Например: Задача 412: добавлен реквизит «Склад отгрузки» в заказ, печатная форма доработана. Через полгода по такой строке найдут нужную версию за минуту.
Что захватывать вместе
Изменения часто затрагивают несколько объектов. Если вы добавили реквизит в справочник и используете его в общем модуле, захватите и поместите оба объекта одним помещением. Иначе у коллеги после обновления конфигурация не скомпилируется.
Добавление нового объекта требует захвата родителя: например, чтобы создать новый документ, нужно захватить ветку «Документы» или корень конфигурации. Захват корня без рекурсии блокирует только сам состав, а не все объекты.
Отмена захвата
Если правки не нужны, выберите Отменить захват. Платформа вернёт объект к версии из хранилища, ваши изменения пропадут. Администратор хранилища может снять захват и с объекта коллеги, например если тот в отпуске, а объект нужен срочно. Изменения, которые коллега не поместил, при этом останутся только в его базе.
История хранилища, метки и откат изменений
Историю открывают командой Конфигурация → Хранилище конфигурации → История хранилища…. В окне фильтра можно отобрать версии по пользователю, дате, комментарию или конкретному объекту.
Что умеет окно истории:
- 🔍 сравнить выбранную версию с текущей конфигурацией или с другой версией;
- 📄 открыть конфигурацию нужной версии для просмотра;
- 💾 сохранить версию в файл
.cf; - 🏷 установить метку — например, «Выпуск 2.4 в рабочую базу».
Метки удобны, когда от разработки до выпуска проходит десяток помещений. Перед обновлением рабочей базы ставят метку на версию, которую отдали. Если что-то сломалось, легко понять, с какой версии выпуск был последним рабочим.
Как откатить неудачное изменение
Кнопки «удалить версию» в обычной работе нет: история линейна, откат делают новым помещением.
- Найдите в истории версию до неудачного изменения.
- Сравните её с текущей и убедитесь, какие объекты затронуты.
- Захватите эти объекты.
- Получите их из старой версии: в окне хранилища у объекта есть команда получения с выбором версии.
- Проверьте работу и поместите объекты с комментарием «Откат изменений версии 315».
Если откатить нужно всю конфигурацию, сохраните старую версию в .cf, захватите корень рекурсивно и загрузите изменения через Конфигурация → Сравнить, объединить с конфигурацией из файла…. Затем поместите результат одной версией.
Конфликты версий и рассинхронизация с хранилищем
Двое не могут одновременно захватить один объект, поэтому классических конфликтов слияния, как в Git, здесь почти нет. Проблемы возникают иначе.
Если база «отвязалась» от хранилища
Бывает, что база потеряла связь: пароль сменили, хранилище перенесли, базу восстановили из старой копии. Порядок такой:
- Выгрузите текущую конфигурацию в файл — там могут быть непомещённые правки.
- Выполните
Отключиться от хранилища, затем подключитесь заново. - Сравните выгруженный файл с полученной конфигурацией и перенесите свои изменения, предварительно захватив объекты.
Обновление типовой конфигурации, подключённой к хранилищу
Типовую конфигурацию с доработками обновляют централизованно, в одной базе, а не у каждого разработчика.
- Предупредите команду и попросите поместить все изменения.
- Захватите корень конфигурации рекурсивно — так вы заблокируете все объекты.
- Убедитесь, что в настройках поддержки включена возможность изменения конфигурации.
- Выполните обновление через
Конфигурация → Поддержка → Обновить конфигурацию…и разберите отличия. - Проверьте результат, поместите в хранилище одной версией и поставьте метку с номером релиза.
Помещение после обновления типовой занимает заметное время: меняются сотни объектов. Делайте это вне рабочего дня разработчиков.
Доработки, вынесенные в расширения, обновлению почти не мешают. Расширение тоже можно подключить к своему хранилищу, отдельно от основной конфигурации.
Обслуживание хранилища: резервные копии, очистка и перенос
Хранилище — это обычная папка с файлами, главный из которых 1cv8ddb.1CD. Её и нужно беречь.
Резервное копирование
- 💾 Копируйте всю папку хранилища целиком, а не отдельные файлы.
- ⏰ Делайте копию, когда никто не помещает изменения: ночью или по договорённости.
- 🗄 Для сервера хранилища надёжнее остановить службу
crserverна время копирования.
Остановка службы crserver разорвёт соединение у всех подключённых разработчиков. Незавершённое помещение прервётся. Предупредите команду заранее и выбирайте время без активной работы.
Дополнительная страховка — регулярно сохранять последнюю версию в .cf из окна истории. Такой файл открывается без хранилища и пригодится, если файл базы хранилища повредится.
Очистка и сокращение размера
За годы работы хранилище разрастается до гигабайт. Варианты:
- 🧹 Очистка локального кэша. При подключении платформа кэширует данные хранилища в профиле пользователя. Если окно истории или получение версий работают со странностями, закройте все сеансы 1С на этом компьютере и удалите папки кэша в
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8. Список баз при этом не пострадает: он хранится в файлеibases.v8iв%APPDATA%\1C\1CEStart. - 🗜 Оптимизация хранения. В окне администрирования хранилища в актуальных версиях платформы есть команда оптимизации хранения данных. Она уменьшает размер без потери истории. Запускайте её при остановленной работе команды.
- 📦 Новое хранилище с нуля. Если история старше нескольких лет уже не нужна, сохраните последнюю версию в
.cfи в архив — всю папку старого хранилища. Создайте новое хранилище из базы с этой конфигурацией и переподключите разработчиков.
Перенос на другой сервер
- Попросите всех поместить изменения.
- Остановите службу
crserverили запретите доступ к папке. - Скопируйте папку хранилища на новый сервер в корневой каталог службы.
- Запустите службу той же версии платформы.
- Разработчики отключаются от старого адреса и подключаются к новому.
Шаг 5 заменит конфигурацию в базе разработчика, поэтому непомещённых правок к этому моменту быть не должно.
Частые вопросы о хранилище конфигурации
Можно ли работать с хранилищем без сервера crserver?
Нужна ли лицензия на сервер хранилища?
crserver нет: он поставляется в составе платформы. Лицензии нужны для запуска Конфигуратора у разработчиков.Как посмотреть, кто изменил конкретный объект?
Можно ли подключить рабочую базу пользователей к хранилищу?
.cf, сохранённого из нужной версии, или из файла поставки. Так разработка не задевает пользователей.