Почему в 1С:Управление торговлей цены на товары увеличиваются в 1000 раз?

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

Ситуация, когда цена товара в документах или регистрах вдруг становится в 1000 раз больше, является классической проблемой при настройке учета в 1С:Управление торговлей 11.5. Чаще всего это происходит из-за конфликта между базовыми единицами измерения, упаковками и настройками видов цен. Давайте вместе разберем, где искать причину этого сбоя и как привести данные в порядок.

Шаг 1. Проверяем настройки коэффициентов пересчета

Первое, что необходимо сделать — это заглянуть в карточку номенклатуры. В системе 1С цена всегда привязана к определенной единице измерения. Если у вас в карточке товара задана Упаковка с коэффициентом, например, 1000 относительно базовой единицы (например, 1 грамм = 1 базовая единица, а упаковка = 1000 грамм), то система может автоматически пересчитывать цену, если в документе Установка цен номенклатуры выбрана не та единица, которую ожидает регистр.

Рассмотрим порядок действий:

  1. Откройте справочник Номенклатура.
  2. Перейдите в раздел Упаковки для конкретного товара.
  3. Проверьте, какие значения коэффициентов там установлены. Если вы видите коэффициент 1000, убедитесь, что именно эта упаковка должна использоваться в документе установки цен.

Шаг 2. Анализируем документ «Установка цен номенклатуры»

Почему в одном случае цена корректная, а в другом — в 1000 раз больше? Вероятно, в документе Установка цен номенклатуры для разных строк или разных видов цен подставляются разные единицы измерения. Обратите внимание на колонку Упаковка в табличной части документа.

Если в регистре Цены номенклатуры для одной записи указана упаковка, а для другой — нет (пустое значение означает базовую единицу), программа будет применять разные математические алгоритмы. Проанализируйте движение по регистру: почему в Закупке единица не заполнена, а в Рознице система пытается привязать кг или упаковки?

Шаг 3. Настройка вида цен и правил использования упаковок

В 1С УТ 11 Вид цены — это мощный инструмент. В его настройках есть важный флаг Использовать упаковки. Если для вида цен «Закупка» этот флаг настроен иначе, чем для «Розницы», это объясняет, почему разные пользователи (директор и кладовщик) видят разную картину.

Для исправления ситуации выполните следующее:

  1. Зайдите в раздел CRM и маркетинг — Настройки и справочники — Виды цен.
  2. Откройте используемые виды цен и проверьте настройки Использовать упаковки.
  3. Убедитесь, что логика расчета (по формуле или вручную) не конфликтует с единицами измерения, выбранными в карточке номенклатуры.

Шаг 4. Анализ работы расширений и внешних систем

Поскольку в вашей конфигурации используются расширения (например, Списание по виду цен или Сумма долга), существует вероятность, что программный код в расширении принудительно пересчитывает цену при записи документа. Если расширение «не знает» о тонкостях коэффициентов пересчета, оно может выдавать ошибочный результат.

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

Как найти источник проблемы через отладку?

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


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

Проверьте, не попадает ли в параметр Упаковка значение с коэффициентом 1000. Если вы обнаружили несоответствие, попробуйте перевыбрать упаковку непосредственно в строке документа Установка цен номенклатуры, чтобы сбросить ошибочный коэффициент, подтянутый системой автоматически.

Помните: чаще всего корень проблемы кроется в том, что система «думает», будто цена установлена за упаковку, хотя вы вводили ее как цену за базовую единицу (или наоборот). Приведите все настройки единиц измерения к единому стандарту для всех видов цен, чтобы исключить подобные сюрпризы в будущем.

← На главную