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

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

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

Проанализируем историю изменения цен компании

Первым делом нам необходимо выяснить, какая цена является актуальной для системы на дату и время создания документа. То, что мы видим в «шапке» карточки товара, — это текущее значение, которое может не совпадать с историческими данными. Проверим это через стандартный интерфейс:

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

Помните, что если документ «Установка цен номенклатуры» был создан позже, чем документ реализации, то программа возьмет предыдущую актуальную цену. Убедимся, что дата установки цен строго меньше или равна дате реализации.

Разберем настройки Вида цены

Если с датами все в порядке, нам нужно выяснить, как именно рассчитывается вид цены Заводская. В 1С:УТ 11 цены могут быть не только статическими (введенными вручную), но и производными. Проанализируем настройки вида цены:

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

Настройка НДС: Выясним, установлен ли флажок Цена включает НДС в настройках вида цены и совпадает ли этот параметр с настройками в документе реализации или соглашении с клиентом. Если в виде цены НДС не включен, а в документе стоит галочка «Цена включает НДС», система автоматически добавит сумму налога к базовой стоимости, что приведет к увеличению цифры в строке.

Выясним влияние упаковок и единиц измерения

Одной из самых распространенных причин кратного расхождения цен является использование упаковок. Рассмотрим ситуацию: в карточке товара цена 119,06 установлена за 1 штуку (базовую единицу). Однако в документе реализации может быть выбрана упаковка (например, «Коробка»), в которой содержится 2 или более единиц товара.

Система 1С автоматически пересчитывает цену в документе по формуле: Цена за единицу * Коэффициент упаковки. Если коэффициент настроен некорректно или упаковка выбрана случайно, цена в реализации будет значительно отличаться от ожидаемой.

Проверим индивидуальные соглашения и условия продаж

В конфигурации «Управление торговлей 11» механизмы ценообразования тесно связаны с подсистемой маркетинга. Проанализируем, не действуют ли на сделку особые условия:

Анализ нетиповой конфигурации и программного кода

Если вышеуказанные действия не помогли, а ваша конфигурация является нетиповой (измененной программистами), причина почти наверняка кроется в кастомной логике. Рассмотрим, где именно стоит искать проблему в коде.

Скорее всего, была изменена процедура подбора цены при выборе номенклатуры в табличную часть. Программисту следует проверить следующие места:

1. Обработчик события ПриИзменении для поля Номенклатура или ВидЦены в форме документа реализации.

2. Общие модули, отвечающие за расчет цен (например, ЦенообразованиеВызовСервера или аналогичные в вашей версии).

Пример кода, который может переопределять стандартное поведение и который стоит поискать в модуле формы или расширении:


// Пример возможного переопределения цены в нетиповой базе
&НаСервере
Процедура ЗаполнитьЦенуПоСпецифическойЛогике(СтрокаТаблицы)
    // Если конфигурация доработана, здесь может быть запрос 
    // к кастомному регистру сведений или условие, 
    // которое подменяет цену 119,06 на 264,58
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ СпециальнаяЦена ИЗ РегистрСведений.ДополнительныеЦены ГДЕ Номенклатура = &Номенклатура";
    // ... логика получения значения ...
    СтрокаТаблицы.Цена = РезультатЗапроса; 
КонецПроцедуры

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

Резюме по решению проблемы

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

  1. Проверьте РегистрСведений.ЦеныНоменклатуры через отчет «Цены номенклатуры» или историю в карточке.
  2. Убедитесь, что Валюта документа и Валюта вида цены совпадают, иначе происходит пересчет по курсу.
  3. Проверьте настройки Упаковки в строке реализации.
  4. Если база доработана — используйте Отладчик, поставив точку останова в процедуре ОбработкаВыбора номенклатуры, чтобы проследить путь формирования переменной Цена.
← На главную