Как установить разные розничные цены для одного товара по разным партиям в 1С:Бухгалтерия 3.0

Бухгалтер 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет Торговля и дистрибуция
← На главную

В практике розничной торговли часто возникает ситуация, когда одна и та же номенклатурная позиция поступает по разным ценам, и организация хочет продавать остатки старой партии по прежней цене, а новые поступления — по новой. В специализированных торговых решениях, таких как 1С:Розница или 1С:Управление торговлей, это реализуется через серии или характеристики. Однако пользователи 1С:Бухгалтерия предприятия 3.0 (БП 3.0) часто сталкиваются с тем, что программа не позволяет «разделить» цену внутри одной карточки товара. Разберем подробно, почему так происходит и какие существуют методы решения этой задачи.

Архитектурные ограничения 1С:Бухгалтерии 3.0

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

  1. Регистр сведений Цены номенклатуры: Этот регистр отвечает за хранение цен. Если мы откроем его структуру, то увидим, что основными измерениями являются Номенклатура и ТипЦен. Измерение Партия или Серия в типовой конфигурации отсутствует. Это означает, что на конкретную дату система может хранить только одну актуальную цену для выбранного типа цен (например, «Розничная») для каждой карточки товара.
  2. Механизм счета 42 (Торговая наценка): При ведении учета в розничных ценах на счете 41.11 (Товары в розничной торговле по продажной стоимости) используется вспомогательный счет 42. Особенность этого метода в том, что стоимость товара на складе всегда должна соответствовать его текущей розничной цене. Если мы меняем цену документом Установка цен номенклатуры и затем проводим Переоценка товаров в рознице, программа обязана переоценить весь остаток данного товара на конкретном складе. Хранить на одном розничном складе один и тот же товар с разными ценниками по счету 42 методологически невозможно.
  3. Понятие партии в БП: Выясним, что такое «партия» в бухгалтерии. Это технический разрез на счетах учета (субконто), который создается документом поступления для корректного расчета себестоимости по методу FIFO. Этот разрез живет в бухгалтерских регистрах (Хозрасчетный), но никак не связан с регистром цен.

Вариант 1: Использование разных карточек номенклатуры

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

Например:

Плюсы:

Минусы:

Вариант 2: Виртуальные склады

Посмотрим на ситуацию под другим углом. Если архитектура не позволяет хранить две цены на одном складе, мы можем создать несколько «виртуальных» складов. Например, «Основной склад (старые цены)» и «Основной склад (новые цены)».

Разберем алгоритм работы в этом случае:

  1. Новое поступление приходуется на «Склад новых цен».
  2. Для этого склада устанавливается свой тип цены или выполняется отдельная переоценка.
  3. При продаже менеджер выбирает, с какого склада списать товар.

Важное ограничение: Этот метод практически неприменим для розничных магазинов с самообслуживанием, где товары из разных партий лежат вперемешку на одной полке. Инвентаризация в таких условиях превращается в кошмар для бухгалтера.

Вариант 3: Использование характеристик и штрихкодов

В некоторых версиях 1С:Бухгалтерии (или при использовании расширений) можно активировать учет по характеристикам. Теоретически, связка характеристика + штрихкод могла бы решить проблему. Однако проанализируем реальность: документ Установка цен номенклатуры в типовой БП 3.0 не содержит колонки для выбора характеристики. Цена ставится на всю карточку целиком. Даже если вы добавите штрихкод к характеристике, при подборе в документ Реализация или Чек система все равно будет обращаться к регистру сведений Цены номенклатуры, где нет разреза по характеристикам.

Специфика учета в аптеках (ЖНВЛП)

Особое внимание уделим аптечному бизнесу, о котором упоминалось в обсуждении. Для аптек вопрос партионных цен критичен из-за контроля наценок на жизненно необходимые и важные лекарственные препараты (ЖНВЛП).

Выясним причины, почему БП 3.0 не подходит для этих целей:

Для таких задач настоятельно рекомендуется использовать специализированные решения, такие как 1С:Розница. Аптека или 1С:Управление аптечной сетью. Эти программы позволяют регистрировать цены в разрезе серий, что является единственно верным решением для фармацевтики.

Техническое решение: расширение конфигурации

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

  1. Модификация регистра: Необходимо добавить в регистр сведений Цены номенклатуры новое измерение — Партия (ссылка на документ поступления или справочник серий).
  2. Изменение документов: Доработка документов Установка цен номенклатуры и Поступление (акты, накладные), чтобы они могли записывать цену с привязкой к конкретному документу или серии.
  3. Перехват функций подбора: Переписывание программного модуля Ценообразование, чтобы при выборе товара в чеке или реализации система искала цену не только по номенклатуре, но и по конкретной партии остатка.

Пример логики поиска цены (схематично):


Функция ПолучитьЦенуПоПартии(Товар, Партия, ТипЦен, Дата)
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |	ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
    |ИЗ
    |	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, Номенклатура = &Товар И ТипЦен = &ТипЦен И Партия = &Партия) КАК ЦеныНоменклатурыСрезПоследних";
    
    Запрос.УстановитьПараметр("Дата", Дата);
    // ... установка остальных параметров
    // Возврат значения цены
КонецФункции

Важно: Такое вмешательство существенно усложнит обновление конфигурации и может привести к ошибкам в расчете себестоимости, если не учесть влияние на регистр Хозрасчетный.

Выводы и рекомендации

Подведем итоги нашего анализа ситуации в 1С:Бухгалтерия 3.0:

Таким образом, мы выяснили, что штатного способа вести партионный учет розничных цен в 1С:Бухгалтерия 3.0 не существует в силу архитектуры программы, ориентированной на суммовой учет в рознице. Любые попытки реализовать это без смены конфигурации или серьезного программирования будут являться компромиссными решениями.

← На главную