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

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

Где хранятся свойства объектов 1С

Разбираем, где физически хранятся свойства объектов в 1С: дополнительные реквизиты, сведения, таблицы базы данных и способы их просмотра.

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

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

Главная особенность механизма: значения свойств не хранятся в таблице самого объекта (справочника или документа). Они вынесены в отдельные структуры — табличную часть объекта и специальный регистр сведений. Ниже разберём оба варианта, их отличия и способы добраться до данных.

Два вида свойств: реквизиты и сведения

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

Дополнительные сведения на основной форме не показываются. Они открываются через команду «Ещё → Дополнительные сведения» и предназначены для редко используемой или служебной информации: примечаний, внешних идентификаторов, технических меток. Такое разделение сделано, чтобы не перегружать основную форму.

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

Где физически лежат дополнительные реквизиты

Значения дополнительных реквизитов хранятся в табличной части «ДополнительныеРеквизиты», которая есть у каждого объекта, подключённого к механизму свойств. В структуре базы данных это отдельная таблица, связанная с таблицей объекта по ссылке. Каждая строка содержит ссылку на объект, ссылку на свойство и значение.

Поскольку это табличная часть, значения записываются вместе с объектом в одной транзакции. Это даёт важное следствие: при откате транзакции или восстановлении объекта из копии реквизиты восстанавливаются вместе с ним. Также они автоматически попадают в типовые планы обмена вместе с объектом.

Обратиться к значениям из кода можно напрямую через объект:

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| НоменклатураДопРеквизиты.Свойство,

| НоменклатураДопРеквизиты.Значение

|ИЗ

| Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДопРеквизиты

|ГДЕ

| НоменклатураДопРеквизиты.Ссылка = &Ссылка";

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

Где хранятся дополнительные сведения

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

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

Запрос к сведениям выглядит так:

ВЫБРАТЬ

ДополнительныеСведения.Объект,

ДополнительныеСведения.Свойство,

ДополнительныеСведения.Значение

ИЗ

РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения

ГДЕ

ДополнительныеСведения.Объект = &Объект

Где хранятся описания самих свойств

Отдельно от значений хранятся метаданные свойств — их наименования, типы значений, обязательность, подсказки. Основное хранилище — план видов характеристик «ДополнительныеРеквизитыИСведения». Каждый элемент этого ПВХ — одно свойство. Здесь же задаётся тип значения: строка, число, дата, булево или ссылка на справочник.

Если свойство имеет тип «Дополнительное значение» (пользовательский список вариантов, например список цветов), сами варианты хранятся в справочнике «ЗначенияСвойствОбъектов» (в новых версиях БСП — «ЗначенияСвойствОбъектовИерархия» для иерархических списков). При удалении свойства эти значения не удаляются автоматически, что со временем засоряет справочник.

Привязка свойств к наборам хранится в табличных частях справочника «НаборыДополнительныхРеквизитовИСведений»: там две табличные части — «ДополнительныеРеквизиты» и «ДополнительныеСведения». Именно через эти таблицы система понимает, какие свойства показывать для конкретного вида объектов.

Значения реквизитовТабличная часть объекта

Справочник.Имя.ДополнительныеРеквизиты — пишется вместе с объектом

Значения сведенийРегистр сведений

РегистрСведений.ДополнительныеСведения — пишется отдельно

Описания свойствПлан видов характеристик

ПВХ ДополнительныеРеквизитыИСведения — типы и настройки

Списки значенийСправочник

ЗначенияСвойствОбъектов — варианты для свойств со списком

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

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

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

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

Полезная проверка на дубли: в базах, которые развивались несколько лет, часто существует два-три свойства с одинаковым названием («Цвет», «Цвет товара», «Цвет_нов»), и значения размазаны между ними. Отчёт по каждому свойству покажет, где реально лежат данные.

Типичные ошибки и ограничения механизма

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

