К статье
Практический материал

Разработка и Конфигурация · 11 мин

Что такое метаданные в 1С и как с ними работать

Метаданные в 1С: что это, чем отличаются от данных, какие объекты метаданных существуют, как их просматривать и изменять в конфигураторе.

Метаданные в 1С — это описание структуры прикладного решения: какие справочники, документы, регистры и отчёты существуют в конфигурации, из каких полей они состоят и как связаны между собой. Если данные — это конкретные товары, контрагенты и проводки, то метаданные — это «чертёж», по которому платформа хранит и обрабатывает эти данные.

Когда вы создаёте в конфигураторе новый документ «Заказ покупателя» с реквизитами «Клиент» и «Сумма», вы описываете метаданные. Когда менеджер потом вводит в базу конкретный заказ от конкретного клиента — он создаёт данные, которые хранятся в соответствии с этим описанием. Понимание этого различия — основа любой доработки и администрирования 1С.

Вся конфигурация 1С по сути и есть набор метаданных плюс код на встроенном языке, который определяет поведение объектов. Изменение метаданных — это всегда доработка конфигурации, требующая обновления конфигурации базы данных, а иногда и реструктуризации таблиц.

Чем метаданные отличаются от данных

Разницу проще всего понять на примере справочника «Номенклатура». Метаданные определяют: у справочника есть код, наименование, реквизиты «Артикул», «Единица измерения», табличная часть или её отсутствие, иерархия групп. Это описание единое для всей базы и меняется только в конфигураторе.

Данные — это конкретные элементы справочника: «Кресло офисное "Комфорт"», «Бумага А4, 500 листов». Пользователи создают, изменяют и удаляют их в режиме «1С:Предприятие» без всякого конфигуратора, и таких записей может быть сколько угодно.

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

Основные виды объектов метаданных

Дерево конфигурации в конфигураторе — это и есть полный список метаданных. Основные ветки, с которыми работает разработчик:

  • Справочники — условно постоянные списки: номенклатура, контрагенты, сотрудники, склады.
  • Документы — факты хозяйственной жизни с датой и номером: поступления, реализации, кассовые ордера.
  • Регистры — накопители информации: регистры накопления (остатки, продажи), регистры сведений (курсы валют, цены), регистры бухгалтерии и расчёта.
  • Перечисления — фиксированные списки значений: виды оплат, статусы заказа.
  • Планы видов характеристик, планы счетов, планы видов расчёта — основа аналитики, бухгалтерского учёта и расчёта зарплаты.
  • Отчёты и обработки — инструменты анализа и пакетных операций над данными.
  • Общие объекты — роли, подсистемы, общие модули, константы, планы обмена.

У каждого объекта есть свои свойства метаданных: у справочника — длина кода и наименования, иерархичность, владельцы; у документа — периодичность нумерации, проведение, движения по регистрам; у регистра — измерения, ресурсы, реквизиты. Всё это задаётся в палитре свойств конфигуратора.

Где посмотреть метаданные в конфигураторе

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

Быстрый способ найти конкретное поле или объект — глобальный поиск по конфигурации (Ctrl+Shift+F) и поиск ссылок на объект метаданных: правый клик по объекту → «Поиск ссылок в объектах». Это покажет, какие документы используют данный справочник или в каких модулях он упоминается в коде.

В режиме «1С:Предприятие» увидеть метаданные напрямую нельзя, но их проявления видны повсюду: состав колонок в форме списка, доступные поля в настройках отчёта, обязательные к заполнению реквизиты — всё это следствие описанных в конфигураторе метаданных.

Как найти объект метаданных в конфигураторе
  1. 1
    Откройте базу в режиме «Конфигуратор»
  2. 2
    Выполните «Конфигурация — Открыть конфигурацию»
  3. 3
    В дереве объектов раскройте нужную ветку (Справочники, Документы, Регистры)
  4. 4
    Двойным кликом откройте объект и перейдите на закладку «Данные» для просмотра реквизитов
  5. 5
    Через правый клик → «Поиск ссылок в объектах» проверьте, где объект используется

Как обратиться к метаданным из кода

Во встроенном языке 1С существует глобальное свойство Метаданные, через которое программно доступна вся структура конфигурации. Это используют в универсальных обработках, обменах и проверках, когда заранее неизвестно, с каким объектом придётся работать.

Типичные приёмы: перебрать все справочники конфигурации, проверить наличие реквизита у объекта, получить синоним (представление) объекта для вывода пользователю. Например, Метаданные.Справочники.Номенклатура.Реквизиты возвращает коллекцию описаний реквизитов справочника.

bsl
Для Каждого Справочник Из Метаданные.Справочники Цикл
    Сообщить(Справочник.Имя + " — " + Справочник.Синоним);
КонецЦикла;

// Проверка наличия реквизита у объекта
Если Метаданные.Справочники.Номенклатура.Реквизиты.Найти("Артикул") <> Неопределено Тогда
    // реквизит существует
КонецЕсли;

Работа через метаданные медленнее прямого обращения к конкретному объекту, поэтому в прикладном коде её применяют только там, где действительно нужна универсальность. Для типовых операций лучше использовать явные обращения вида Справочники.Номенклатура.

Изменение метаданных: что происходит с базой

Любое изменение структуры — добавление реквизита, нового документа, изменение длины строки — требует обновления конфигурации базы данных (клавиша F7 в конфигураторе). При этом платформа выполняет реструктуризацию: перестраивает физические таблицы СУБД под новое описание.

