Разработка и Конфигурация · 11 мин
Метаданные в 1С: что это такое и как с ними работать
Что такое метаданные в 1С, из чего состоит конфигурация, чем метаданные отличаются от данных и как работать с ними в конфигураторе.
Метаданные в 1С — это описание структуры прикладного решения: какие справочники, документы, регистры и отчёты существуют в конфигурации, какие у них реквизиты, табличные части, формы и права доступа. Говоря проще, метаданные отвечают на вопрос «как устроена система», а данные — на вопрос «что в ней хранится». Контрагент «ООО Ромашка» в справочнике — это данные, а само описание справочника «Контрагенты» с реквизитами ИНН и КПП — это метаданные.
Понимание метаданных важно не только программистам. Пользователю это помогает ориентироваться в структуре базы, администратору — безопасно обновлять конфигурацию, а бухгалтеру — понимать, почему после обновления появился новый документ или изменилась форма. Любое изменение логики учёта в 1С в конечном итоге сводится к изменению метаданных.
Метаданные хранятся внутри информационной базы вместе с данными, но обрабатываются отдельно. При запуске в режиме «Предприятие» платформа читает описание конфигурации и строит интерфейс, проверяет права, открывает формы — всё на основе метаданных. Если метаданные повреждены или конфликтуют с данными, база может перестать открываться или работать некорректно.
Чем метаданные отличаются от данных
Различие проще всего понять на аналогии с таблицей Excel. Заголовки колонок, типы ячеек и формулы — это аналог метаданных, а конкретные значения в строках — данные. В 1С то же самое: объект метаданных «Документ.РеализацияТоваровУслуг» описывает, какие реквизиты есть у документа, а конкретный документ № 000123 от конкретной даты — это данные, записанные по этому описанию.
Метаданные задают правила для данных: какой тип у реквизита (строка, число, ссылка на справочник), какая длина строки, обязателен ли реквизит, как документ проводится по регистрам. Если изменить метаданные — например, удалить реквизит, — платформа при обновлении конфигурации базы данных удалит и связанные данные. Поэтому работа с метаданными всегда требует осторожности.
Ещё одно важное отличие: данные пользователи создают и изменяют каждый день в режиме «Предприятие», а метаданные меняются только в конфигураторе и, как правило, требуют монопольного доступа к базе при обновлении структуры.
Метаданные и данные
Структура конфигурации: объекты, реквизиты, формы, права. Изменяются в конфигураторе, требуют обновления базы.
Конкретные записи: элементы справочников, документы, записи регистров. Создаются и меняются в режиме Предприятие.
Из каких объектов состоят метаданные
Конфигурация 1С состоит из типовых объектов метаданных, каждый из которых решает свою задачу. В дереве конфигуратора они сгруппированы по видам, и разработчик работает именно с этим деревом.
- Справочники — хранят условно-постоянную нормативную информацию: контрагенты, номенклатура, сотрудники, склады.
- Документы — отражают хозяйственные операции: поступление, реализация, оплата, начисление зарплаты. Могут проводиться по регистрам.
- Регистры (сведений, накопления, бухгалтерии, расчёта) — накапливают информацию для отчётов и учёта: остатки товаров, взаиморасчёты, проводки.
- Отчёты и обработки — анализируют данные и выполняют сервисные операции, сами по себе данные учёта не хранят.
- Перечисления, планы видов характеристик, планы счетов, планы обмена — вспомогательные объекты для типизации, аналитики и обмена данными.
- Роли, подсистемы, общие формы и макеты — определяют права доступа, структуру интерфейса и общие элементы конфигурации.
У каждого объекта есть собственные свойства: реквизиты, табличные части, измерения и ресурсы у регистров, стандартные реквизиты вроде «Код» и «Наименование». Набор этих свойств фиксирован платформой — нельзя, например, добавить табличную часть к регистру сведений, потому что платформа такой структуры не предусматривает.
Где хранятся метаданные и как платформа их использует
В файловой базе метаданные хранятся внутри файла 1Cv8.1CD вместе с данными, в клиент-серверном варианте — в базе на СУБД (MS SQL, PostgreSQL и других). Отдельного «файла конфигурации» в работающей базе нет: конфигурация встроена в саму базу. Выгрузить её можно в файл .cf через конфигуратор.
При запуске режима «Предприятие» платформа загружает описание конфигурации и на его основе строит всё: список доступных разделов, формы списков и объектов, проверки заполнения, права. Когда пользователь записывает документ, платформа сверяется с метаданными: какие реквизиты обязательны, по каким регистрам документ проводится, какие модули обработки заполнения вызвать.
Именно поэтому конфигурация базы данных и основная конфигурация могут различаться. Разработчик редактирует основную конфигурацию, а пользователи работают с конфигурацией базы данных — пока не выполнено обновление (F7), изменения в метаданных не влияют на работающую систему.
Как посмотреть и изменить метаданные в конфигураторе
Для работы с метаданными нужен режим «Конфигуратор» и права на изменение конфигурации. Если база на поддержке у поставщика, часть объектов может быть заблокирована от изменений — тогда используют расширения конфигурации.
- 1Откройте базу в режиме Конфигуратор под пользователем с правами администратора.
- 2Откройте дерево конфигурации: меню Конфигурация — Открыть конфигурацию.
- 3Найдите нужный объект (например, Справочники — Номенклатура) и откройте его свойства двойным щелчком или палитрой свойств.
- 4Внесите изменения: добавьте реквизит, измените длину строки, настройте форму.
- 5Сохраните конфигурацию (Ctrl+S), затем выполните обновление конфигурации базы данных (F7), приняв изменения структуры.
- 6Проверьте результат в режиме Предприятие: объект должен открываться, новые реквизиты — отображаться и сохраняться.
Для изучения метаданных без их изменения полезны инструменты: поиск по конфигурации (Ctrl+Shift+F), поиск ссылок на объект (покажет, где используется реквизит или справочник), а также «Все функции» в режиме Предприятие — там видно дерево объектов так, как его видит пользователь с полными правами.
В коде встроенного языка к метаданным обращаются через коллекцию Метаданные: например, Метаданные.Справочники.Номенклатура вернёт объект описания, а Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)) определит, какому объекту конфигурации соответствует ссылка. Это стандартный приём в универсальных обработках.
Что происходит с данными при изменении метаданных
Обновление конфигурации базы данных (реструктуризация) — самый ответственный этап работы с метаданными. Платформа сравнивает старую и новую структуру и приводит физические таблицы в соответствие с описанием. Некоторые изменения безопасны, другие приводят к потере данных.
Безопасные изменения: добавление нового объекта, нового реквизита, новой формы, индекса. Опасные: удаление реквизита или объекта (данные удаляются безвозвратно), уменьшение длины строки (значения обрезаются), изменение типа реквизита на несовместимый (значения могут быть очищены). Платформа перед обновлением показывает список изменений и предупреждает о потенциальной потере данных — этот список нужно читать, а не нажимать «Принять» вслепую.
Для доработки типовых конфигураций без изменения их метаданных предназначены расширения. Расширение хранит собственный слой метаданных (добавленные реквизиты, формы, обработчики) отдельно от основной конфигурации, поэтому типовое обновление не затирает доработки. Это рекомендуемый путь, если конфигурация находится на поддержке.
Типичные ошибки при работе с метаданными
Отдельная группа ошибок связана с обменами. Если конфигурации-участники обмена имеют разные версии метаданных (например, в одной базе добавили реквизит, а в другой нет), обмен может завершаться ошибками формата или терять часть информации. Перед изменением метаданных в распределённых системах проверяйте планы обмена и состав выгружаемых свойств.
Как проверить, что изменения метаданных применились корректно
Как проверить результат
Форма открывается без ошибок, новые реквизиты видны и заполняются
Ошибка обращения к реквизиту, форма не открывается
Документ записывается и проводится, движения по регистрам формируются
Ошибки при проведении, отсутствуют движения
Отчёты строятся и показывают ожидаемые итоги
Ошибки компоновки, пустые или искажённые итоги
Нет массовых ошибок после обновления
Повторяющиеся ошибки фоновых заданий и обменов
После обновления полезно также запустить тестирование и исправление базы (в файловом варианте — через конфигуратор) или хотя бы проверить логическую целостность, если изменения были масштабными. Для клиент-серверных баз достаточно контрольной проверки типовых сценариев работы.
FAQ
Можно ли посмотреть метаданные без конфигуратора?
Да, частично. В режиме «Предприятие» через меню «Все функции» видно дерево объектов конфигурации, а стандартная обработка «Полный текстовый поиск» и отчёты показывают, какие объекты участвуют в учёте. Полное описание реквизитов и свойств доступно только в конфигураторе.
Что такое «конфигурация базы данных» и чем она отличается от основной конфигурации?
Основная конфигурация — та, которую редактирует разработчик в конфигураторе. Конфигурация базы данных — та, с которой реально работают пользователи. После правок они различаются, пока не выполнено обновление конфигурации базы данных (F7).
Удалятся ли данные, если удалить объект метаданных?
Да. При обновлении конфигурации базы данных удаление справочника, документа, регистра или реквизита приводит к удалению соответствующих таблиц и всех хранящихся в них данных. Платформа предупреждает об этом в окне реструктуризации.
Что делать, если типовую конфигурацию нельзя изменять?
Используйте расширение конфигурации. Оно позволяет добавлять реквизиты, формы, обработчики и собственные объекты поверх типовой конфигурации, не снимая её с поддержки, и сохраняет доработки при обновлениях.
Как в коде узнать, есть ли у объекта нужный реквизит?
Через коллекцию метаданных: например, проверить Метаданные.Документы.РеализацияТоваровУслуг.Реквизиты.Найти("Комментарий") — если результат Неопределено, реквизита нет. Это стандартный приём для универсальных обработок, работающих с разными конфигурациями.
Почему после обновления конфигурации пропал реквизит или отчёт?
Чаще всего при обновлении был принят вариант «загрузить конфигурацию поставщика», и локальные доработки, не вынесенные в расширение, затёрлись. Восстановить их можно из резервной копии или сравнением с сохранённым файлом .cf, сделанным до обновления.
Что важно запомнить
Метаданные — это описание структуры конфигурации 1С, а данные — конкретные записи по этому описанию. Метаданные меняются в конфигураторе или через расширения, применяются обновлением конфигурации базы данных, а перед любыми изменениями структуры обязательна резервная копия.