В практике автоматизации торгового учета на платформе 1С:Предприятие часто возникает задача: товар по своей сути один (например, «Компьютерная мышь»), но каждая поступающая единица или партия обладает уникальным набором характеристик (цвет, тип сенсора, наличие дополнительных кнопок). При этом бизнес-логика требует, чтобы в справочнике Номенклатура не создавались сотни дублирующих записей, а менеджер мог мгновенно получить остатки в разрезе конкретных свойств. Рассмотрим, как решить эту задачу в конфигурациях, подобных «Управление торговым предприятием» (УТП) или «Управление производственным предприятием» (УПП).
Если мы будем создавать новую позицию в справочнике Номенклатура для каждой вариации свойств, это приведет к лавинообразному росту базы данных и сделает невозможным адекватный анализ продаж по модели товара. С другой стороны, хранение всех свойств простым текстовым списком в комментарии документа не позволит системе «видеть» эти данные в регистрах накопления и фильтровать по ним остатки. Проанализируем основные архитектурные подходы для решения этой задачи.
Это стандартный и наиболее рекомендуемый путь в системе 1С. Характеристики позволяют добавить дополнительное измерение в регистры накопления (такие как ТоварыНаСкладах или ПартииТоваровНаСкладах), не затрагивая основной справочник номенклатуры.
Разберем алгоритм действий:
Преимущество: В регистрах накопления остатки будут храниться в разрезе комбинации Номенклатура + Характеристика. Менеджер в любом стандартном отчете (например, «Ведомость по товарам на складах») сможет выставить фильтр по конкретному свойству характеристики, так как система умеет «пробрасывать» свойства характеристик в отчеты через механизм СКД.
Если свойства товаров настолько уникальны, что практически каждая единица товара отличается от другой (например, индивидуальный дизайн или специфическая комплектация каждой поставки), стоит рассмотреть механизм Серий. В конфигурациях на обычных формах (УТП, УПП, УТ 10.3) серия — это объект, который может содержать в себе не только серийный номер, но и произвольный набор свойств.
Проанализируем преимущества этого подхода:
СерияНоменклатуры.СерииНоменклатуры дополнительные сведения через ПланВидовХарактеристик.СвойстваОбъектов.Пример кода для программного поиска остатков с учетом свойств через серии:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура,
| ТоварыНаСкладахОстатки.СерияНоменклатуры,
| ТоварыНаСкладахОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки
|ГДЕ
| ТоварыНаСкладахОстатки.СерияНоменклатуры.Цвет = &НужныйЦвет";
Запрос.УстановитьПараметр("Период", ТекущаяДата());
Запрос.УстановитьПараметр("НужныйЦвет", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Красный"));
Результат = Запрос.Выполнить();
Рассмотрим ситуацию, когда количество свойств «вагон», и они не предопределены заранее. В этом случае оптимально использовать серийные номера как уникальные идентификаторы каждой физической единицы и Регистр сведений «Значения свойств объектов» для хранения их параметров.
Посмотрим, как это работает на практике:
Этот метод позволяет избежать раздувания справочника характеристик, если комбинации свойств никогда не повторяются. Выясним причину выбора этого метода: он идеален для товаров с глубокой индивидуализацией (ювелирные изделия, сложная электроника, авторские работы).
При хранении большого количества уникальных свойств важно помнить о производительности. Если мы решим записывать свойства в виде строки в регистр накопления (например, через JSON или простое перечисление в комментарии), мы потеряем возможность быстрого поиска. Индексация строковых полей большой длины невозможна.
Поэтому рекомендуем придерживаться следующих правил:
Характеристика проиндексировано.Подводя итог, для конфигурации «Управление торговым предприятием» наиболее сбалансированным решением будет использование Характеристик Номенклатуры. Если же менеджеру требуется видеть в приходе именно 100 разных записей для визуального контроля каждой «мышки», следует использовать механизм Серий или Серийных номеров в сочетании с дополнительными свойствами объектов. Это обеспечит и единство аналитики по номенклатуре, и требуемую детализацию в складских остатках.