Разработка и Конфигурация · 11 мин
Что такое метаданные в 1С и как с ними работать
Метаданные в 1С: что это, чем отличаются от данных, какие объекты метаданных существуют, как их просматривать и изменять в конфигураторе.
Метаданные в 1С — это описание структуры прикладного решения: какие справочники, документы, регистры и отчёты существуют в конфигурации, из каких полей они состоят и как связаны между собой. Если данные — это конкретные товары, контрагенты и проводки, то метаданные — это «чертёж», по которому платформа хранит и обрабатывает эти данные.
Когда вы создаёте в конфигураторе новый документ «Заказ покупателя» с реквизитами «Клиент» и «Сумма», вы описываете метаданные. Когда менеджер потом вводит в базу конкретный заказ от конкретного клиента — он создаёт данные, которые хранятся в соответствии с этим описанием. Понимание этого различия — основа любой доработки и администрирования 1С.
Вся конфигурация 1С по сути и есть набор метаданных плюс код на встроенном языке, который определяет поведение объектов. Изменение метаданных — это всегда доработка конфигурации, требующая обновления конфигурации базы данных, а иногда и реструктуризации таблиц.
Чем метаданные отличаются от данных
Разницу проще всего понять на примере справочника «Номенклатура». Метаданные определяют: у справочника есть код, наименование, реквизиты «Артикул», «Единица измерения», табличная часть или её отсутствие, иерархия групп. Это описание единое для всей базы и меняется только в конфигураторе.
Данные — это конкретные элементы справочника: «Кресло офисное "Комфорт"», «Бумага А4, 500 листов». Пользователи создают, изменяют и удаляют их в режиме «1С:Предприятие» без всякого конфигуратора, и таких записей может быть сколько угодно.
Следствие из этого различия практическое: метаданные хранятся в конфигурации, данные — в таблицах информационной базы. Поэтому при обмене конфигурациями (файлы .cf) переносится структура, а при обмене данными (выгрузка через универсальный формат, правила конвертации) — сами записи.
Основные виды объектов метаданных
Дерево конфигурации в конфигураторе — это и есть полный список метаданных. Основные ветки, с которыми работает разработчик:
- Справочники — условно постоянные списки: номенклатура, контрагенты, сотрудники, склады.
- Документы — факты хозяйственной жизни с датой и номером: поступления, реализации, кассовые ордера.
- Регистры — накопители информации: регистры накопления (остатки, продажи), регистры сведений (курсы валют, цены), регистры бухгалтерии и расчёта.
- Перечисления — фиксированные списки значений: виды оплат, статусы заказа.
- Планы видов характеристик, планы счетов, планы видов расчёта — основа аналитики, бухгалтерского учёта и расчёта зарплаты.
- Отчёты и обработки — инструменты анализа и пакетных операций над данными.
- Общие объекты — роли, подсистемы, общие модули, константы, планы обмена.
У каждого объекта есть свои свойства метаданных: у справочника — длина кода и наименования, иерархичность, владельцы; у документа — периодичность нумерации, проведение, движения по регистрам; у регистра — измерения, ресурсы, реквизиты. Всё это задаётся в палитре свойств конфигуратора.
Где посмотреть метаданные в конфигураторе
Для просмотра структуры конфигурации откройте базу в режиме «Конфигуратор» и вызовите пункт меню «Конфигурация — Открыть конфигурацию». Слева появится дерево объектов метаданных. Двойной клик по объекту открывает окно редактирования с закладками: основные свойства, данные (реквизиты и табличные части), нумерация, движения, права.
Быстрый способ найти конкретное поле или объект — глобальный поиск по конфигурации (Ctrl+Shift+F) и поиск ссылок на объект метаданных: правый клик по объекту → «Поиск ссылок в объектах». Это покажет, какие документы используют данный справочник или в каких модулях он упоминается в коде.
В режиме «1С:Предприятие» увидеть метаданные напрямую нельзя, но их проявления видны повсюду: состав колонок в форме списка, доступные поля в настройках отчёта, обязательные к заполнению реквизиты — всё это следствие описанных в конфигураторе метаданных.
- 1Откройте базу в режиме «Конфигуратор»
- 2Выполните «Конфигурация — Открыть конфигурацию»
- 3В дереве объектов раскройте нужную ветку (Справочники, Документы, Регистры)
- 4Двойным кликом откройте объект и перейдите на закладку «Данные» для просмотра реквизитов
- 5Через правый клик → «Поиск ссылок в объектах» проверьте, где объект используется
Как обратиться к метаданным из кода
Во встроенном языке 1С существует глобальное свойство Метаданные, через которое программно доступна вся структура конфигурации. Это используют в универсальных обработках, обменах и проверках, когда заранее неизвестно, с каким объектом придётся работать.
Типичные приёмы: перебрать все справочники конфигурации, проверить наличие реквизита у объекта, получить синоним (представление) объекта для вывода пользователю. Например, Метаданные.Справочники.Номенклатура.Реквизиты возвращает коллекцию описаний реквизитов справочника.
Для Каждого Справочник Из Метаданные.Справочники Цикл
Сообщить(Справочник.Имя + " — " + Справочник.Синоним);
КонецЦикла;
// Проверка наличия реквизита у объекта
Если Метаданные.Справочники.Номенклатура.Реквизиты.Найти("Артикул") <> Неопределено Тогда
// реквизит существует
КонецЕсли;Работа через метаданные медленнее прямого обращения к конкретному объекту, поэтому в прикладном коде её применяют только там, где действительно нужна универсальность. Для типовых операций лучше использовать явные обращения вида Справочники.Номенклатура.
Изменение метаданных: что происходит с базой
Любое изменение структуры — добавление реквизита, нового документа, изменение длины строки — требует обновления конфигурации базы данных (клавиша F7 в конфигураторе). При этом платформа выполняет реструктуризацию: перестраивает физические таблицы СУБД под новое описание.
На больших базах реструктуризация может занимать значительное время и требует монопольного доступа — все пользователи должны выйти. Удаление реквизита или уменьшение длины строки приводит к потере данных в затронутых полях, поэтому платформа показывает список изменений и просит подтверждение.
Если конфигурация находится на поддержке поставщика, прямое изменение типовых объектов затруднит последующие обновления. Безопасные альтернативы — расширения конфигурации и механизм дополнительных реквизитов и сведений, который позволяет добавить поля к объектам вообще без доработки в конфигураторе.
Метаданные vs дополнительные реквизиты: что выбрать
Когда нужно добавить поле к справочнику или документу, есть три пути: доработка конфигурации, расширение и дополнительные реквизиты в пользовательском режиме. Выбор зависит от того, как поле будет использоваться.
Способы добавить поле к объекту
Полноценный реквизит: участвует в запросах, отборах, проводках. Минус — снимает объект с полной поддержки, усложняет обновления
Реквизит добавляется без изменения типовой конфигурации, обновления проходят проще. Подходит для большинства доработок
Добавляются администратором без конфигуратора, но хранятся в отдельной таблице: медленнее в запросах и неудобны для сложной логики
Практическое правило: если поле нужно для отбора в отчётах, проводок или обменов — делайте его полноценным реквизитом через расширение. Если это просто справочная пометка для пользователей («цвет упаковки», «комментарий закупщика») — достаточно дополнительного реквизита.
Типичные ошибки при работе с метаданными
Большинство этих ошибок предотвращается двумя привычками: перед изменением объекта делать поиск ссылок на него по всей конфигурации, а любую структурную доработку сначала прогонять на копии рабочей базы.
Как проверить корректность изменений
После доработки метаданных и обновления конфигурации базы данных проверьте результат по нескольким контрольным точкам.
Как проверить результат
В конфигураторе конфигурация БД совпадает с основной конфигурацией, нет признака «!» в заголовке
Платформа требует обновления, пользователи не могут войти
Поле видно на форме, сохраняется и доступно в отборах/отчётах
Поле не отображается или значение не сохраняется — проверяйте форму и права
Старые записи открываются без ошибок, значения на месте
Ошибки формата, очищенные поля — признак потери данных при реструктуризации
Модули компилируются, отчёты формируются без ошибок
«Переменная не определена», «Поле не найдено» — есть ссылки на удалённые объекты
Часто задаваемые вопросы
Можно ли изменить метаданные без конфигуратора?
Частично — да. Механизм дополнительных реквизитов и сведений позволяет администратору добавлять поля к справочникам и документам прямо в режиме «1С:Предприятие». Но полноценные изменения структуры (новые объекты, регистры, типы полей) возможны только в конфигураторе или через расширения.
Что произойдёт с данными, если удалить реквизит объекта?
Значения этого реквизита будут безвозвратно удалены при реструктуризации. Перед удалением выгрузите нужные данные (например, в табличный документ или Excel) и убедитесь через поиск ссылок, что реквизит не используется в коде, отчётах и схемах обмена.
Чем расширение конфигурации лучше прямой доработки?
Расширение хранит изменения отдельно от типовой конфигурации, поэтому обновления поставщика устанавливаются почти без ручной работы. Прямая доработка заставляет при каждом обновлении вручную сопоставлять изменённые объекты, что долго и чревато потерей своих правок.
Почему обращение к метаданным в коде считается медленным?
Каждое обращение к коллекции метаданных — это чтение описания конфигурации, а не данных таблицы. В цикле по тысячам записей такие обращения многократно повторяются. Правильный приём — получить нужное описание один раз до цикла и использовать сохранённую ссылку на объект метаданных.
Как узнать, какие объекты конфигурации доработаны?
Используйте сравнение конфигураций: «Конфигурация — Сравнить, объединить с конфигурацией из файла» или сравнение с конфигурацией поставщика. Платформа покажет список отличающихся объектов. Для расширений список доработок виден прямо в списке расширений.
Хранятся ли метаданные в файле выгрузки .dt?
Да. Файл выгрузки информационной базы (.dt) содержит и конфигурацию (метаданные), и все данные. При загрузке такого файла восстанавливается база целиком. Файл .cf, напротив, содержит только конфигурацию без пользовательских данных.
Что важно запомнить
Метаданные — это описание структуры конфигурации: объекты, реквизиты, связи. Данные живут внутри этой структуры. Изменять метаданные следует через расширения, обязательно с резервной копией и проверкой на копии базы, а простые поля добавлять дополнительными реквизитами без доработки.