Получение каталога объектов в 1С:Предприятие — одна из самых востребованных задач как для разработчиков, так и для администраторов систем. Без этого инструмента невозможно эффективное управление конфигурацией, отладка кода или интеграция с внешними сервисами. Однако способы извлечения каталога сильно зависят от версии платформы, типа конфигурации (управляемая/обычная форма) и даже от прав доступа пользователя.

В этой статье мы разберём все актуальные методы — от встроенных механизмов до программных решений с использованием COM-соединения и OData. Особое внимание уделим типичным ошибкам (например, отсутствие прав на чтение метаданных в облачных версиях 1С) и альтернативным подходам для ограниченных сред. Если вам нужно не просто список объектов, а их структуру с реквизитами, табличными частями и правами — здесь вы найдёте решения для любых сценариев.

1. Стандартные способы получения каталога через интерфейс 1С

Начнём с самых простых методов, которые не требуют программирования. Они подойдут администраторам и пользователям с правами на просмотр метаданных.

В управляемых формах (начиная с версии 8.2) каталог объектов можно получить через меню Файл → Открыть → Конфигурацию. Здесь отобразится дерево метаданных со всеми справочниками, документами, регистрами и другими объектами. Для детального просмотра структуры (реквизитов, табличных частей) достаточно дважды кликнуть на нужный элемент.

  • 📁 Плюсы: не требует прав разработчика, работает в большинстве конфигураций.
  • ⚠️ Минусы: нельзя экспортировать каталог в файл (только просмотр), в облачных версиях может быть ограничен.
  • 🔧 Нюанс: в 1С:ERP и 1С:КА 2.5 часть объектов скрыта по умолчанию — нужно включить отображение служебных элементов в настройках.

В обычных формах (версии до 8.1) путь другой: Сервис → Конфигуратор → Открыть конфигурацию. Здесь также доступно дерево объектов, но интерфейс менее удобен для анализа сложных конфигураций.

💡

Если в дереве метаданных не отображаются некоторые объекты (например, регистры сведений), проверьте фильтр по подсистемам в верхней панели конфигуратора. Сбросьте его, нажав "Все подсистемы".

2. Экспорт каталога в файл через конфигуратор

Если вам нужно не только посмотреть, но и сохранить каталог объектов для дальнейшей работы, используйте встроенный экспорт метаданных. Этот метод работает во всех версиях 1С:Предприятие, но требует прав на изменение конфигурации.

