Групповая разработка в 1С 8.3: перенос конфигурации базы в хранилище и первые версии

· 10 мин

Содержание

Чтобы поместить конфигурацию в хранилище 1С, откройте базу в Конфигураторе, выберите Конфигурация → Хранилище конфигурации → Создать хранилище..., укажите пустой каталог или адрес сервера хранилища и задайте администратора. Платформа сама сохранит текущую основную конфигурацию как версию 1, а база станет подключённой к хранилищу. Дальше изменения сохраняют в хранилище двумя командами: «Захватить» и «Поместить».

Сложности возникают не в самой команде, а вокруг неё: конфигурация на поддержке, расхождение основной конфигурации и конфигурации базы данных, сетевые права на папку, подключение второй базы. Эти моменты разобраны ниже по порядку, от подготовки до меток версий.

Зачем нужно хранилище конфигурации и как оно устроено

Хранилище — это общая копия конфигурации, из которой несколько разработчиков берут объекты в работу и куда возвращают изменения. Каждое помещение создаёт новую версию с номером, автором, датой и комментарием. Любую версию можно открыть, сравнить с другой или выгрузить в .cf.

Главное правило хранилища — объектные блокировки. Пока объект захвачен одним пользователем, другой не может его изменить. Так два программиста не перетирают модуль друг друга.

Что даёт хранилище даже одному разработчику:

  • 📜 историю изменений по каждому объекту — кто, когда и зачем менял модуль;
  • ↩️ откат к любой версии без поиска старых .cf на диске;
  • 🧪 удобную схему «разработка в копии → проверка → перенос в рабочую базу»;
  • 🔍 сравнение версий: что именно изменилось между релизом 15 и 22.

Хранилище бывает трёх видов по способу доступа:

ВидКак указывается путьКогда подходит
ФайловоеD:\Repo\Buh или \\srv\Repo\Buh1–2 разработчика, одна локальная сеть
Сервер хранилища (crserver)tcp://srv-dev/Buhкоманда, удалённая работа через VPN, стабильность
Через веб-серверhttp://srv-web/repo/repository.1ccrдоступ через интернет без открытия TCP-портов

Сервер хранилища по умолчанию слушает порт 1542. Его ставят из дистрибутива технологической платформы как отдельную службу. Версия сервера хранилища должна совпадать с версией платформы, на которой работают разработчики.

Для одного-двух человек файлового хранилища достаточно. Если папка лежит на сетевом ресурсе, а пользователей больше трёх, переходите на crserver: работа с файлом по сети медленнее и чувствительнее к обрывам связи.

Что проверить до помещения конфигурации в хранилище

Хранилище создаётся из основной конфигурации базы — той, что открыта в дереве Конфигуратора. Поэтому перед созданием наведите порядок в самой базе.

Основная конфигурация совпадает с конфигурацией базы данных

Если в базе есть несохранённые или непринятые изменения, в хранилище уйдёт то, что в дереве конфигурации, а не то, что реально работает у пользователей. Проверьте: Конфигурация → Сравнить конфигурации... → «Основная конфигурация» и «Конфигурация базы данных». Расхождения либо примите через Конфигурация → Обновить конфигурацию базы данных, либо отмените.

Конфигурация на поддержке

Типовая конфигурация (БП 3.0, ЗУП 3.1, УТ 11) почти всегда стоит на поддержке поставщика. Её можно поместить в хранилище, но настройки поддержки уйдут туда вместе с объектами.

  • 🔒 Если включено «Изменения не рекомендуются» или «Изменения не разрешены», захватить объекты для правки не получится, пока не разрешите изменения.
  • ⚙️ Включают возможность изменения в Конфигурация → Поддержка → Настройка поддержки....
  • 🔁 Позже менять правила поддержки и обновлять типовую конфигурацию через хранилище можно, только захватив корень конфигурации.

Решите заранее, кто будет обновлять типовую часть. Обычно это делает один человек, который на время обновления захватывает всю конфигурацию.

Права на каталог и сеть

Для файлового хранилища каждому разработчику нужно право на чтение и запись в каталог. Используйте UNC-путь \\srv\Repo\Buh, а не подключённый сетевой диск Z:: у другого пользователя буква диска может не совпасть.

Для сервера хранилища проверьте, что порт 1542 открыт в брандмауэре сервера, а служба запущена.

Перед созданием хранилища
Выполнено: 0 / 6

Создание хранилища и первое помещение конфигурации

