Почему в заказе покупателя подтягивается старая цена и как партионный учет влияет на продажи в УТ 2.3

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

При работе в конфигурации «Управление торговлей для Украины», редакция 2.3 (которая является архитектурным аналогом российской «УТ 10.3»), пользователи часто сталкиваются с путаницей между двумя независимыми механизмами: партионным учетом (ФИФО/ЛИФО) и ценообразованием. Разберем подробно, почему при наличии нового поступления товара по более высокой цене система может продолжать подставлять старую цену в Заказ покупателя, и как правильно настроить систему для корректной работы.

Разграничение понятий: Себестоимость vs Цена продажи

Проанализируем ситуацию, описанную автором темы. Основная ошибка заключается в ожидании того, что стратегия списания партий (ФИФО) должна автоматически влиять на цену, которую видит покупатель в заказе. Рассмотрим подробнее, как эти механизмы работают в 1С:

  1. Партионный учет (ФИФО): Этот механизм отвечает исключительно за себестоимость списания. Когда вы проводите документ Реализация товаров и услуг, система смотрит на настройки (например, «по хронологии — ФИФО») и списывает ту партию, которая пришла первой. В примере автора: сначала спишется товар по 1000, затем по 1500. Это отразится в регистре накопления Партии товаров на складах и повлияет на расчет прибыли, но не на цену продажи в документе.
  2. Ценообразование: Цена, которая автоматически «подтягивается» в Заказ покупателя, берется из периодического регистра сведений Цены номенклатуры. Записи в этот регистр вносятся документом Установка цен номенклатуры. Система ищет последнюю актуальную запись на дату и время документа по конкретному Типу цен.

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

Причина 1: Хронология и время документов

Выясним, почему дата документа играет ключевую роль. В 1С 8.x данные из периодических регистров сведений (где хранятся цены) извлекаются методом «среза последних». Если документ Установка цен номенклатуры имеет ту же дату и время, что и Заказ покупателя, может возникнуть коллизия.

Рассмотрим по шагам, как это проверить:

  1. Посмотрите на точное время документа Установка цен номенклатуры. Если он создан в 12:00:00, а Заказ покупателя — в 11:59:59, то заказ «не увидит» новую цену.
  2. Проанализируйте ситуацию, когда документы созданы в одну и ту же секунду. В этом случае результат может зависеть от внутреннего идентификатора ссылки документа.

Рекомендация: Всегда устанавливайте время для документов Установка цен номенклатуры на 00:00:00 (начало дня). Это гарантирует, что любая торговая операция в течение этого дня будет видеть актуальные цены.

Причина 2: Соответствие типов цен

Посмотрим на настройки договора с контрагентом. В 1С:УТ 2.3 цена в заказ подтягивается не просто «последняя из справочника», а та, которая соответствует Типу цен, указанному в документе.

Разберем типичный сценарий ошибки:

Чтобы проверить это, зайдите в Заказ покупателя, перейдите на вкладку «Цены и валюта» и убедитесь, какой именно тип цен там выбран. Затем проверьте, есть ли документ установки именно для этого типа.

Причина 3: Обновление цен в уже открытых документах

Важно понимать, что 1С не меняет цены в уже созданных или открытых документах «на лету», если вы изменили их в справочнике. Если вы сначала создали Заказ покупателя, а потом (не закрывая его) провели Установку цен, цена в заказе сама не обновится.

Для принудительного обновления выполните следующие действия:

  1. В документе Заказ покупателя нажмите кнопку «Цены и валюта» (находится в верхней части формы).
  2. В появившемся окне нажмите «Пересчитать цены по типу цен».
  3. Нажмите «ОК», и система актуализирует данные в табличной части согласно регистру цен.

Технический анализ: Как система получает цену (для программистов)

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

Пример логики запроса, который отрабатывает «под капотом»:


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

Запрос.УстановитьПараметр("ДатаДокумента", Объект.Дата);
Запрос.УстановитьПараметр("Номенклатура", ТекущаяСтрока.Номенклатура);
Запрос.УстановитьПараметр("ТипЦен", Объект.ТипЦен);

Обратите внимание на параметр &ДатаДокумента. Если документ еще не записан в базу, его дата может быть неопределена или пуста, что приведет к получению самой последней цены в системе (на текущий момент), либо к ошибке. Поэтому совет из обсуждения — сначала записать пустой документ, а потом подбирать товар — является крайне полезным.

Особенности розничных складов

Хотя в обсуждении указано, что склад оптовый, разберем ситуацию для розницы, так как это часто становится причиной вопросов. Если склад имеет вид «НТТ» (Неавтоматизированная торговая точка) или «Розница», то для изменения цен продажи недостаточно документа Установка цен номенклатуры. В этом случае необходимо формировать документ Переоценка товаров в рознице. Без него учетная цена на остатках склада не изменится, и продажи будут идти по старым ценам, зафиксированным в регистре Товары в рознице.

Резюме для исправления ситуации

Если вы столкнулись с тем, что цена подставляется неверно, проверьте следующие пункты:

Помните: партионный учет (ФИФО) управляет вашими затратами и прибылью (себестоимостью), а регистр цен управляет вашими доходами (ценой продажи). Это две параллельные рельсы, которые пересекаются только в отчете о валовой прибыли.

← На главную