Не показываются единицы в подборе товаров в расходную накладную. УНФ 3.0
Странная проблема — при подборе в расходную накладную единицы показываются не у всех товаров.
Случайно отладчиком сразу нашел место, где выводятся единицы в форме ФормаСписка номенклатуры:
При этом используется такой запрос:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения.Коэффициент, 1) КАК Коэффициент,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
ВЫБОР КОГДА ЦеныНоменклатурыСрезПоследних.ВалютаЦены <> ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
ТОГДА ЦеныНоменклатурыСрезПоследних.ВалютаЦены
ИНАЧЕ ЦеныНоменклатурыСрезПоследних.ВидЦен.ВалютаЦены
КОНЕЦ КАК ВалютаЦены,
ВЫБОР КОГДА ЦеныНоменклатурыСрезПоследних.ВалютаЦены <> ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
ТОГДА ЦеныНоменклатурыСрезПоследних.ВалютаЦены.СимвольноеПредставление
ИНАЧЕ ЦеныНоменклатурыСрезПоследних.ВидЦен.ВалютаЦены.СимвольноеПредставление
КОНЕЦ КАК ПредставлениеВалютаЦены
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаСреза,
ВидЦен = &ВидЦен
И Номенклатура В (&Ссылки)
И Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК ЦеныНоменклатурыСрезПоследних
Т.е. единица тянется из регистра «Цены номенклатуры». Но как ее туда подставить? В документе установки цен нет выбора единицы, в форме списка регистра цен тоже единица не показывается.
Для меня стало открытием, что этот регистр не подчинен регистратору. Хотя когда-то я это уже помнил.
В общем, мораль такова, что когда цена устанавливается вручную, то прописывается единица номенклатуры, хотя тоже выбрать ее негде.
В общем, единица цены — это какой-то старый рудимент УНФ, который забрыли качественно убрать.
UPD: поправил небольшим расширением на модуль документа установки цен:
&После("ПередЗаписью") Процедура дор_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Если Не Отказ Тогда //2024-02-19 были загружены устанвоки цен без единиц измерения, патч проставляет их Шт = Справочники.КлассификаторЕдиницИзмерения.шт; Для Каждого Строка ИЗ ЭтотОбъект.Запасы Цикл Если Не ЗначениеЗаполнено(Строка.ЕдиницаИзмерения) Тогда Строка.ЕдиницаИзмерения = Шт; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры
Среда: 3.0.5.145 Объем: 0.8 час.
А как это исправить?
Посмотреть документ установки цен, чтобы корректно ставил единицу (расширением).
Или корректировать уже при записи регистр (расширением)
Или обработкой пройтись по записям регистра и проставить.
Я честно говоря не помню, как у себя решил. Надо глянуть в коде расширения клиента.
В конце статьи добавил UPD, где показано, как исправлять расширением.