В торговых компаниях часто возникает ситуация, когда один и тот же товар прилетает от разных поставщиков по разной закупочной стоимости. Соответственно, возникает желание установить на эти позиции разные розничные цены и отобразить их в общем прайс-листе. Однако при попытке добавить одну и ту же позицию номенклатуры с разными ценами в документ Установка цен номенклатуры программа выдает ошибку записи. Разберем подробнее, почему система так себя ведет и как решить эту задачу с помощью штатных и доработанных механизмов 1С.
Выясним причину такого поведения системы. Хранение цен в 1С устроено через периодический регистр сведений Цены номенклатуры. Уникальность каждой записи в этом регистре строго определяется набором его измерений:
Так как регистр является периодическим, платформой физически запрещено хранить две разные записи с идентичным набором измерений на одну и ту же дату (в рамках одного периода). При формировании документов реализации или отчетов система выполняет запрос Срез последних и должна однозначно получить ровно одну актуальную цену для комбинации этих измерений.
Рассмотрим наиболее корректный и штатный вариант решения проблемы без переписывания конфигурации. Повторяющиеся записи цен на одну дату можно «разрезать», если активировать и использовать измерение Характеристика номенклатуры.
Разберем алгоритм действий по шагам:
Характеристики номенклатуры создадим нужные варианты (например, «Поставка от Поставщика А» и «Поставка от Поставщика Б» или с привязкой к партии/состоянию товара).Установка цен номенклатуры укажем одну и ту же номенклатуру, но выберем разные характеристики. В этом случае платформенное ограничение не сработает, так как набор измерений регистра сведений будет уникальным.Если задача заключается только в отслеживании цен поставщиков, важно разделять закупочные и продажные цены:
Цены номенклатуры контрагентов. Измерением в нем выступает сам контрагент, что позволяет хранить индивидуальные закупочные цены без конфликтов.Установка цен номенклатуры каждая цена будет назначена для своего типа.В некоторых отраслях (например, при продаже автозапчастей или цветов) важно выводить в один прайс-лист физические остатки товаров с ценами, привязанными к конкретным партиям поступления.
Для реализации такой схемы стандартный отчет прайс-листа не подойдет, так как он берёт данные напрямую из регистра Цены номенклатуры. Решением становится разработка внешней обработки или отчета, который собирает данные из регистра накопления Партии товаров на складах (или Товары на складах). Отчет видит каждую поступившую партию товара с ее закупочной стоимостью и рассчитывает итоговую цену продажи прямо в моменте формирования прайс-листа.
Для конфигураций, находящихся на обслуживании у программистов, возможна доработка системы: добавление в регистр сведений Цены номенклатуры нового измерения, например, Серия или Партия. Однако данный метод требует существенных изменений в логике проведения документов продаж и подбора товаров менеджерами, поэтому использовать его следует с осторожностью.