При оформлении документов продажи (например, «Заказ клиента» или «Реализация товаров и услуг») пользователи часто сталкиваются с ситуацией: в открывшейся форме подбора номенклатуры колонка Цена остается пустой либо содержит нули. При этом при вызове контекстного меню правой кнопкой мыши по команде Цены программа успешно открывает список и показывает актуальные значения. Выясним причину такого поведения системы и разберем штатные и программные способы решения этой задачи.
Если открыть форму подбора в режиме «Конфигуратор», в тексте запроса динамического списка можно увидеть следующие строки:
ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка) КАК ВидЦены,
0 КАК Цена
Многие разработчики ошибочно принимают эту конструкцию за недоработку конфигурации и пытаются исправить ее прямым соединением со срезом последних регистра сведений. Однако проанализируем архитектуру типовых решений линейки 1С:Управление торговлей: такое решение заложено разработчиками платформы ради оптимизации производительности.
Рассмотрим, как именно механизм подбора работает изнутри:
Справочник.Номенклатура с виртуальной таблицей РегистрСведений.ЦеныНоменклатуры.СрезПоследних напрямую в динамическом списке, СУБД будет выполнять тяжелое соединение при каждом скроллинге, поиске и наложении отборов. При десятках тысяч позиций номенклатуры это приведет к серьезным зависаниям интерфейса.ПриПолученииДанныхНаСервере. Система считывает цены только для тех строк, которые физически отображаются на экране пользователя в данный момент.Для того чтобы колонка с ценой заполнялась автоматически без изменения типовой конфигурации, необходимо обеспечить передачу вида цены из исходного документа в форму подбора. В конфигурации 1С:Управление торговлей основным инструментом для этого служат Соглашения с клиентами.
Разберем по шагам, как настроить систему:
Справочник.ВидыЦен.После создания соглашения при выборе контрагента в новом заказе или реализации данное соглашение подставится автоматически. Вместе с ним в документ подтянется вид цены, который будет передан в форму подбора. В результате колонка Цена начнет заполняться для всех видимых позиций номенклатуры.
Рассмотрим подробнее последствия внедрения соглашения, в котором заполнены только базовые реквизиты:
Если соглашение настроено или в документе выбран вид цены, но колонка в подборе по-прежнему пустая, проанализируем следующие параметры системы:
Справочник.ВидыЦен. На вкладке основных настроек должен быть включен признак Использовать при продаже клиентам (или «При продаже клиентам»).Установка цен номенклатуры по данному виду цены. Дата документа установки цен должна быть меньше или равна дате оформляемого документа продажи. Также должна совпадать валюта установленной цены и документа.РежимПодбораБезСуммовыхПараметров = Истина, который намеренно отключает видимость колонок стоимости для менеджера.В попытках быстро решить задачу разработчики иногда прибегают к правке исходного запроса динамического списка формы подбора, пытаясь выполнить соединение с таблицей РегистрСведений.ЦеныНоменклатуры.СрезПоследних.
Разберем, к каким проблемам приводит такое вмешательство:
1С:Предприятие 8.3 при листании больших списков товаров приводит к избыточной нагрузке на сервер баз данных и замедлению работы пользователей.Таким образом, правильный путь решения проблемы отсутствия цен в подборе заключается в настройке цепочки Вид цены → Типовое соглашение → Документ продажи, что гарантирует стабильную и быструю работу учетной системы.