При работе с заказами в Управление торговлей 11 часто возникает потребность видеть суммарный вес товаров непосредственно в интерфейсе документа. Это критически важно для расчета стоимости логистики и выбора транспорта. Давайте разберем, как подойти к этой задаче, учитывая архитектуру типовой конфигурации.
Прежде чем приступать к доработкам, проанализируем, как система хранит данные. В УТ 11 реализован функционал Вес и объем товара. Убедитесь, что в разделе НСИ и администрирование — Продажи установлена соответствующая опция. После этого в карточке Номенклатура становится доступным поле Вес (нетто). Важно понимать, что система хранит вес единицы товара, а не итоговое значение для конкретной строки заказа.
Самый простой и безопасный способ, не затрагивающий структуру конфигурации (что важно для облачных баз), — это создание внешней печатной формы. Если вес вам нужен для накладной или транспортного листа, а не для оперативной работы менеджера в окне заказа, этот метод идеален.
Разберем алгоритм действий:
Заказ клиента.Товары.Справочник.Номенклатура для получения веса.Вес = Количество * ВесНоменклатуры.Этот подход позволяет избежать проблем при обновлении конфигурации, так как внешняя форма никак не меняет типовой код или метаданные.
Если же бизнес-процесс требует видеть вес непосредственно в табличной части Товары, вам потребуется Расширение. Рассмотрим подробный план реализации:
Заказ клиента.Товары добавьте новый реквизит ВесСправочно (тип Число).ПриИзменении для реквизита Количество и Номенклатура.Пример логики для кода в расширении:
// В обработчике ПриИзменении количества
Процедура ТоварыКоличествоПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
Если ЗначениеЗаполнено(СтрокаТабличнойЧасти.Номенклатура) Тогда
// Получаем вес из номенклатуры или упаковки
ВесЕдиницы = ПолучитьВесТовара(СтрокаТабличнойЧасти.Номенклатура, СтрокаТабличнойЧасти.Упаковка);
СтрокаТабличнойЧасти.ВесСправочно = СтрокаТабличнойЧасти.Количество * ВесЕдиницы;
КонецЕсли;
КонецПроцедуры
При расчете веса всегда учитывайте, что в УТ 11 вес зависит от упаковки. Если товар продается коробками, система должна брать коэффициент веса именно из записи Справочник.УпаковкиЕдиницыИзмерения. Используйте типовые функции общего назначения, такие как НоменклатураКлиентСервер.ПолучитьВес, чтобы корректно извлекать данные с учетом выбранной упаковки.
Часто задачу можно решить без модификации документов вообще. Если менеджеру нужно видеть вес для принятия решения, создайте вариант отчета на основе Ведомости по товарам на складах. Добавьте в запрос отчета вычисляемое поле, где будет произведено умножение количества на вес. Это позволит получать актуальные данные в любой момент времени без нагрузки на основной документ Заказ клиента.
Заключение: для работы в облаке рекомендуем использовать внешние печатные формы. Если же без колонки в табличной части не обойтись — применяйте Расширение с тщательной обработкой событий изменения количества и выбора упаковки.