← На главную
При совместной командной разработке в среде 1С:Предприятие 8.3 через механизм Хранилище конфигурации разработчики нередко сталкиваются с ситуацией, когда кнопка «Добавить» для определенной ветки дерева метаданных (например, констант, справочников или документов) оказывается неактивной. При этом в настройках поддержки может быть явно указано, что объект конфигурации редактируется с сохранением поддержки. Разберем детально, почему возникает такое поведение платформы и как правильно добавить новый объект в конфигурацию.
Причина блокировки добавления объектов метаданных
Проанализируем структуру конфигурации в 1С. Любой новый объект (константа, справочник, регистр) добавляется не просто в отдельную ветку, а регистрируется в общем составе дерева метаданных конфигурации. За структуру состава объектов отвечает непосредственно корень конфигурации (самый верхний элемент дерева метаданных с именем конфигурации).
Когда база подключена к хранилищу конфигурации, платформа блокирует любые структурные изменения состава метаданных до тех пор, пока корень конфигурации не будет заблокирован текущим пользователем. Если корень не захвачен в хранилище, контекстное меню не позволит создать новый объект, даже если режим поддержки разрешает изменения.
Пошаговое решение: захват корня конфигурации
Разберем по шагам правильный алгоритм действий для добавления константы в конфигурацию:
- Откроем дерево метаданных в конфигураторе.
- Найдем самый верхний элемент — корень конфигурации (строка с именем конфигурации, например,
УправлениеТорговлей).
- Нажмем правой кнопкой мыши по корню конфигурации и в контекстном меню выберем пункт Хранилище конфигурации -> Захватить в хранилище....
- В открывшемся окне параметров захвата обязательно снимем флаг «Захватывать рекурсивно». Это критически важно: нерекурсивный захват заблокирует только сам корень и позволит другим разработчикам продолжать параллельно захватывать и редактировать подчиненные объекты метаданных.
- Нажмем кнопку Выполнить.
- Перейдем к ветке
Константы, вызовем контекстное меню правой кнопкой мыши и убедимся, что пункт Добавить стал активным.
Правильный порядок помещения изменений в хранилище
После того как константа создана, настроены ее тип данных, права доступа и подсистемы, необходимо корректно зафиксировать доработки в хранилище. Рассмотрим правильный порядок действий:
- Выделим корень конфигурации в дереве метаданных.
- Вызовем контекстное меню и выберем команду Хранилище конфигурации -> Поместить в хранилище....
- В списке измененных объектов убедимся, что отмечены флажками как сам корень конфигурации, так и созданная новая константа. Если поместить только константу без корня, другие разработчики после обновления из хранилища не увидят добавленный объект в дереве метаданных.
- Введем понятный комментарий к коммиту и подтвердим операцию.
Дополнительные факторы, блокирующие добавление
Если корень захватить не удается или кнопка добавления все равно заблокирована, выясним возможные сопутствующие причины:
- Блокировка корня другим разработчиком: корень конфигурации одновременно может быть захвачен только одним пользователем хранилища. Если коллега уже захватил корень для добавления других объектов или изменения общих свойств, потребуется дождаться помещения его изменений либо попросить временно отменить захват.
- Правило поддержки корневого элемента: если конфигурация находится на поддержке поставщика, проверим статус в меню Конфигурация -> Поддержка -> Настройка поддержки. Для самого верхнего элемента конфигурации должно быть установлено правило «Редактируется с сохранением поддержки» (значок с желтым кубом и карандашом, без замка).
- Ограничения прав пользователя в хранилище: администратор хранилища через утилиту администрирования может ограничить учетной записи права на изменение объектов конфигурации.
Альтернативные варианты реализации
Рассмотрим альтернативные способы добавления настроек, если захват корня конфигурации нежелателен или невозможен:
- Использование расширений конфигурации: если режим совместимости конфигурации позволяет создавать собственные объекты данных в расширениях, константу можно добавить в отдельное расширение. Это исключает необходимость изменения правил типовой поддержки и захвата корня основной конфигурации.
- Использование типовых механизмов БСП: во многих типовых конфигурациях вместо создания отдельных метаданных констант можно использовать встроенные регистры сведений общих настроек или механизм дополнительных реквизитов и сведений, что позволяет избежать снятия конфигурации с полной поддержки.