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

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

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

Архитектура динамического списка подбора: почему в запросе указано 0 КАК Цена

Если открыть форму подбора в режиме «Конфигуратор», в тексте запроса динамического списка можно увидеть следующие строки:


ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка) КАК ВидЦены,
0 КАК Цена

Многие разработчики ошибочно принимают эту конструкцию за недоработку конфигурации и пытаются исправить ее прямым соединением со срезом последних регистра сведений. Однако проанализируем архитектуру типовых решений линейки 1С:Управление торговлей: такое решение заложено разработчиками платформы ради оптимизации производительности.

Рассмотрим, как именно механизм подбора работает изнутри:

  1. Отказ от тяжелых соединений в запросе: если связать большой справочник Справочник.Номенклатура с виртуальной таблицей РегистрСведений.ЦеныНоменклатуры.СрезПоследних напрямую в динамическом списке, СУБД будет выполнять тяжелое соединение при каждом скроллинге, поиске и наложении отборов. При десятках тысяч позиций номенклатуры это приведет к серьезным зависаниям интерфейса.
  2. Порционная выборка данных: заполнение цен и остатков выполняется на сервере в специальном обработчике динамического списка ПриПолученииДанныхНаСервере. Система считывает цены только для тех строк, которые физически отображаются на экране пользователя в данный момент.
  3. Зависимость от контекста документа: процедура расчета цен запускается исключительно тогда, когда в форму подбора из документа передан конкретный контекстный вид цены. Если контекст не определен, механизм динамического дозаполнения цен просто не срабатывает, хотя форма истории цен по правой кнопке мыши продолжает работать штатно.

Штатное решение: настройка типовых соглашений

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

Разберем по шагам, как настроить систему:

  1. Перейдем в раздел CRM и маркетинг и выберем пункт Типовые соглашения с клиентами (или Индивидуальные соглашения с клиентами).
  2. Создадим новое типовое соглашение. В шапке укажем понятное наименование (например, «Основное соглашение (Оптовые цены)»).
  3. На вкладке Условия продаж заполним поле Вид цен, выбрав нужный элемент из справочника Справочник.ВидыЦен.
  4. Установим статус соглашения Действует и запишем документ.

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

На что влияет создание соглашения только с наименованием и видом цены

Рассмотрим подробнее последствия внедрения соглашения, в котором заполнены только базовые реквизиты:

  1. Минимальное влияние на ограничения: если в соглашении не настраивать графики платежей, этапы оплаты, сегменты партнеров, лимиты задолженности и сроки поставки, система не будет накладывать жестких финансовых или логистических блокировок при проведении документов. Менеджеры смогут оформлять продажи в свободном режиме.
  2. Автоматическая фиксация параметров: обратим внимание на параметры Валюта и признак Цена включает НДС. Они являются обязательными в соглашении и будут автоматически транслироваться во все создаваемые документы продажи.
  3. Единая ценовая политика: если типовое соглашение сделано доступным для всех партнеров без сегментации, всем новым клиентам по умолчанию будет навязываться именно этот вид цен. Если для части контрагентов требуются другие условия (например, розничные или дилерские цены), для них потребуется настроить индивидуальные соглашения.

Дополнительные проверки, если цена все еще не отображается

Если соглашение настроено или в документе выбран вид цены, но колонка в подборе по-прежнему пустая, проанализируем следующие параметры системы:

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

Почему не стоит переписывать запрос динамического списка вручную

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

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

  1. Потеря адаптивности: жестко прописав конкретный вид цены в тексте запроса или параметрах динамического списка, мы лишаем форму возможности динамически подстраиваться под документ. Если менеджер изменит соглашение с «Оптового» на «Мелкооптовое», в подборе продолжат отображаться старые данные либо форма потребует сложного переопределения параметров через модуль.
  2. Падение скорости работы СУБД: срез последних в подзапросах динамических списков на платформах уровня 1С:Предприятие 8.3 при листании больших списков товаров приводит к избыточной нагрузке на сервер баз данных и замедлению работы пользователей.

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

← На главную