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