Порядок одинаков для файлового и серверного хранилища, отличается только строка адреса.

  1. Сделайте выгрузку базы: Администрирование → Выгрузить информационную базу... в Конфигураторе. Это страховка на случай, если на следующих шагах что-то пойдёт не так.
  2. Откройте основную конфигурацию: Конфигурация → Открыть конфигурацию.
  3. Выберите Конфигурация → Хранилище конфигурации → Создать хранилище....
  4. В поле адреса укажите путь: \\srv\Repo\Buh для файлового варианта или tcp://srv-dev/Buh для сервера хранилища. Для файлового хранилища каталог должен быть пустым.
  5. Задайте имя и пароль первого пользователя. Он получит административные права: будет добавлять других разработчиков и управлять блокировками. Обычно его называют Администратор, но имя может быть любым.
  6. Подтвердите создание. Платформа запишет текущую конфигурацию в хранилище как первую версию.

После этого в дереве конфигурации у каждого объекта появится значок замка. Серый замок означает, что объект не захвачен. База подключена к хранилищу от имени созданного пользователя.

Пароль администратора хранилища восстановить нельзя. Если он потерян, а других пользователей с административными правами нет, управлять пользователями и снимать чужие блокировки станет невозможно. Заведите сразу второго пользователя с правами администратора.

Если хранилище создаётся для расширения

Расширение конфигурации помещается в собственное хранилище, отдельное от основной конфигурации. Откройте расширение из Конфигурация → Расширения конфигурации, и уже в его окне выполните Конфигурация → Хранилище конфигурации → Создать хранилище.... Для расширения используйте отдельный каталог или отдельное имя на сервере хранилища.

Добавление разработчиков

Пользователей заводят в Конфигурация → Хранилище конфигурации → Администрирование.... Для каждого задайте имя, пароль и права. Дайте право захвата объектов тем, кто пишет код, и оставьте административные права одному-двум людям.

Каждому разработчику нужна своя копия базы. Схема простая:

  1. Выгрузите базу в .dt и загрузите в новую пустую базу на машине разработчика.
  2. В новой базе выполните Конфигурация → Хранилище конфигурации → Подключиться к хранилищу....
  3. Укажите адрес хранилища, имя и пароль этого разработчика.

При подключении платформа заменяет основную конфигурацию базы на конфигурацию из хранилища. Если в подключаемой базе были свои доработки, сначала сохраните их в .cf или файл сравнения, иначе они пропадут из дерева.

Захват и помещение изменений: ежедневный цикл

После создания хранилища конфигурацию больше не сохраняют «просто так». Объект сначала захватывают, правят, а потом помещают обратно.

Захват объектов

  1. Выделите объект в дереве, например общий модуль ОбщегоНазначенияКлиентСервер или документ.
  2. Через контекстное меню выберите Хранилище → Захватить в хранилище....
  3. В окне захвата отметьте нужные объекты. Флажок рекурсивного захвата берёт объект вместе с подчинёнными элементами: формами, макетами, модулями.

Захваченный объект помечается зелёной галочкой. Объект, захваченный другим пользователем, — красным замком. Платформа перед захватом подтягивает из хранилища последнюю версию объекта, поэтому вы правите актуальный код.

Помещение изменений в хранилище

  1. Сохраните конфигурацию: Ctrl+S.
  2. Выберите Конфигурация → Хранилище конфигурации → Поместить изменения конфигурации в хранилище... или команду помещения из контекстного меню объекта.
  3. Отметьте объекты, которые помещаете.
  4. Напишите комментарий: номер задачи и суть правки, например #1482 исправлен расчёт скидки в РТиУ.
  5. Если работа не закончена, включите флажок «Оставить объекты захваченными»: изменения уйдут в хранилище, а блокировка останется за вами.

Получение чужих изменений

Чтобы забрать в свою базу работу коллег, выполните Конфигурация → Хранилище конфигурации → Обновить конфигурацию из хранилища. Затем примените изменения к данным: Конфигурация → Обновить конфигурацию базы данных (F7).

Обновление конфигурации базы данных с изменением структуры (новые реквизиты, регистры, табличные части) требует монопольного доступа. В рабочей базе делайте его в нерабочее время, предупредив пользователей: их сеансы придётся завершить.

То же получение версии можно запускать по расписанию, например на тестовой базе каждую ночь:

"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /S"srv-1c\buh_test" /N"robot" /P"pass" ^
  /ConfigurationRepositoryF"tcp://srv-dev/Buh" /ConfigurationRepositoryN"robot" /ConfigurationRepositoryP"pass" ^
  /ConfigurationRepositoryUpdateCfg /UpdateDBCfg /Out"C:\Logs\repo_update.log"

