Справочники и Данные · 9 мин
Как в 1С создать папку: группы справочников и каталоги на диске
Пошаговая инструкция: как создать папку (группу) в справочниках 1С, сгруппировать документы и создать каталог на диске через встроенный язык.
Под «создать папку в 1С» обычно понимают три разные задачи: создать группу внутри иерархического справочника (например, «Номенклатура» или «Контрагенты»), сгруппировать элементы в плане счетов или подчинённом справочнике, а также создать каталог на диске из встроенного языка 1С для выгрузки файлов. Каждая задача решается своим способом, и путать их нельзя: группа справочника — это объект базы данных, а папка на диске — объект файловой системы.
В пользовательском режиме создание папки занимает несколько секунд: достаточно прав на изменение справочника и понимания, что группа отличается от элемента. В режиме разработчика потребуется либо включить иерархию у справочника в конфигураторе, либо написать несколько строк кода с использованием объекта «Файл» или «КаталогВременныхФайлов». Ниже разобраны все сценарии с проверками результата и типичными ошибками.
Где в 1С вообще бывают «папки»
В терминологии 1С папка внутри базы называется «группа». Группы существуют только в объектах с включённой иерархией: иерархических справочниках, планах счетов, планах видов характеристик. Если у справочника иерархия отключена в конфигурации, кнопки «Создать группу» в интерфейсе просто не будет — это ограничение прикладного решения, а не ошибка пользователя.
Вторая разновидность — папки файловой системы, с которыми работают обработки выгрузки, обмена и печати. Они создаются либо вручную в проводнике Windows, либо программно из кода 1С. К третьей категории относятся папки в механизмах вроде «Присоединенные файлы» или виртуальные папки в почтовом клиенте 1С — они создаются своими командами внутри соответствующих форм.
Как создать группу в справочнике через интерфейс
Откройте нужный справочник, например «Номенклатура» (раздел «Справочники» или «Товары и услуги» в типовых конфигурациях). В командной панели списка найдите кнопку «Создать группу» — обычно это иконка папки со знаком плюса, либо пункт в меню «Ещё». Горячая клавиша в большинстве конфигураций — Ctrl+F9. Важно: кнопка «Создать» (Ctrl+N) создаёт элемент, а не группу, их легко перепутать.
В открывшейся форме заполните наименование группы — это единственное обязательное поле в типовых решениях. Если группа должна лежать внутри другой группы, сначала встаньте курсором на родительскую группу в дереве или укажите поле «Родитель» в форме. Нажмите «Записать и закрыть» — группа появится в дереве слева или в списке с иконкой папки.
- 1Откройте список справочника и убедитесь, что вид отображения — «Иерархический список» или «Дерево»
- 2Встаньте на группу-родителя, если нужна вложенность
- 3Нажмите «Создать группу» (Ctrl+F9)
- 4Введите наименование и при необходимости заполните дополнительные реквизиты
- 5Нажмите «Записать и закрыть» и проверьте, что группа появилась в дереве
Если группа создана, но в списке не видна, проверьте режим отображения: в режиме «Список» группы не показываются. Переключите вид через меню «Ещё» → «Режим просмотра» → «Иерархический список» или «Дерево». Также убедитесь, что не включён отбор, отсекающий новые записи.
Почему кнопка «Создать группу» может отсутствовать
Самая частая причина — у справочника в конфигурации выключена иерархия. Проверить это может администратор или разработчик: в конфигураторе откройте свойства справочника, вкладка «Иерархия». Если флаг «Иерархический справочник» снят, группы создавать нельзя, и включение флага — изменение конфигурации, которое в типовых решениях требует снятия с поддержки и последующей доработки.
Вторая причина — права доступа. Роль пользователя может разрешать чтение и создание элементов, но запрещать изменение групп, если настроены ограничения на уровне записей (RLS) или профиль группы доступа урезан. Третья причина — справочник иерархический, но с видом иерархии «Список элементов внутри групп» с ограничениями, либо форма списка доработана и кнопка убрана разработчиком.
Как перенести элементы в созданную папку
После создания группы в неё обычно нужно переместить существующие элементы. В режиме дерева или иерархического списка это делается перетаскиванием мышью: выделите один или несколько элементов (через Ctrl или Shift) и перетащите их на группу. Альтернатива — открыть элемент на редактирование и вручную изменить поле «Родитель», но при большом количестве записей это медленно.
Для массового переноса в типовых конфигурациях есть обработка «Групповое изменение реквизитов» (раздел «Администрирование» → «Обслуживание»). В ней выберите справочник, настройте отбор нужных элементов и измените реквизит «Родитель» на созданную группу. Перед массовой операцией убедитесь, что отбор захватывает именно те записи, которые нужно, — ошибка в отборе перенесёт лишние элементы, и откат придётся делать вручную.
Создание группы программно во встроенном языке
В коде конфигурации группа создаётся через менеджер справочника методом СоздатьГруппу(). После заполнения наименования и родителя объект записывается. Пример для справочника «Номенклатура»:
НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
НоваяГруппа.Наименование = "Офисная мебель";
// Родитель при необходимости:
// НоваяГруппа.Родитель = СсылкаНаРодительскуюГруппу;
НоваяГруппа.Записать();
Обратите внимание: метод СоздатьГруппу() доступен только если у справочника включена иерархия с видом «Иерархия групп и элементов» или «Иерархия групп». Для справочника без иерархии вызов приведёт к ошибке выполнения. Проверить иерархичность программно можно через метаданные: Метаданные.Справочники.Номенклатура.Иерархический.
При создании групп в цикле (например, при загрузке классификатора из файла) оборачивайте запись в попытку-исключение и фиксируйте ошибки, иначе одна некорректная строка прервёт всю загрузку. Также учитывайте, что обмен данными может создавать группы автоматически по правилам конвертации — дублирование логики в коде и в правилах обмена приводит к задвоениям.
Как создать папку на диске из 1С
Для файловой системы используется объект «Файл» и метод СоздатьКаталог(). Типовой пример — создание каталога для выгрузки отчёта:
ФайлКаталога = Новый Файл("C:\Обмен\Выгрузка");
Если Не ФайлКаталога.Существует() Тогда
СоздатьКаталог("C:\Обмен\Выгрузка");
КонецЕсли;
Процедура СоздатьКаталог() создаёт всю цепочку вложенных каталогов за один вызов, поэтому предварительно создавать промежуточные уровни не нужно. Если каталог уже существует, ошибки не возникнет, но проверка через Существует() делает код понятнее и позволяет логировать факт создания.
Учитывайте контекст выполнения: код на клиенте создаёт папку на компьютере пользователя, код на сервере — на сервере 1С под учётной записью агента сервера. Частая ошибка — обработка создаёт каталог на сервере, а пользователь ищет его у себя. Для временных файлов безопаснее использовать ПолучитьИмяВременногоФайла() и КаталогВременныхФайлов(), тогда очистка происходит автоматически. Также убедитесь, что у учётной записи, под которой выполняется код, есть права на запись в целевой каталог.
ФайлКаталога = Новый Файл(ПутьККаталогу);
Если Не ФайлКаталога.Существует() Тогда
СоздатьКаталог(ПутьККаталогу);
КонецЕсли;Проверка результата и контрольные точки
После создания группы в интерфейсе убедитесь, что она видна в дереве, открывается и в неё можно перенести тестовый элемент. Если группа создавалась программно, проверьте через консоль запросов или функционал «Все функции», что у новой записи заполнен родитель и она не попала в корень справочника по ошибке.
Для каталога на диске проверка простая: откройте путь в проводнике и убедитесь, что папка существует и в неё можно записать файл. Если код выполняется на сервере, проверяйте именно серверный путь, а не локальный.
Как проверить результат
Группа отображается с иконкой папки, в неё переносятся элементы
Группы нет в дереве — проверьте режим просмотра и права
У перенесённых элементов поле «Родитель» указывает на новую группу
Элементы остались в корне — перенос не выполнен или отбор был пуст
Папка существует по указанному пути, доступна на запись
Папки нет — код выполнился на другом узле (клиент/сервер) или нет прав
Что важно запомнить
Группа в справочнике создаётся кнопкой «Создать группу» (Ctrl+F9) и требует включённой иерархии; каталог на диске создаётся методом СоздатьКаталог() с учётом того, где выполняется код. Перед массовыми изменениями структуры данных делайте резервную копию.
Частые вопросы
Чем группа отличается от элемента справочника?
Элемент хранит учётные данные (реквизиты, цены, остатки), а группа — только наименование и служит контейнером. В документах и отчётах обычно нельзя выбрать группу вместо элемента, если конфигурация это запрещает.
Можно ли удалить группу, в которой есть элементы?
Стандартное удаление группы с элементами либо запрещено, либо требует предварительного переноса содержимого — поведение зависит от конфигурации. Безопасный порядок: сначала перенесите элементы в другую группу, затем пометьте пустую группу на удаление.
Почему СоздатьКаталог() выдаёт ошибку доступа?
У учётной записи, под которой выполняется код, нет прав на запись в целевой путь. Для серверного кода это учётная запись агента сервера 1С — выдайте ей права на каталог или выберите путь внутри разрешённой папки.
Как создать сразу вложенную структуру групп?
В интерфейсе — последовательно: сначала родительская группа, затем внутри неё дочерние. В коде — создавайте группы по уровням, сохраняя ссылку на созданную группу и передавая её как Родитель следующей.
Можно ли включить иерархию у справочника, где уже есть данные?
Технически да: флаг «Иерархический» в конфигураторе не удаляет существующие элементы, они окажутся в корне. Но это изменение конфигурации, поэтому делайте его на копии базы и учитывайте влияние на обмены и отчёты.