Разработка и Конфигурация · 8 мин
Как добавить новый объект в хранилище конфигурации 1С
Пошаговая инструкция: как добавить новый объект метаданных в хранилище конфигурации 1С, захватить его, включить в поставку и проверить результат без ошибок.
Хранилище конфигурации в 1С используется для совместной разработки: каждый разработчик работает со своей копией конфигурации, а изменения передаются через механизм захвата и помещения объектов. Когда в конфигурацию добавляется новый объект метаданных — справочник, документ, регистр, отчёт — он не попадает в хранилище автоматически. Его нужно явно захватить и поместить, иначе коллеги его не увидят, а при обновлении из хранилища объект может быть потерян в локальной базе.
Типичная ситуация: разработчик создал новый регистр сведений в конфигураторе, сохранил конфигурацию базы данных, но в окне хранилища объекта нет. Это нормально — новый объект существует только локально, пока его не захватили и не поместили в хранилище. Ниже разобран полный порядок действий, проверка результата и типичные ошибки, которые приводят к потере объектов или конфликтам версий.
Инструкция актуальна для конфигуратора 1С:Предприятие 8.3 с хранилищем, подключённым через файловый каталог или сервер хранилища. Предполагается, что у пользователя есть права на захват объектов и в хранилище не включён режим совместимости с ограничениями, запрещающими добавление новых объектов.
Почему новый объект не появляется в хранилище автоматически
Хранилище конфигурации хранит не «живую» конфигурацию, а последовательность версий объектов. Каждый объект метаданных существует в хранилище только после того, как его туда явно поместили. Когда вы создаёте новый справочник или документ в конфигураторе, он добавляется в локальную конфигурацию базы данных и в конфигурацию, загруженную для редактирования, но хранилище о нём ничего не знает.
Из-за этого возникают две типовые проблемы. Первая — разработчик обновляет конфигурацию из хранилища, и новый, ещё не помещённый объект исчезает, потому что при полной загрузке локальная конфигурация приводится к состоянию хранилища. Вторая — коллега получает обновление, а нового объекта в нём нет, хотя автор уверен, что «всё сохранил». Сохранение конфигурации базы данных (F7) и помещение в хранилище — разные операции.
Подготовка: подключение и захват корневого объекта
Перед добавлением объекта убедитесь, что конфигурация подключена к хранилищу: меню «Конфигурация → Хранилище конфигурации → Подключиться». Если конфигурация не подключена, пункты захвата будут недоступны. Также проверьте, что у вашего пользователя хранилища есть право на изменение объектов — это настраивается администратором хранилища.
Ключевой нюанс: добавление нового объекта меняет состав конфигурации, а состав описывается корневым объектом (корнем дерева конфигурации). Поэтому почти всегда требуется захватить саму конфигурацию целиком или корневой объект. Без этого платформа не даст добавить объект в дерево при работе с хранилищем либо не позволит поместить изменения.
Пошаговое добавление нового объекта
Ниже стандартная последовательность для типового случая — например, добавления нового регистра сведений или справочника.
- 1Откройте конфигуратор и подключитесь к хранилищу: Конфигурация → Хранилище конфигурации → Подключиться.
- 2Захватите корневой объект конфигурации: в окне хранилища (Конфигурация → Хранилище конфигурации → Захватить) отметьте корень дерева либо в дереве конфигурации вызовите «Захватить в хранилище» на корневом узле.
- 3Создайте новый объект стандартным способом: правой кнопкой по ветке метаданных → Добавить, заполните имя и свойства.
- 4Сохраните конфигурацию (не обязательно обновлять базу данных на этом этапе).
- 5Откройте окно помещения: Конфигурация → Хранилище конфигурации → Поместить. Новый объект появится в списке изменённых вместе с корневым объектом.
- 6Отметьте новый объект и корневой объект, введите комментарий к версии и нажмите «Поместить».
- 7Обновите конфигурацию базы данных (F7), чтобы объект появился в информационной базе.
Комментарий к версии писать стоит всегда: по нему коллеги и вы сами через месяц поймёте, зачем объект добавлен. Хороший комментарий — «Добавлен регистр сведений КурсыВалютПоставщиков для задачи №…», плохой — «изменения».
Частные сценарии и нюансы
Добавление подчинённых объектов
Если вы добавляете не корневой объект, а, например, новый реквизит, табличную часть или форму существующего документа, захватывать корень конфигурации не нужно — достаточно захватить сам объект-владелец. Новый реквизит станет частью версии документа и попадёт в хранилище вместе с ним при помещении.
Объект добавлен, но в окне помещения его нет
Такое бывает, если объект был создан до захвата корня или конфигурация не была сохранена. Сохраните конфигурацию и повторно откройте окно «Поместить в хранилище». Также проверьте фильтр в окне помещения: иногда список отфильтрован по захваченным объектам, а новый объект отображается отдельной строкой с пометкой о добавлении.
Работа с расширениями
Хранилище конфигурации работает с основной конфигурацией. Если новый объект добавлен в расширение конфигурации, он в хранилище не попадёт — расширения хранятся и версионируются отдельно. Убедитесь, что объект создаётся именно в основной конфигурации, если он должен быть общим для команды.
Проверка результата
После помещения откройте историю хранилища: «Конфигурация → Хранилище конфигурации → История хранилища». В последней версии должен быть ваш комментарий, а в составе версии — новый объект и корневой объект конфигурации. Это главное подтверждение, что объект зафиксирован.
Дополнительно попросите коллегу выполнить «Обновить конфигурацию из хранилища» либо сделайте это сами в копии базы: новый объект должен появиться в дереве конфигурации после обновления. Если объект появился — цепочка «создание → захват → помещение» выполнена корректно.
Как проверить результат
Новая версия с вашим комментарием, в составе — новый объект и корень конфигурации
Версии нет или объекта в составе версии нет
Объект присутствует и открывается
Объект исчез после загрузки из хранилища
Объект не захвачен, версия совпадает с хранилищем
Объект помечен как новый локальный или захваченный
Часто задаваемые вопросы
Можно ли добавить объект в хранилище без захвата корня конфигурации?
Нет. Добавление нового объекта изменяет состав конфигурации, который хранится в корневом объекте. Платформа потребует захват корня, иначе помещение нового объекта будет невозможно. Исключение — подчинённые элементы (реквизиты, формы, макеты), которые помещаются вместе со своим владельцем.
Что делать, если корень конфигурации захвачен другим разработчиком?
Дождитесь, пока коллега поместит изменения и отменит захват, либо попросите его захватить и добавить объект от своего имени. Администратор хранилища может принудительно отменить чужой захват, но это риск потери непомещённых изменений коллеги — используйте только по согласованию.
Объект пропал после обновления из хранилища. Можно ли восстановить?
Если объект не был помещён в хранилище, автоматического восстановления нет. Варианты: восстановить из резервной копии базы (выгрузка dt), из выгруженного файла конфигурации cf, если он делался, или создать объект заново. Поэтому перед любым обновлением из хранилища проверяйте список непомещённых объектов.
Нужно ли обновлять конфигурацию базы данных после помещения в хранилище?
Да, это разные операции. Помещение фиксирует объект в хранилище, а обновление конфигурации базы данных (F7) создаёт соответствующие структуры в информационной базе — таблицы для регистров, справочников и т.д. Без этого объект будет в конфигурации, но не в рабочей базе.
Как добавить в хранилище сразу несколько новых объектов?
Захватите корень конфигурации один раз, создайте все нужные объекты, сохраните конфигурацию и в окне «Поместить в хранилище» отметьте все новые объекты вместе с корнем. Они попадут в одну версию хранилища с общим комментарием — это удобно для истории.
Видит ли хранилище объекты, добавленные через загрузку конфигурации из файла?
Да, если после загрузки cf-файла вы захватите изменённые объекты и корень, а затем поместите их в хранилище. Сама по себе загрузка из файла в хранилище ничего не отправляет — механизм тот же: захват, помещение, комментарий.
Что важно запомнить
Новый объект попадает в хранилище только вручную: захват корня конфигурации, создание объекта, помещение с комментарием. До помещения не обновляйтесь из хранилища — непомещённые объекты будут потеряны. Проверяйте результат через историю хранилища и обновление в копии базы.