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

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

Автоматическая подстановка цен — это критически важный механизм для эффективной работы в Управлении торговлей. Когда система не подставляет цену после выбора Вида цены, процесс оформления документов замедляется, а риск возникновения ошибок возрастает. Давайте вместе проанализируем основные причины этого поведения и разберем пошаговый алгоритм их устранения.

Проверка актуальности цен на дату документа

Первое, что мы должны проанализировать — это соответствие даты документа Заказ клиента и периода действия цен. Система 1С работает по принципу среза последних данных на заданную дату. Если вы создали Установку цен номенклатуры, например, 5 марта, а документ Заказ клиента оформляете 4 марта, то система не найдет актуальную цену, так как на момент формирования заказа она еще не вступила в силу.

  1. Откройте документ Заказ клиента и посмотрите на дату документа.
  2. Перейдите в список документов Установка цен номенклатуры.
  3. Убедитесь, что дата документа Установка цен меньше или равна дате вашего Заказа клиента.

Анализ валютных различий

Часто встречающаяся проблема, возникающая после обмена данными или переноса справочников, — это задвоение элементов в справочнике Валюты. Система может использовать одну валюту для цены, а в документе, из-за настроек по умолчанию, подставляется другая валюта с аналогичным названием. Из-за этого несоответствия подстановка цены не срабатывает.

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

Настройки видов номенклатуры

В современных редакциях УТ (11.5 и выше) значительное влияние на поведение цен оказывают настройки в справочнике Виды номенклатуры. В частности, реквизит НастройкиКлючаЦенПоХарактеристике может быть не заполнен, что приводит к сбою механизмов подстановки.

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

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

Проблема целостности ссылочных данных

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

В подобной ситуации рекомендуем предпринять следующие шаги:

  1. Проверьте, видны ли цены в отчете Прайс-лист. Если отчет пуст, проблема однозначно в некорректной записи данных в регистр сведений Цены номенклатуры.
  2. Если данные перенесены некорректно, попробуйте создать новый Вид цены вручную и заново выполнить установку цен для тестовой номенклатуры.
  3. Если создание нового вида решает проблему, значит, старый объект содержит «битые» ссылки.

Проверка соглашений с клиентами

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

Всегда проверяйте настройки соглашения:

Техническая диагностика через отладчик

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

Пример логики, на которую стоит обратить внимание при отладке (условно):


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

Если после выполнения всех проверок цена по-прежнему не подставляется, попробуйте под пользователем с полными правами создать новую карточку товара и новую установку цен. Это поможет исключить влияние прав доступа RLS (ограничение прав на уровне записей), которые могут скрывать от вас данные о ценах, не выдавая при этом явной ошибки.

← На главную