Где в 1С:УТ 11.4 найти обработку подбора товаров для документов продажи?

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

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

Поиск объекта в конфигураторе

Для начала выясним точное техническое название основного объекта. В отличие от старых редакций (например, УТ 10.3), где подбор мог быть частью формы документа, в УТ 11.4 это самостоятельный объект. Рассмотрим путь к нему:

  1. Откроем конфигуратор и развернем ветку Обработки.
  2. Найдем объект с именем ПодборТоваровВДокументПродажи.

Важно: Не путайте её с общей обработкой подбора номенклатуры. Для документов продажи используется именно специализированная обработка, учитывающая специфику соглашений с клиентами, видов цен и складских остатков. Основная визуальная логика сосредоточена в форме ОсновнаяФорма этого объекта.

Взаимодействие с общими модулями

Проанализируем структуру кода. Логика подбора в современных конфигурациях на базе ERP-платформы (к которым относится и УТ 11) сильно вынесена за пределы самой обработки. Это сделано для унификации кода. Если мы планируем изменять алгоритмы расчета цен или остатков, нам необходимо изучить следующие общие модули:

Механизм «Корзины» и передача данных в документ

Выясним, как данные попадают из формы подбора в документ. В УТ 11.4 реализована концепция временного хранилища, называемого «Корзиной». Когда пользователь выбирает товар, он не попадает в документ мгновенно. Сначала вызывается процедура добавления в корзину.

Рассмотрим пример того, как это выглядит на программном уровне. Обработка подбора обычно открывается с использованием механизма ОписаниеОповещения. Это позволяет системе «понимать», куда вернуть данные после закрытия формы подбора.

Проанализируем примерный фрагмент кода, который отвечает за обработку выбора:


// В форме документа (например, Реализация товаров и услуг)
&НаКлиенте
Процедура ПодборТоваров(Команда)
    
    ПараметрыПодбора = Новый Структура;
    ПараметрыПодбора.Вставить("Склад", Объект.Склад);
    ПараметрыПодбора.Вставить("Соглашение", Объект.Соглашение);
    ПараметрыПодбора.Вставить("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС);
    
    ОповещениеОЗавершении = Новый ОписаниеОповещения("ОбработатьВыборПодбора", ЭтотОбъект);
    
    ОткрытьФорму("Обработка.ПодборТоваровВДокументПродажи.Форма.ОсновнаяФорма", 
                 ПараметрыПодбора, 
                 ЭтотОбъект, 
                 УникальныйИдентификатор, , , 
                 ОповещениеОЗавершении);
                 
КонецПроцедуры

Когда в форме подбора нажимается кнопка «Перенести в документ», данные из таблицы корзины упаковываются и передаются в процедуру ОбработатьВыборПодбора в модуле формы документа. В этот момент происходит окончательное заполнение табличной части Товары.

Отображение остатков и цен

Одной из ключевых функций ПодборТоваровВДокументПродажи является динамический расчет остатков. Посмотрим, какие факторы на это влияют:

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

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

Рекомендации по доработке (Использование расширений)

Поскольку мы работаем с типовой конфигурацией УТ 11.4, крайне не рекомендуется вносить изменения напрямую в основную конфигурацию. Разберем правильный алгоритм модификации через расширения:

Для корректировки логики подбора создайте расширение и используйте аннотации &Вместо или &После для процедур обработки выбора. Например, если вам нужно добавить колонку с артикулом производителя в корзину, вам придется расширить как саму форму обработки (добавить элемент на форму), так и процедуру ЗаполнитьКорзину.

Пример использования расширения для изменения логики:


&Вместо("ОбработатьВыборТовара")
Процедура Расш1_ОбработатьВыборТовара(ВыбранныйТовар)
    // Ваша собственная логика обработки выбора товара
    // Например, дополнительная проверка условий продажи
    ПродолжитьВызов(ВыбранныйТовар);
КонецПроцедуры

Интеграция со штрихкодами

Стоит отметить, что форма подбора тесно связана с подключаемым оборудованием. Внутри формы ПодборТоваровВДокументПродажи реализованы обработчики событий сканирования. Если сканер настроен корректно, при считывании кода обработка автоматически находит номенклатуру, определяет её характеристику и добавляет позицию в список подобранных товаров. За этот функционал отвечают процедуры, взаимодействующие с БПО (Библиотекой подключаемого оборудования).

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

← На главную