Упаковка по умолчанию в УТ 11.5
Клиент хотел простого — чтобы при добавлении товара подбиралась упаковка по умолчанию.
Там у каждого товара только одна упаковка, своя. Вот ее и хочется подставлять.
Но подставляется всегда единица штуки, т.е. по сути пустая единица:
Единицу приходится выбирать вручную. Лишняя работа для оператора.
В процедуре менеджера упаковок есть функция Справочники.УпаковкиЕдиницыИзмерения.ПолучитьДанныеВыбора(ПараметрыВыбораУпаковки):
Ориентировался на нее.
В итоге написал небольшой код. Клиент завел себе в номенклатуре доп. поле Б_СтандартнаяУпаковкаЕдиниц (сначала это был доп.реквизит), где хранит кратность упаковки.
Сделал расширение в ОбработкаТабличнойЧастиСервер:
&Вместо("ОбработатьСтрокуТЧ") Процедура дор_ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения) ПродолжитьВызов(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения); Если СтруктураДействий.Свойство("ПроверитьЗаполнитьУпаковкуПоВладельцу") ИЛИ СтруктураДействий.Свойство("ПриИзмененииТипаНоменклатуры") Тогда Если Не ЗначениеЗаполнено(ТекущаяСтрока.Упаковка) Тогда //Из номенклатура - модуль менеджера - ХарактеристикаИУпаковкаПринадлежатВладельцу Номенклатура = ТекущаяСтрока.Номенклатура; ПараметрыВыбораУпаковки = Новый Структура(); ПараметрыВыбораУпаковки.Вставить("Номенклатура", Номенклатура); ДанныеВыбораУпаковок = Справочники.УпаковкиЕдиницыИзмерения.ПолучитьДанныеВыбора(ПараметрыВыбораУпаковки); Для Каждого ЭлементСпискаЗначений Из ДанныеВыбораУпаковок Цикл Если ТипЗнч(ЭлементСпискаЗначений.Значение) = Тип("Структура") И ТипЗнч(ЭлементСпискаЗначений.Значение.Значение) = Тип("СправочникСсылка.УпаковкиЕдиницыИзмерения") И Номенклатура.Б_СтандартнаяУпаковкаЕдиниц <> 0 И (ЭлементСпискаЗначений.Значение.Значение.Числитель = Номенклатура.Б_СтандартнаяУпаковкаЕдиниц ИЛИ ЭлементСпискаЗначений.Значение.Значение.Вес = Номенклатура.Б_СтандартнаяУпаковкаЕдиниц) Тогда ТекущаяСтрока.Упаковка = ЭлементСпискаЗначений.Значение.Значение; //Пересчитываем количество в базовых единицах ТекущаяСтрока.Количество = ТекущаяСтрока.КоличествоУпаковок * Номенклатура.Б_СтандартнаяУпаковкаЕдиниц; Прервать; КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; КонецПроцедуры
Вот тут не знаю, может быть можно было как-то и без программирования решить проблему, все же это УТ, где должны быть широкие возможности выбора единиц, но пришлось запрограммировать.
Среда: УТ 11.5.20.75 Объем: 1.2 час
В процедуре менеджера упаковок есть функция Справочники.УпаковкиЕдиницыИзмерения.ПолучитьДанныеВыбора
Ты когда тыришь код, хоть проверяй иногда
не понял, о чем ты?
А я не удивлён