Путь к 1cv8.exe подставьте свой, по версии установленной платформы. Для такого робота заведите в хранилище отдельного пользователя без права захвата.

Метки и история версий

Номер версии в хранилище растёт с каждым помещением, и через полгода их сотни. Метка помогает быстро найти значимую точку: «передано в рабочую базу», «перед обновлением типовой».

Как поставить метку

  1. Откройте Конфигурация → Хранилище конфигурации → История хранилища....
  2. Выделите нужную версию в списке.
  3. Нажмите кнопку установки метки и введите текст, например Релиз 2026-10 в рабочую базу и пояснение в комментарии.

В истории версии с метками видно сразу, их можно отфильтровать. Удобно ставить метку в момент, когда конфигурацию из хранилища выгружают в .cf для переноса в рабочую базу.

Что ещё делать в окне истории

  • 📂 открыть любую версию и посмотреть её конфигурацию целиком;
  • ⚖️ сравнить две версии между собой или версию с текущей конфигурацией;
  • 💾 сохранить версию в файл .cf — так собирают поставку для рабочей базы;
  • 🧾 посмотреть, какие объекты изменены в версии и какой у неё комментарий.

История по одному объекту доступна из его контекстного меню в дереве: Хранилище → История.... Это самый быстрый способ найти, в какой версии сломали конкретный модуль.

Ошибки при подключении и помещении в хранилище

Диагностика: выберите симптом

Ещё одна частая ситуация — после помещения коллега не видит изменений. Почти всегда он забыл выполнить обновление из хранилища или не применил изменения к базе данных клавишей F7.

Как сделать работу с хранилищем быстрой и надёжной

Резервные копии

Хранилище — такая же ценная база, как учётная. Его копируют отдельно от информационной базы.

  • 🗂️ Файловое хранилище: копируйте весь каталог целиком, когда никто не помещает изменения, например ночью.
  • 🖥️ Сервер хранилища: копируйте каталог с данными хранилища на сервере. Самый надёжный вариант — короткая остановка службы crserver на время копирования. Остановка службы обрывает работу всех разработчиков с хранилищем, поэтому делайте её по расписанию в нерабочее время.
  • 🔁 Раз в месяц проверяйте, что копия разворачивается: подключите тестовую базу к восстановленному каталогу.

Порядок в комментариях и захватах

  • ✍️ Комментарий к каждому помещению с номером задачи. Без него история через год бесполезна.
  • ⏱️ Не держите объекты захваченными неделями. Помещайте законченные куски, даже небольшие.
  • 🎯 Захватывайте только то, что правите. Рекурсивный захват всего документа ради одной формы блокирует коллег.
  • 🧱 Общие модули, которые правят все, лучше дробить на несколько модулей поменьше: меньше конфликтов за блокировку.

Скорость

  • 🚀 Если пользователей больше трёх или работа идёт по VPN, используйте crserver вместо файлового хранилища на общем ресурсе.
  • 💽 Размещайте данные хранилища на SSD сервера.
  • 📦 Типовые обновления конфигурации делайте через хранилище одним человеком, захватившим корень, а не параллельно с текущей разработкой.

Когда хранилище не нужно

Если доработки в базе вносит один внешний программист раз в квартал, хранилище может оказаться лишней сложностью. Достаточно сохранять .cf до и после каждой доработки и хранить их с датой в имени. Хранилище окупается, когда разработчиков двое и больше или когда нужна точная история правок по объектам.

Частые вопросы

Можно ли поместить в хранилище рабочую базу, где сидят бухгалтеры?
Можно, но правильнее подключать к хранилищу копию для разработки. Рабочая база получает изменения через выгрузку версии в .cf и обновление конфигурации в согласованное время.
Как отключить базу от хранилища?
Выберите в Конфигураторе «Конфигурация → Хранилище конфигурации → Отключиться от хранилища». Перед этим поместите или отмените захваты, иначе объекты останутся заблокированными за этим пользователем.
Можно ли перенести файловое хранилище на сервер crserver?
Да. Остановите работу с хранилищем, скопируйте каталог файлового хранилища в каталог данных сервера хранилища и переподключите базы разработчиков по адресу tcp://.
Что будет с хранилищем при обновлении типовой конфигурации?
Обновление выполняют в базе, подключённой к хранилищу, захватив корень конфигурации. После обновления изменения помещают в хранилище одной версией, и остальные разработчики получают их обычным обновлением из хранилища.