Косяк в модуле менеджера документа "Чек на оплату"
Код |
---|
#Область Сервисныефункции
Процедура ПроизвестиРаспределениеСуммыОплаты(СуммаДокумента, Товары) Экспорт
Если СуммаДокумента = 0 ИЛИ Товары.Количество() = 0 Тогда
Возврат;
КонецЕсли;
НаибольшаяСуммаВсего = 0;
НомерСтроки = 0;
КоэффициентРаспределения = ?(Товары.Итог("СуммаВсего") = 0, 0, СуммаДокумента / Товары.Итог("СуммаВсего"));
Для Каждого Строка ИЗ Товары Цикл
Строка.СуммаОплаты = Окр(Строка.СуммаВсего * КоэффициентРаспределения, 2);
Если Строка.СуммаВсего > НаибольшаяСуммаВсего Тогда
НаибольшаяСуммаВсего = Строка.СуммаВсего;
НомерСтроки = Строка.НомерСтроки;
КонецЕсли;
КонецЦикла;
Если НомерСтроки > 0 Тогда
ОшибкаОкругления = СуммаДокумента - Товары.Итог("СуммаОплаты");
СтрокаТаблицы = Товары.Найти(НомерСтроки, "НомерСтроки");
СтрокаТаблицы.СуммаОплаты = СтрокаТаблицы.СуммаОплаты + ?(ОшибкаОкругления <= 0, ОшибкаОкругления, - ОшибкаОкругления);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
|
Думаю в этом коде строку
Код |
---|
СтрокаТаблицы.СуммаОплаты = СтрокаТаблицы.СуммаОплаты + ?(ОшибкаОкругления <= 0, ОшибкаОкругления, - ОшибкаОкругления);
|
надо заменить на такую
Код |
---|
СтрокаТаблицы.СуммаОплаты = СтрокаТаблицы.СуммаОплаты + ОшибкаОкругления;
|
Попробуйте принять частичную предоплату по товарам с ценами с копейками, так чтобы было несколько позиций, как вариант 3, сумма нечетная, а оплата четной суммой. Думаю заметите проблему.