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