На больших базах реструктуризация может занимать значительное время и требует монопольного доступа — все пользователи должны выйти. Удаление реквизита или уменьшение длины строки приводит к потере данных в затронутых полях, поэтому платформа показывает список изменений и просит подтверждение.

Если конфигурация находится на поддержке поставщика, прямое изменение типовых объектов затруднит последующие обновления. Безопасные альтернативы — расширения конфигурации и механизм дополнительных реквизитов и сведений, который позволяет добавить поля к объектам вообще без доработки в конфигураторе.

Метаданные vs дополнительные реквизиты: что выбрать

Когда нужно добавить поле к справочнику или документу, есть три пути: доработка конфигурации, расширение и дополнительные реквизиты в пользовательском режиме. Выбор зависит от того, как поле будет использоваться.

Способы добавить поле к объекту

Изменение метаданных в конфигураторе

Полноценный реквизит: участвует в запросах, отборах, проводках. Минус — снимает объект с полной поддержки, усложняет обновления

Расширение конфигурации

Реквизит добавляется без изменения типовой конфигурации, обновления проходят проще. Подходит для большинства доработок

Дополнительные реквизиты (в режиме Предприятия)

Добавляются администратором без конфигуратора, но хранятся в отдельной таблице: медленнее в запросах и неудобны для сложной логики

Практическое правило: если поле нужно для отбора в отчётах, проводок или обменов — делайте его полноценным реквизитом через расширение. Если это просто справочная пометка для пользователей («цвет упаковки», «комментарий закупщика») — достаточно дополнительного реквизита.

Типичные ошибки при работе с метаданными

Типичные ошибки
01
Удаление реквизита, который используется в коде и отчётах — после обновления получаете ошибки в модулях и потерянные данные
02
Изменение типа существующего поля (например, строка → число) без переноса значений — данные очищаются при реструктуризации
03
Добавление реквизитов напрямую в типовую конфигурацию вместо расширения — каждое обновление превращается в ручное сравнение
04
Обращение к метаданным в цикле по тысячам записей вместо однократного получения описания — резкое падение производительности
05
Обновление конфигурации базы данных в рабочее время без выгона пользователей — монопольный режим недоступен, процесс прерывается

Большинство этих ошибок предотвращается двумя привычками: перед изменением объекта делать поиск ссылок на него по всей конфигурации, а любую структурную доработку сначала прогонять на копии рабочей базы.

Как проверить корректность изменений

После доработки метаданных и обновления конфигурации базы данных проверьте результат по нескольким контрольным точкам.

Контрольные точки

Как проверить результат

Конфигурация базы данных
Норма

В конфигураторе конфигурация БД совпадает с основной конфигурацией, нет признака «!» в заголовке

Тревожный признак

Платформа требует обновления, пользователи не могут войти

Новый реквизит в режиме Предприятия
Норма

Поле видно на форме, сохраняется и доступно в отборах/отчётах

Тревожный признак

Поле не отображается или значение не сохраняется — проверяйте форму и права

Существующие данные
Норма

Старые записи открываются без ошибок, значения на месте

Тревожный признак

Ошибки формата, очищенные поля — признак потери данных при реструктуризации

Код и отчёты
Норма

Модули компилируются, отчёты формируются без ошибок

Тревожный признак

«Переменная не определена», «Поле не найдено» — есть ссылки на удалённые объекты

Часто задаваемые вопросы

Можно ли изменить метаданные без конфигуратора?

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

Что произойдёт с данными, если удалить реквизит объекта?

Значения этого реквизита будут безвозвратно удалены при реструктуризации. Перед удалением выгрузите нужные данные (например, в табличный документ или Excel) и убедитесь через поиск ссылок, что реквизит не используется в коде, отчётах и схемах обмена.

Чем расширение конфигурации лучше прямой доработки?

Расширение хранит изменения отдельно от типовой конфигурации, поэтому обновления поставщика устанавливаются почти без ручной работы. Прямая доработка заставляет при каждом обновлении вручную сопоставлять изменённые объекты, что долго и чревато потерей своих правок.

Почему обращение к метаданным в коде считается медленным?

Каждое обращение к коллекции метаданных — это чтение описания конфигурации, а не данных таблицы. В цикле по тысячам записей такие обращения многократно повторяются. Правильный приём — получить нужное описание один раз до цикла и использовать сохранённую ссылку на объект метаданных.

Как узнать, какие объекты конфигурации доработаны?

Используйте сравнение конфигураций: «Конфигурация — Сравнить, объединить с конфигурацией из файла» или сравнение с конфигурацией поставщика. Платформа покажет список отличающихся объектов. Для расширений список доработок виден прямо в списке расширений.

Хранятся ли метаданные в файле выгрузки .dt?

Да. Файл выгрузки информационной базы (.dt) содержит и конфигурацию (метаданные), и все данные. При загрузке такого файла восстанавливается база целиком. Файл .cf, напротив, содержит только конфигурацию без пользовательских данных.

Итог

Что важно запомнить

Метаданные — это описание структуры конфигурации: объекты, реквизиты, связи. Данные живут внутри этой структуры. Изменять метаданные следует через расширения, обязательно с резервной копией и проверкой на копии базы, а простые поля добавлять дополнительными реквизитами без доработки.