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

Справочники и Данные · 10 мин

Где хранятся свойства номенклатуры в 1С

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

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

В типовых конфигурациях (Управление торговлей, ERP, Комплексная автоматизация, Розница) свойства номенклатуры распределены между несколькими механизмами: стандартные реквизиты справочника, дополнительные реквизиты и дополнительные сведения (механизм БСП), характеристики номенклатуры и регистры сведений. Каждый механизм хранит данные в своих таблицах базы данных и имеет свои ограничения.

Ниже разобрано, где искать каждый тип свойств в интерфейсе, в конфигураторе и на уровне таблиц СУБД, а также какой вариант хранения выбрать при доработке.

Стандартные реквизиты справочника «Номенклатура»

Основные свойства товара — артикул, наименование, вид номенклатуры, единица измерения, ставка НДС, вес, объём — это реквизиты справочника «Номенклатура». Физически каждый реквизит соответствует колонке таблицы справочника в базе данных. В файловой базе имя таблицы формируется платформой автоматически; в клиент-серверном варианте на SQL Server или PostgreSQL таблицу можно найти по соответствию, которое показывает функция «ПолучитьСтруктуруХраненияБазыДанных()».

Увидеть состав реквизитов можно в конфигураторе: откройте дерево конфигурации, найдите «Справочники → Номенклатура» и разверните ветку «Реквизиты». В режиме предприятия реквизиты видны прямо в карточке товара — это те поля, которые заполняются на основных вкладках формы.

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

Дополнительные реквизиты номенклатуры

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

Физически значения дополнительных реквизитов хранятся в табличной части справочника «Номенклатура» с именем «ДополнительныеРеквизиты». Каждая строка содержит ссылку на свойство (элемент плана видов характеристик «ДополнительныеРеквизитыИСведения») и значение. То есть сам список возможных свойств — это отдельный объект метаданных, а значения лежат внутри карточки товара.

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

Дополнительные сведения и регистр сведений

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

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

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

Характеристики номенклатуры

Характеристики — отдельный механизм для товаров с вариациями: размеры одежды, цвета, объёмы упаковки. Это не свойство-поле, а подчинённый справочник «ХарактеристикиНоменклатуры», каждый элемент которого описывает конкретный вариант товара. Остатки, цены и движения по документам в таком случае ведутся в разрезе пары «номенклатура + характеристика».

Включается механизм в настройках: «НСИ и администрирование → Настройка НСИ и разделов → Номенклатура → Характеристики номенклатуры». Использование характеристик задаётся для вида номенклатуры — индивидуально для каждой позиции или общие для вида.

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

Сравнение вариантов хранения

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

Колонка таблицы. Быстрый доступ в запросах, но добавление требует доработки конфигурации.

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

Табличная часть справочника. Добавляется пользователем, работает в отборах и обмене с сайтом.

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

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

Характеристика

Подчинённый справочник. Для вариантов товара с учётом остатков и цен по каждому варианту.

Как найти свойства в конфигураторе и таблицах СУБД

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

Чтобы узнать имена таблиц в базе данных, выполните в консоли кода или через внешнюю обработку функцию ПолучитьСтруктуруХраненияБазыДанных() — она вернёт таблицу соответствия объектов метаданных и таблиц СУБД. Для справочника будет указана основная таблица и таблицы табличных частей, для регистра сведений — его таблица хранения.

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

Какой механизм выбрать для нового свойства

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

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

Типичные ошибки
01
Создание свойства как дополнительного сведения, когда оно нужно в отборе на сайте — сведения в типовом обмене не выгружаются, приходится переносить данные в реквизиты.
02
Поиск значения дополнительного реквизита в регистре сведений при написании запроса — реквизиты хранятся в табличной части справочника, запрос возвращает пустой результат.
03
Использование дополнительных реквизитов вместо характеристик для размеров и цветов — остатки и цены по вариантам товара вести невозможно.
04
Хранение одного и того же свойства в двух механизмах одновременно — данные расходятся, непонятно, какое значение актуально.

Проверка результата и частые проблемы

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

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

Итог

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

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

Частые вопросы

Как программно получить значение дополнительного реквизита номенклатуры?

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

Чем дополнительный реквизит отличается от дополнительного сведения?

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

Где хранится список всех созданных свойств?

В плане видов характеристик «ДополнительныеРеквизитыИСведения». Каждый элемент — одно свойство с типом значения и настройками. В пользовательском режиме список доступен в разделе «Администрирование → Дополнительные реквизиты и сведения».

Почему свойство не выгружается на сайт?

Типовой обмен выгружает только дополнительные реквизиты номенклатуры. Если свойство создано как дополнительное сведение, оно в выгрузку не попадёт. Решение — создать аналогичный дополнительный реквизит и перенести значения обработкой.

Можно ли хранить размеры и цвета как дополнительные реквизиты?

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

Как узнать имя таблицы справочника в базе SQL?

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