Вторая ошибка — изменение типа значения существующего свойства. Если у свойства были заполнены значения, а тип сузили (например, убрали из составного типа лишние варианты), старые значения могут стать недоступными или привести к ошибкам при записи объектов. Перед изменением типа сделайте выгрузку текущих значений.

Третья ошибка — удаление свойства без проверки. Значения удалённого реквизита в табличной части могут остаться, но перестанут отображаться; при повторном создании свойства с тем же именем старые значения не «поднимутся» автоматически, так как связь идёт по ссылке на конкретный элемент ПВХ, а не по имени.

Типичные ошибки при работе со свойствами
01
Искать дополнительные реквизиты в регистре сведений — запрос вернёт пустой результат, хотя данные есть
02
Забыть включить регистр «ДополнительныеСведения» в обмен — сведения не переносятся в другую базу
03
Создавать дубли свойств с похожими именами — значения распределяются между ними, отчёты врут
04
Менять тип заполненного свойства — старые значения могут стать недоступными
05
Использовать свойства для критичных учётных данных — отборы и отчёты начинают тормозить

Когда свойств недостаточно: альтернативы

Механизм дополнительных свойств рассчитан на пользовательские характеристики средней важности. Есть ситуации, где лучше подходят другие инструменты. Если значение должно иметь историю изменений (например, статус договора с датами) — нужен периодический регистр сведений, дополнительные сведения историю не хранят.

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

Если нужна произвольная текстовая информация без структуры — иногда достаточно стандартного поля «Комментарий» или присоединённых файлов, не создавая десятки свойств.

Что выбрать для хранения характеристик

Дополнительный реквизит

Характеристика видна на форме, заполняется пользователем, нужна в отчётах. Ограничение: медленнее обычного реквизита в отборах

Дополнительное сведение

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

Реквизит через расширение

Критичные для учёта данные, частые отборы и движения. Ограничение: требуется разработчик и тестирование

Периодический регистр сведений

Нужна история изменения значения во времени. Ограничение: только программная реализация

FAQ: частые вопросы о хранении свойств

Почему в запросе не видно значения свойства, хотя в карточке оно заполнено?

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

Переносятся ли дополнительные свойства при обмене между базами?

Дополнительные реквизиты переносятся вместе с объектом, так как являются его табличной частью. Дополнительные сведения — только если регистр «ДополнительныеСведения» явно включён в правила обмена. Также в обмен должны попасть сами свойства (ПВХ) и наборы свойств, иначе значения окажутся «бесхозными».

Что произойдёт со значениями, если удалить свойство?

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

Можно ли хранить в дополнительных сведениях историю изменений?

Нет. Регистр «ДополнительныеСведения» непериодический: на пару «объект + свойство» хранится одно текущее значение, при записи старое затирается. Если нужна история, создайте собственный периодический регистр сведений через расширение конфигурации.

Влияет ли большое количество свойств на производительность?

Да, особенно при отборах по свойствам в динамических списках и отчётах: каждое свойство — это соединение с табличной частью или регистром. Десятки свойств на один объект и фильтры по ним на больших объёмах данных заметно нагружают СУБД. Критичные для отборов характеристики лучше выносить в обычные реквизиты.

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

Откройте «Администрирование → Общие настройки → Дополнительные реквизиты и сведения», выберите нужный набор (например, «Номенклатура» или конкретный вид). В карточке набора на закладках «Дополнительные реквизиты» и «Дополнительные сведения» перечислены все привязанные свойства с типами и обязательностью.

Итог

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

Дополнительные реквизиты хранятся в табличной части объекта и пишутся вместе с ним, дополнительные сведения — в отдельном регистре сведений и требуют явного включения в обмены. Описания свойств лежат в ПВХ «ДополнительныеРеквизитыИСведения», привязка к объектам — в наборах свойств. Перед запросами и обменами всегда уточняйте тип свойства, а критичные для учёта данные выносите в обычные реквизиты через расширение.