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