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