Одна ошибка с валютой в документе «Расход со счета» УНФ
У клиента не открывается документ «Расход со счета». Выдает ошибку «Поле объекта не обнаружено (Курс)».
Обнаружил в УНФ странный код:
Там вообще очень много условий, скорее всего, перепутан порядок их проверки.
Поэтому решил, что пока сделаю заглушку, курс можно брать из строки документа, а не из шапки, где этого реквизита нет. Думаю, потом починят этот код в будущих релизах и он заработает корректно.
Вот как выглядит код заглушки:
&ИзменениеИКонтроль(«ПолучитьСуммуПлатежаСтроки»)
Функция дор_ПолучитьСуммуПлатежаСтроки(ДокументОбъект, ТекущаяСтрока, ЭтоИзменениеДокумента)
Если НЕ ЭтоИзменениеДокумента И ТекущаяСтрока.ЭтоЗачет Тогда
Если ДокументОбъект.ВалютаДенежныхСредств = ТекущаяСтрока.ВалютаРасчетов Тогда
ТекущаяСуммаПлатежа = ТекущаяСтрока.СуммаРасчетов;
ИначеЕсли ТекущаяСтрока.СуммаРег <> 0 И ТекущаяСтрока.СуммаРасчетов <> 0 Тогда
// Для документов, которые оформлены раньше релиза 1.6.14 будем вычислять сумму расчетов так.
Если ДокументОбъект.ВалютаДенежныхСредств = Константы.НациональнаяВалюта.Получить() Тогда
ТекущаяСуммаПлатежа = ТекущаяСтрока.СуммаРег;
Иначе
ТекущаяСуммаПлатежа = ТекущаяСтрока.СуммаРасчетов * ТекущаяСтрока.СуммаРег / ТекущаяСтрока.СуммаРасчетов;
#Вставка
//Осипов 2021-06-15 — исправление проблемы открытия документа
Попытка
ТекущаяСуммаПлатежа = ТекущаяСуммаПлатежа / ?(ДокументОбъект.Курс = 0, 1, ДокументОбъект.Курс) * ?(ДокументОбъект.Кратность = 0, 1, ДокументОбъект.Кратность);
ТекущаяСуммаПлатежа = Окр(ТекущаяСуммаПлатежа, 2);
Возврат ТекущаяСуммаПлатежа; //Чтобы не выполнялся дальнейший код
Исключение
КонецПопытки;
Попытка
ТекущаяСуммаПлатежа = ТекущаяСуммаПлатежа / ?(ТекущаяСтрока.Курс = 0, 1, ТекущаяСтрока.Курс) * ?(ТекущаяСтрока.Кратность = 0, 1, ТекущаяСтрока.Кратность);
ТекущаяСуммаПлатежа = Окр(ТекущаяСуммаПлатежа, 2);
Возврат ТекущаяСуммаПлатежа; //Чтобы не выполнялся дальнейший код
Исключение
КонецПопытки;
#КонецВставки
…
КонецФункции
Интересно, что я прерываю выполнение кода, если код выполняется успешно через Возврат.
Объем: 0.5 час. Среда: УНФ 1.6.24.107.
Неоправданное использование оператора Попытка
Оправданное. Так дешевле клиенту.
>Думаю, потом починят этот код в будущих релизах и он заработает корректно.
баг-то зарепортил или по-твоему там телепаты работают?
Там работают те, кто умело отгородились от баг-репортов. Куда писать баг-репорт без справок и регистраций, не знаю.