В процессе разработки, аудита или документирования информационной системы на базе 1С часто возникает задача получить полный перечень объектов метаданных, таких как справочники и документы. Несмотря на кажущуюся простоту, существует несколько подходов к решению этой задачи в зависимости от того, нужен ли вам программный код, результат в консоли запросов или просто текстовый файл с названиями. Разберем подробно все доступные способы.
Самый гибкий и правильный с точки зрения платформы 1С:Предприятие 8 способ — это использование глобального объекта Метаданные. Этот объект предоставляет доступ к древовидной структуре всей конфигурации. Для получения имен объектов нам необходимо организовать цикл по соответствующим коллекциям.
Рассмотрим пример кода, который выводит названия всех справочников и документов в окно сообщений. Проанализируем, как это работает:
// Вывод списка справочников
Для каждого ОбъектИзМетаданных Из Метаданные.Справочники Цикл
Сообщить("Справочник: " + ОбъектИзМетаданных.Имя + " (" + ОбъектИзМетаданных.Синоним + ")");
КонецЦикла;
// Вывод списка документов
Для каждого ОбъектИзМетаданных Из Метаданные.Документы Цикл
Сообщить("Документ: " + ОбъектИзМетаданных.Имя + " (" + ОбъектИзМетаданных.Синоним + ")");
КонецЦикла;
В данном примере мы обращаемся к свойствам Имя (технический идентификатор) и Синоним (человекочитаемое название). Этот код можно разместить во внешней обработке или использовать в консоли кода.
Стоит отметить, что в старых версиях платформы (7.7) работа с метаданными строилась иначе — через обращение по индексу. Если вы столкнулись с поддержкой исторической базы, используйте следующий подход:
Для Индекс = 1 По Метаданные.Справочник() Цикл
Сообщить("Справочник: " + Метаданные.Справочник(Индекс).Идентификатор);
КонецЦикла;
Однако для современных систем на платформе 8.2 и 8.3 этот код не актуален, и следует придерживаться объектной модели коллекции Для каждого... Из....
Многие разработчики предпочитают работать через консоль запросов. Напрямую обратиться к таблицам метаданных через язык запросов 1С невозможно, так как эти данные хранятся не в таблицах базы данных, а в структуре конфигурации. Однако, если ваша конфигурация построена на базе Библиотеки стандартных подсистем (БСП), у вас есть отличная лазейка.
В БСП существует специальный справочник ИдентификаторыОбъектовМетаданных. Платформа синхронизирует структуру конфигурации с записями этого справочника. Выясним, как составить запрос для получения нужных данных:
ВЫБРАТЬ
Идентификаторы.Имя КАК ТехническоеИмя,
Идентификаторы.Синоним КАК Синоним,
Идентификаторы.ПолноеИмя КАК ПолныйПуть
ИЗ
Справочник.ИдентификаторыОбъектовМетаданных КАК Идентификаторы
ГДЕ
Идентификаторы.ПолноеИмя ПОДОБНО "Справочник.%"
ИЛИ Идентификаторы.ПолноеИмя ПОДОБНО "Документ.%"
Этот способ удобен тем, что результат можно сразу выгрузить в таблицу, отсортировать или сохранить в Excel напрямую из консоли запросов без написания кода.
Если вам не требуется программная обработка, а нужен лишь текстовый список "здесь и сейчас", воспользуемся штатными возможностями Конфигуратора. Разберем по шагам два способа:
В пользовательском режиме (1С:Предприятие) существует интерфейсное решение. Если у пользователя достаточно прав, в главном меню доступен пункт "Функции для технического специалиста" (в более ранних версиях платформы он назывался "Все функции").
Проанализируем этот инструмент: он отображает полное дерево объектов метаданных, разделенное по типам. Хотя встроенной кнопки экспорта всего дерева в текстовый файл там нет, этот режим позволяет быстро найти нужный справочник или документ в живой базе, не заходя в Конфигуратор.
Существует еще один "хитрый" способ быстро собрать имена всех объектов без написания обработок — использование Глобального поиска (комбинация клавиш Ctrl+Shift+F). Рассмотрим алгоритм:
Этот метод менее точен, чем программный, но иногда выручает для быстрой визуальной оценки состава конфигурации.
Для системных администраторов и тех, кто использует системы контроля версий, подойдет метод анализа файловой структуры. В меню "Конфигурация" выберем пункт "Выгрузить конфигурацию в файлы...". После завершения процесса платформа создаст папку с множеством XML-файлов. Справочники будут находиться в папке Catalogs, а документы — в Documents. Имена подпапок внутри них будут в точности соответствовать именам объектов в 1С. Получить их список можно любой командой операционной системы (например, dir /b в Windows или ls в Linux).
Таким образом, мы рассмотрели широкий спектр инструментов: от простого визуального просмотра до программных циклов и запросов к базе данных через БСП. Выбор конкретного метода зависит от вашей конечной цели и доступного инструментария.