Пошаговая инструкция:

  1. Откройте конфигуратор (1CV8.EXE /CONFIG).
  2. Перейдите в Файл → Сохранить конфигурацию в файл.
  3. Выберите формат:
    • 📄 .cf — бинарный формат (полная копия конфигурации).
    • 📄 .xml — текстовый формат (удобен для анализа структуры).
  4. Укажите путь для сохранения и подтвердите экспорт.
  5. В полученном файле .xml будет полная структура метаданных, включая:

    • 📋 Наименования и синонимы объектов.
    • 🔧 Реквизиты, табличные части, измерения (для регистров).
    • 🔒 Права доступа (если экспортировано с настройками безопасности).

    Убедиться в наличии прав на изменение конфигурации|

    Закрыть все сеансы пользователей в базе|

    Выбрать формат .xml для удобства анализа|

    Проверить свободное место на диске (файл может весить 100+ МБ)-->

    ⚠️ Внимание: В облачных версиях 1С:Fresh и некоторых корпоративных решениях экспорт конфигурации может быть заблокирован политиками безопасности. В этом случае используйте альтернативные методы (см. раздел 4).

    3. Программное получение каталога через встроенный язык

    Для автоматизации или интеграции с другими системами часто требуется получить каталог объектов программно. В это делается с помощью встроенного языка и объекта Метаданные.

    Пример кода для вывода списка всех справочников с реквизитами:

    Процедура ВывестиКаталогСправочников()
    

    Метаданные = Метаданные();

    Для Каждого Справочник Из Метаданные.Справочники Цикл

    Сообщить(Справочник.Имя + " (" + Справочник.Синоним + ")");

    // Выводим реквизиты

    Для Каждого Реквизит Из Справочник.Реквизиты Цикл

    Сообщить(" - " + Реквизит.Имя + " [" + ТипЗнч(Реквизит.Тип) + "]");

    КонецЦикла;

    КонецЦикла;

    КонецПроцедуры

    Этот код можно выполнить в режиме 1С:Предприятие через Отладка → Выполнить код или в конфигураторе. Для вывода в файл замените Сообщить() на запись в текстовый документ.

    Тип объекта Коллекция в метаданных Пример доступа
    Справочники Метаданные.Справочники Метаданные().Справочники.Номенклатура
    Документы Метаданные.Документы Метаданные().Документы.ЗаказПокупателя
    Регистры сведений Метаданные.РегистрыСведений Метаданные().РегистрыСведений.ЦеныНоменклатуры
    Отчёты и обработки Метаданные.ОбщиеМодули, Метаданные.Отчёты Метаданные().Отчёты.ОборотноСальдоваяВедомость

    Для получения полной структуры (включая табличные части, реквизиты форм) используйте свойства объектов:

    • Объект.Реквизиты — список реквизитов.
    • Объект.ТабличныеЧасти — табличные части.
    • Объект.Формы — формы объекта (только для управляемых форм).
    💡

    Для рекурсивного обхода всех объектов конфигурации используйте цикл по коллекции Метаданные().Дети. Это позволит получить даже скрытые или служебные элементы.

    4. Альтернативные методы для ограниченных сред (облако, тонкий клиент)

    В 1С:Fresh, тонком клиенте или при работе через веб-браузер стандартные методы могут не работать. В таких случаях используйте:

    А. OData-сервис (для версий 8.3.10+):

    Если в конфигурации включён OData-сервис, можно получить метаданные через HTTP-запрос. Пример URL:

    http://[адрес_сервера]/[база]/odata/standard.odata/Catalog_Справочник?$metadata

    Ответ будет в формате XML или JSON (в зависимости от заголовков запроса). Для авторизации используйте Basic Auth или токены.

    Б. COM-соединение (для локальных установок):

    Через V83.ComConnector (или V82.ComConnector для старых версий) можно подключиться к базе и извлечь метаданные внешней программой. Пример на C#:

    V83.ComConnector conn = new V83.ComConnector();
    

    dynamic comObject = conn.Connect("File=C:\\Bases\\MyBase");

    dynamic meta = comObject.Metadata;

    foreach (var catalog in meta.Catalogs)

    {

    Console.WriteLine(catalog.Name);

    }

    В. Внешние обработки:

    Существуют готовые обработки (например, "Анализ метаданных" от Infostart), которые устанавливаются в базу и позволяют экспортировать каталог даже без прав на изменение конфигурации. Их можно найти на порталах 1С-сообщества.

    Стандартный интерфейс 1С|

    Встроенный язык (1С-код)|

    OData или REST API|

    COM-соединение/внешние обработки-->

    5. Типичные ошибки и их решения

    При работе с каталогом объектов пользователи часто сталкиваются с проблемами. Разберём самые распространённые:

    ⚠️ Внимание: В версиях 1С:Предприятие 8.3.20+ при программном доступе к метаданным может возникать ошибка "Недостаточно прав для чтения метаданных". Это связано с новыми политиками безопасности. Решение: запросите у администратора роль "Чтение метаданных" или используйте ВыполнитьПривилегированно().
    Ошибка Причина Решение
    Метаданные() не является допустимым значением Код выполняется в режиме 1С:Предприятие, где объект Метаданные недоступен. Перенесите код в конфигуратор или используйте ПолучитьМетаданные() для управляемых форм.
    Нет прав на чтение конфигурации Недостаточные права пользователя в облачной или корпоративной базе. Используйте OData или запросите права у администратора.
    В экспортированном .xml отсутствуют реквизиты Экспорт выполнен без флага "Включить состав объектов". При экспорте установите галочку "Сохранять состав объектов".
    Не удалось подключиться к COM-объекту Не установлен 1С:Предприятие на машине или заблокирован доступ. Установите платформу и зарегистрируйте V83.ComConnector через regsvr32.

    Ещё одна частая проблема — неполный экспорт каталога. Например, в файле .xml могут отсутствовать:

    • 🔹 Общие модули — проверьте настройки экспорта.
    • 🔹 Права доступа — экспортируйте с флагом "Включить права".
    • 🔹 Внешние обработки/отчёты — они хранятся отдельно от конфигурации.
Как экспортировать права доступа?

В конфигураторе при экспорте в файл .xml нажмите "Дополнительно" и установите галочку "Сохранять настройки прав доступа". В результате в файле появятся секции <Роли> и <Права> с полным описанием ролей и ограничений.

6. Автоматизация и интеграция с внешними системами

Если вам нужно регулярно получать каталог объектов для интеграции с BI-системами, ERP или документацией, рассмотрите следующие подходы:

А. Регулярный экспорт через регламентные задания:

Создайте обработку, которая:

  1. Экспортирует метаданные в JSON/XML.
  2. Сохраняет файл на сервере или отправляет по FTP/email.
  3. Запускается по расписанию через РегламентныеЗадания.

Б. Использование REST API (для 1С:Fresh и корпоративных версий):

Пример запроса для получения списка справочников:

GET /[база]/hs/exchange/rest/метаданные/справочники

Headers:

Authorization: Basic [токен]

Accept: application/json

В. Генерация документации:

С помощью скриптов на Python или PowerShell можно парсить экспортированные метаданные и формировать:

  • 📖 Markdown-документацию для Confluence или GitHub.
  • 📊 ER-диаграммы (например, через PlantUML).
  • 📑 Excel-отчёты со структурой реквизитов.

Для автоматизации рекомендуем библиотеку py1c (Python) или модуль OneScript.

💡

Для интеграции с Power BI или Tableau удобнее использовать OData-подключение. Оно позволяет динамически получать не только структуру метаданных, но и сами данные из справочников.

7. Работа с каталогом в типовых конфигурациях (БП, УТ, ЗУП)

В типовых конфигурациях (1С:Бухгалтерия, 1С:Управление торговлей, 1С:Зарплата и управление персоналом) каталог объектов может содержать сотни элементов. Чтобы не запутаться, используйте фильтры и специализированные обработки.

Примеры полезных обработок:

  • 🔍 "Поиск по метаданным" — позволяет искать объекты по имени, синониму или типу.
  • 📊 "Сравнение конфигураций" — полезно для анализа отличий между версиями.
  • 🔗 "Построитель ER-диаграмм" — визуализирует связи между объектами.

В 1С:ERP и 1С:КА 2 часть объектов скрыта в подсистемах. Чтобы увидеть их все:

  1. Откройте конфигуратор.
  2. Перейдите в Администрирование → Печать и отчёты → Настройки отображения.
  3. Снимите галочку "Скрывать служебные объекты".

Для анализа структуры регистров накопления (например, ТоварыНаСкладах) используйте следующий код:

Регистр = Метаданные().РегистрыНакопления.ТоварыНаСкладах;

Для Каждого Измерение Из Регистр.Измерения Цикл

Сообщить("Измерение: " + Измерение.Имя);

КонецЦикла;

FAQ: Частые вопросы по работе с каталогом 1С

Можно ли получить каталог объектов без прав администратора?

Да, но с ограничениями:

  • В 1С:Предприятие (режим пользователя) доступен просмотр метаданных через Файл → Открыть → Конфигурацию, но без возможности экспорта.
  • В облачных версиях (1С:Fresh) даже просмотр может быть ограничен. Используйте OData или запросите права у провайдера.
  • Для программного доступа без прав администратора подойдёт COM-соединение с ограниченным набором методов.
Как экспортировать каталог в Excel?

Самый простой способ:

  1. Экспортируйте метаданные в .xml (см. раздел 2).
  2. Используйте Excel с надстройкой "Power Query" для импорта XML.
  3. Преобразуйте данные в таблицу с помощью запроса XPath.

Альтернатива: напишите обработку на , которая сохраняет данные в .xlsx через COM-объект Excel.Application.

Почему в экспортированном файле нет табличных частей?

Это типичная проблема при неполном экспорте. Проверьте:

  • Установлен ли флаг "Сохранять состав объектов" при экспорте.
  • Экспортируете ли вы в формат .xml.cf табличные части сохраняются, но не читаются без конфигуратора).
  • Не скрыты ли табличные части в настройках конфигурации (проверьте свойство Объект.ТабличныеЧасти.Видимость).
Как получить каталог объектов из мобильного приложения 1С?

В мобильном клиенте 1С:Предприятие доступ к метаданным ограничен. Возможные решения:

  • Используйте REST API или OData, если они настроены на сервере.
  • Создайте на сервере обработку, которая отправляет каталог по запросу (например, в JSON).
  • Для 1С:Мобильная платформа (версии 8.3.15+) доступен ограниченный набор методов Метаданные через встроенный язык.

⚠️ Внимание: В мобильных приложениях 1С:Fresh программный доступ к метаданным заблокирован по умолчанию.

Можно ли получить историю изменений каталога объектов?

Да, но для этого нужны:

  • 🔹 Система контроля версий (например, Git + экспорт конфигурации в .xml).
  • 🔹 Журнал регистрации в 1С (настройте событие "Изменение конфигурации").
  • 🔹 Специализированные обработки (например, "Сравнение конфигураций" от Infostart).

В 1С:EDT (Eclipse-редактор) история изменений ведётся автоматически при работе с проектами.