Справочники и Данные · 12 мин
Как создать подгруппу в группе в 1С
Как создать подгруппу внутри группы в 1С: способы для справочников, номенклатуры и контрагентов, типичные ошибки, ограничения и проверка результата.
Иерархические справочники — основа порядка в базе 1С: номенклатура раскладывается по товарным категориям, контрагенты — по регионам и типам, статьи затрат — по направлениям. Когда уровней вложенности не хватает, возникает задача создать подгруппу внутри уже существующей группы. Операция простая, но у неё есть нюансы: тип иерархии справочника, права пользователя и настройки конфигурации влияют на то, получится ли выполнить действие стандартной кнопкой.
Ниже разобраны способы создания подгруппы в типовых конфигурациях 1С (Бухгалтерия, Управление торговлей, ERP, Зарплата и управление персоналом), отличия для справочников с разным видом иерархии, а также вариант с программным созданием группы через встроенный язык — для случаев, когда подгрупп нужно много.
Как устроена иерархия справочников в 1С
Подгруппа в 1С — это обычная группа справочника, у которой в поле «Родитель» указана другая группа. Количество уровней вложенности платформой не ограничено: внутри группы «Товары» может быть группа «Электроника», внутри неё — «Ноутбуки», а внутри — «Игровые ноутбуки». На практике глубже 3–4 уровней заходить не стоит: такой структурой сложно пользоваться, а отчёты по ней становятся громоздкими.
Ключевой момент — вид иерархии, заданный в конфигурации. Он бывает двух типов: «иерархия групп и элементов» (группы и элементы — разные сущности, элементы лежат внутри групп) и «иерархия элементов» (любой элемент может быть родителем другого элемента, отдельных групп нет). В справочниках второго типа, например «Подразделения» в некоторых конфигурациях, подгруппа создаётся как обычный элемент с указанием родителя.
Создание подгруппы через интерфейс: базовый способ
Способ работает в любой типовой конфигурации на управляемых формах — Бухгалтерии 3.0, УТ 11, ERP, ЗУП. Возьмём для примера справочник «Номенклатура», но последовательность одинакова для контрагентов, складов, статей расходов и других иерархических справочников.
- 1Откройте справочник: например, раздел «Справочники» → «Номенклатура» или «Покупки» → «Номенклатура».
- 2В списке найдите и выделите группу, внутри которой нужна подгруппа. Если группы свёрнуты, разверните дерево значком «+» или включите режим «Дерево».
- 3Нажмите кнопку «Создать группу» на панели инструментов списка. Если её нет — откройте меню «Создать» (стрелка рядом с кнопкой) и выберите «Группа».
- 4В открывшейся форме заполните наименование подгруппы. Поле «Группа» (родитель) уже заполнено выбранной группой — проверьте это.
- 5Нажмите «Записать и закрыть». Подгруппа появится внутри родительской группы в дереве.
Если при создании группы поле родителя осталось пустым, подгруппа окажется на верхнем уровне справочника. Это не ошибка — её можно перенести в нужную группу позже (об этом ниже), но лучше сразу контролировать заполнение поля «Группа» в форме нового объекта.
В некоторых конфигурациях у группы могут быть дополнительные реквизиты: вид номенклатуры, ставка НДС по умолчанию, единица хранения. Заполняйте их осознанно — эти значения наследуются при создании новых элементов внутри группы и влияют на автоматическое заполнение документов.
Альтернативные способы: контекстное меню и клавиши
Если кнопки на панели инструментов не видно из-за настроек формы, используйте контекстное меню. Кликните правой кнопкой мыши по группе-родителю и выберите «Создать группу» или «Создать» → «Группа». В ряде конфигураций пункт называется «Новая группа». Результат идентичен основному способу.
Быстрый вариант для тех, кто работает с клавиатуры: выделите группу и нажмите Insert — в некоторых конфигурациях откроется выбор «Элемент / Группа», в других сразу создаётся элемент, поэтому надёжнее пользоваться явной командой создания группы. Также работает универсальное меню «Ещё» в правой части панели команд списка.
Режимы отображения списка
Список справочника может показываться в трёх режимах: «Иерархический список», «Дерево» и «Список». В режиме «Список» группы не видны, и создать подгруппу внутри конкретной группы не получится — вы просто не сможете её выделить. Переключите режим через меню «Ещё» → «Режим просмотра» → «Дерево» или «Иерархический список», после чего структура станет доступна.
Перенос существующей группы внутрь другой группы
Частая ситуация: группа уже создана на верхнем уровне, а нужно сделать её подгруппой. Для этого не требуется создавать ничего заново — достаточно изменить родителя. Откройте группу на редактирование и в поле «Группа» выберите нового родителя, затем запишите. Либо в списке выделите группу и используйте команду «Переместить в группу» из меню «Ещё» или контекстного меню.
При перемещении учитывайте два ограничения. Во-первых, нельзя переместить группу внутрь самой себя или внутрь собственной подгруппы — платформа заблокирует такое действие, так как оно создаёт циклическую ссылку. Во-вторых, если по группе настроены отборы в отчётах, права доступа к данным или обмены с другими системами, смена родителя может изменить поведение этих механизмов: например, отчёт, построенный по родительской группе «с иерархией», начнёт включать перемещённую подгруппу.
Почему кнопка «Создать группу» недоступна
Если команда создания группы отсутствует или неактивна, причина почти всегда одна из трёх. Первая — вид иерархии справочника: при иерархии элементов отдельных групп нет, и подчинённый объект создаётся как обычный элемент с заполненным полем «Родитель». Вторая — права пользователя: роль может разрешать добавление элементов, но запрещать изменение структуры групп. Третья — сам справочник не иерархический: это задаётся в конфигурации, и изменить настройку без доработки конфигуратора нельзя.
Как выбрать действие
Отдельный случай — списки с установленным отбором. Если в списке действует отбор «внутри группы X», новая группа может создаться, но не отобразиться из-за фильтра. Снимите отбор и проверьте дерево целиком, прежде чем делать вывод, что создание не сработало.
Программное создание подгруппы
Когда подгрупп нужно много — например, развернуть типовую структуру товарных категорий для нового направления, — удобнее создать их обработкой. Ниже пример кода на встроенном языке, который создаёт подгруппу внутри существующей группы справочника «Номенклатура».
&НаСервере
Процедура СоздатьПодгруппу()
Родитель = Справочники.Номенклатура.НайтиПоНаименованию("Электроника", Истина);
Если Родитель.Пустая() Тогда
Возврат; // родительская группа не найдена
КонецЕсли;
НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
НоваяГруппа.Наименование = "Ноутбуки";
НоваяГруппа.Родитель = Родитель;
НоваяГруппа.Записать();
КонецПроцедурыКлючевые моменты кода: для создания группы используется метод СоздатьГруппу(), а не СоздатьЭлемент() — иначе получится элемент, который нельзя будет использовать как папку. Поиск родителя выполняется с флагом точного соответствия наименования, чтобы не подставить похожую группу. Перед массовым запуском такой обработки сделайте резервную копию базы или сначала выполните код в тестовой копии: ошибка в цикле создаст десятки лишних групп, которые придётся удалять вручную.
Проверка результата и типичные ошибки
После создания подгруппы убедитесь, что она находится на правильном месте и ведёт себя как группа: в неё можно добавлять элементы, она отображается в дереве внутри родителя, по ней работают отборы «в группе» в отчётах и подборах. Быстрый тест — создать внутри подгруппы тестовый элемент и построить отчёт (например, обороты по номенклатуре) с группировкой по родительской группе: подгруппа и её содержимое должны попасть в выборку.
Как проверить результат
Подгруппа отображается внутри родительской группы со значком папки
Подгруппа на верхнем уровне — поле «Группа» не было заполнено
В подгруппу добавляются элементы и другие группы
Создан элемент вместо группы — внутрь ничего не добавить
Подгруппа входит в итоги родительской группы
Подгруппа выпадает из итогов — проверьте родителя и отборы отчёта
Ещё одна ошибка — редактирование структуры одновременно несколькими пользователями. Если двое одновременно перемещают группы в одном справочнике, возможны конфликты блокировок и неожиданное итоговое расположение объектов. Массовую реорганизацию структуры лучше выполнять в монопольном режиме или в период минимальной активности пользователей.
Что важно запомнить
Подгруппа создаётся командой «Создать группу» при выделенной родительской группе; главное — проверить заполнение поля «Группа» (родителя). Если кнопки нет, уточните вид иерархии справочника и права. Для массового создания используйте метод СоздатьГруппу() в обработке, предварительно проверив код на копии базы.
Частые вопросы
Можно ли ограничить глубину вложенности групп?
Штатной настройки ограничения уровней в платформе нет — вложенность технически не ограничена. Если нужно запретить слишком глубокую структуру, это делается доработкой: проверкой при записи группы, которая считает количество родителей и отказывает в записи при превышении порога.
Как создать подгруппу у контрагентов, если справочник выглядит плоским списком?
В большинстве конфигураций справочник «Контрагенты» иерархический, но по умолчанию может показываться списком. Включите режим «Иерархический список» или «Дерево» через меню «Ещё» → «Режим просмотра», после чего выделите группу и создайте подгруппу стандартной командой.
Что будет с элементами группы, если удалить саму группу?
При удалении группы элементы внутри неё не удаляются автоматически — платформа либо запретит удаление непустой группы, либо предложит сначала переместить содержимое, в зависимости от настроек. Пометка на удаление группы с вложенными объектами тоже требует предварительной обработки содержимого, поэтому перед удалением перенесите элементы в другую группу.
Можно ли скопировать группу вместе со всеми подгруппами и элементами?
Стандартное копирование (F9 или «Скопировать») создаёт копию только самой группы без вложенного содержимого. Для копирования целой ветки структуры нужна обработка на встроенном языке, которая рекурсивно обходит дерево и создаёт копии с сохранением связей «родитель-подгруппа».
Почему в режиме «Список» не видно созданной подгруппы?
Режим «Список» показывает только элементы без групп — это особенность отображения, а не потеря данных. Переключитесь в режим «Дерево» или «Иерархический список», и подгруппа отобразится. Также проверьте, не действует ли отбор, скрывающий часть структуры.
Влияет ли перемещение группы на уже проведённые документы?
Нет: в документах хранятся ссылки на элементы, а не на группы, поэтому проведённые документы не изменятся. Изменится только аналитика отчётов, построенных с группировкой или отбором по группам с учётом иерархии, — итоги пересчитаются по новой структуре.