Групповая выгрузка объектов конфигурации в хранилище 1С
Содержание
Выделите нужные объекты в дереве конфигурации с зажатым Ctrl или Shift, захватите их через контекстное меню Хранилище конфигурации → Захватить в хранилище, внесите правки и поместите все сразу: Хранилище конфигурации → Поместить в хранилище. В открывшемся окне стоят галочки напротив всех ваших захваченных объектов — снимите лишние, впишите комментарий и подтвердите. Для всей конфигурации удобнее захват корня с подчинёнными объектами или пакетный запуск Конфигуратора с ключом /ConfigurationRepositoryCommit.
Одиночное помещение объекта проблем не вызывает. Трудности начинаются, когда правок набирается десяток и больше: часть объектов захвачена вами, часть — уже кем-то изменена в хранилище, а комментарий нужен один осмысленный. Разберём три рабочих способа — через диалог Конфигуратора, пакетным запуском и выборочно по списку — плюс нумерацию версий, слияние и возврат к прежнему состоянию.
Что считается групповой выгрузкой и когда она нужна
Помещение в хранилище — это фиксация ваших локальных правок как новой версии. Пока объект захвачен (заблокирован за вами), другие разработчики его не меняют. Пока он не помещён — ваших изменений в хранилище нет, у коллег их тоже нет.
Групповая выгрузка нужна в типовых ситуациях:
- 🧩 доработка охватила несколько связанных объектов — документ, его формы, регистры и общие модули;
- 🔁 перенос пачки изменений из тестовой конфигурации в рабочее хранилище;
- 🌳 первичная загрузка большой конфигурации в только что созданное хранилище;
- 🧹 завершение спринта, когда накопленные захваты надо закрыть одним комментарием.
Технически «массовость» здесь — это выделение группы объектов в дереве и одна команда помещения вместо десятка одиночных. Платформа 8.3 помещает выделенное вместе с подчинёнными объектами, если вы это разрешили при захвате.
Подготовка: подключение к хранилищу и захват группы объектов
Сначала подключитесь к хранилищу: меню Конфигурация → Хранилище конфигурации → Подключиться к хранилищу, укажите каталог (или сетевой путь), имя пользователя хранилища и пароль. Это учётные данные самого хранилища, они не совпадают с пользователями информационной базы.
Перед захватом обновите свою конфигурацию из хранилища — Хранилище конфигурации → Обновить конфигурацию из хранилища. Так вы заберёте чужие изменения и не будете редактировать устаревшую версию объекта.
Помещать объекты может не любой участник. Пользователей хранилища и их права заводит администратор хранилища при его создании или позже — через управление пользователями хранилища. Право захвата и помещения может быть ограничено отдельными ветками конфигурации: тогда часть объектов вы просто не сможете захватить, и в групповом захвате они молча выпадут из списка. Если нужного объекта не оказалось среди захваченных — проверьте с администратором свои права на эту ветку.
Дальше — захват. Выделите в дереве нужные объекты:
- Откройте окно
Конфигурация(дерево метаданных). - Отметьте объекты мышью с
Ctrl(вразнобой) илиShift(диапазоном). Можно встать на ветку, напримерДокументы, чтобы захватить все документы разом. - Правой кнопкой —
Хранилище конфигурации → Захватить в хранилище. - В окне захвата включите флажок захвата подчинённых объектов, если нужны формы, макеты и команды выбранных объектов.
Захваченные объекты в дереве помечаются особым значком. После захвата их можно свободно править.
Захватывайте только то, что реально собираетесь менять. Лишний захват блокирует объекты для коллег, пока вы их не поместите или не отпустите командой Отменить захват.
Захват корня конфигурации с подчинёнными объектами блокирует всю конфигурацию целиком. Делайте это только когда работаете в хранилище в одиночку (первичная загрузка, крупный рефакторинг), иначе остановите работу всей команды.
Помещение выделенных объектов одним действием
Когда правки готовы, поместите их. Не обязательно снова выделять те же объекты — платформа помнит, что вы захватили.
- Меню
Конфигурация → Хранилище конфигурации → Поместить в хранилище. - В окне помещения — список (деревом) всех ваших захваченных объектов с флажками. По умолчанию отмечены все.
- Снимите флажки с объектов, которые ещё не дозрели до помещения, — они останутся захваченными за вами.
- Впишите комментарий. Он попадёт в историю версий и будет виден всей команде — пишите по делу: «Добавлен реквизит
Контрагентв документ Заявка», а не «правки». - Если работа над объектами не закончена, включите флажок оставить объекты захваченными — тогда помещение зафиксирует версию, но блокировку не снимет, и вы продолжите править.
Подтвердите — платформа создаст новую версию для каждого отмеченного объекта и снимет захват (если вы не попросили оставить).
Если хотите поместить только часть из захваченного, выделять объекты в дереве заранее тоже можно: тогда в окне помещения отмеченными окажутся именно они. Оба подхода равнозначны — выбирайте, что удобнее на конкретной пачке правок.
Помещение необратимо в том смысле, что удалить версию из хранилища нельзя. Ошиблись — исправляйте следующей версией, а не «откатом» истории.
Пакетный режим: выгрузка через командную строку Конфигуратора
Когда помещение надо встроить в сборку или выполнить без участия человека, запускают Конфигуратор в пакетном режиме — ключевое слово DESIGNER и набор ключей /ConfigurationRepository….
Базовый набор ключей для подключения к хранилищу:
/ConfigurationRepositoryF— путь к каталогу хранилища;/ConfigurationRepositoryN— имя пользователя хранилища;/ConfigurationRepositoryP— пароль пользователя хранилища.
Команды работы с захватом и помещением:
/ConfigurationRepositoryLock— захватить объекты (ключ-all— все,-objects <файл>— по списку);/ConfigurationRepositoryCommit— поместить в хранилище (-all— все захваченные,-comment <текст>— комментарий,-keepLocked— оставить захваченными);/ConfigurationRepositoryUnlock— отменить захват;/ConfigurationRepositoryUpdateCfg— обновить конфигурацию из хранилища .
Типичный сценарий «захватить всё, поместить, снять захват» одной строкой:
"C:\Program Files\1cv8\8.3.24.1234\bin\1cv8.exe" DESIGNER ^
/F"D:\bases\work" /N"Разработчик" /P"" ^
/ConfigurationRepositoryF "\\server\repo\mybase" ^
/ConfigurationRepositoryN "builduser" ^
/ConfigurationRepositoryP "secret" ^
/ConfigurationRepositoryCommit -all -comment "Пакетное помещение доработок" ^
/Out "D:\logs\commit.log" /DisableStartupMessages
Разберём строку: /F — путь к информационной базе, /N и /P — пользователь базы, дальше — реквизиты хранилища, затем сама команда помещения и файл журнала /Out.
Чтобы поместить не всё, а выбранные объекты, замените -all на -objects с путём к текстовому файлу. В файле — полные имена объектов, по одному в строке, например Document.ЗаявкаНаРасход, CommonModule.ОбщегоНазначения. Точный формат файла и полный перечень ключей держит встроенная справка Конфигуратора по пакетному запуску — сверяйтесь с ней для вашей версии платформы.
Пакетный запуск возвращает код завершения. В .bat проверяйте %ERRORLEVEL%: ноль — успех, иначе читайте файл из /Out. Так сборка не продолжится молча после провалившегося помещения.
Для выгрузки истории помещений без открытия Конфигуратора вручную есть ключ /ConfigurationRepositoryReport — он сохраняет отчёт по версиям хранилища в файл. Это удобно, чтобы приложить список изменений к сборке или собрать changelog за период. Полезно помнить и о последовательности: сначала захват (/ConfigurationRepositoryLock), затем помещение (/ConfigurationRepositoryCommit), иначе помещать будет нечего. Если объекты уже захвачены в интерактивном сеансе, повторный захват в пакете не нужен.
Свойства объектов и нумерация версий при помещении
Каждое помещение создаёт версию. Нумерация в хранилище 1С сквозная: номер версии растёт на единицу при любом помещении, независимо от того, один объект вы положили или двадцать. То есть «версия хранилища» — это номер фиксации, а не номер отдельного объекта.
У каждого объекта при этом своя история: он менялся в тех версиях, где его помещали. Поэтому один и тот же объект может числиться, скажем, в версиях 12, 40 и 103 — это три его состояния на трёх фиксациях.
Что хранится в свойствах версии:
| Свойство | Что показывает |
|---|---|
| Номер версии | Сквозной номер фиксации в хранилище |
| Автор | Пользователь хранилища, выполнивший помещение |
| Дата и время | Момент помещения |
| Комментарий | Текст, который вы ввели при помещении |
| Состав | Какие объекты были помещены в этой версии |
Посмотреть свойства можно через Хранилище конфигурации → История хранилища конфигурации — откроется список версий с комментариями. По конкретному объекту история вызывается из его контекстного меню в дереве. Отсюда же видно, захвачен объект сейчас и кем.
Нумерация важна при групповом помещении ещё и потому, что по номеру версии вы адресуете состояние всей конфигурации. Когда нужно воспроизвести у себя конфигурацию ровно такой, какой она была на фиксации 87, в обновлении из хранилища указывают этот номер версии, а не «последнюю». Поэтому один осмысленный комментарий на групповое помещение ценнее десятка мелких: по нему потом ищут нужную точку в истории.
Конфликты и ошибки при групповом помещении
Групповое помещение чаще всего спотыкается не на самом помещении, а на захвате: кто-то успел изменить объект раньше вас.
Обновить конфигурацию из хранилища по этому объекту — платформа предложит сравнение и объединение. Разрешите расхождения и повторите помещение.Отменить захват.Когда расхождения не разруливаются автоматически, открывается окно сравнения и объединения конфигураций. В нём по каждому объекту видно, что отличается, и для каждой строки можно выбрать, чью версию взять — вашу или из хранилища. После объединения правки снова ваши, и объект можно помещать.
Не «продавливайте» помещение силой, не разобравшись в объединении, — так затираются чужие изменения. Если слияние сложное, зовите автора конфликтующих правок.
История версий и возврат к предыдущему состоянию
Полную картину даёт отчёт по истории: Хранилище конфигурации → История хранилища конфигурации. Список версий можно сгруппировать по объекту или по комментарию, отфильтровать по диапазону номеров и по автору — удобно, чтобы найти, в какой версии появилась конкретная доработка.
Удалить версию из хранилища нельзя — история неизменна. «Откат» делается так: вы берёте нужное старое состояние объекта и помещаете его как новую версию поверх текущей.
Порядок возврата к прежнему состоянию объекта:
- Откройте историю хранилища и найдите версию с нужным состоянием объекта.
- Запустите сравнение текущей конфигурации с этой версией хранилища (из окна истории/версий объекта).
- В объединении выберите для нужных объектов вариант из старой версии.
- Захватите эти объекты, выполните объединение в свою конфигурацию.
- Проверьте, что всё собирается, и поместите — получится новая версия, повторяющая старое состояние.
Так история остаётся целой, а конфигурация возвращается к рабочему варианту. Для анализа «что и когда сломалось» этого же механизма достаточно: сравнение двух версий показывает ровно те объекты и строки, что менялись между ними.