На главную страницу Версия-Т
VTSoft.ru

Интересный эффект! (1COnLine-100)


RSS
Интересный эффект! (1COnLine-100)
 
при работе с дробными частями (организация - сеть аптек) приходится мухлевать с кассой. Ну это не важно как. Сам эффект: на кассу передаю цену=ЦенаУпаковки/Кол-воДробныхЧастей*Сколько частей надо. Получается иногда (уже исправлено) цена дробная, да такая что после запятой куча цифр. Так вот при передаче этой цены все проходит ОК, в кассе фиксируется округленная, происходит событие "Добавление покупки". НО!!! При закрытии чека добавляется еще свободная сумма на копейку большая/меньшая!!!
Результат: СуммаЧека одна, сумма по строкам совершенно другая.
Пример 61.71/8*2=15,425 На кассе обработалось и СуммаПокупки=15,43.
Закрываем чек, а там еще СуммаПокупки=15,42

Что делать??? Я конечно поставил округление, вроде ошибка исчезла. еще вопрос: как вообще касса округляет? Вроде как-то не так, как в математике Окр(1,5)=2!

Все равно отчеты по выручке не сходятся буду искать еще из-за чего!
 
С разделением решили сделать так:
1-ый отдел товар целый
2-дробный

пример из модуля 1С:
Если ПустоеЗначение(CashServer.Отдел)=1 Тогда CashServer.Отдел=1 КонецЕсли;
Если CashServer.Отдел=1 Тогда
CashServer.Цена=СпрПартии.ЦенаПродажи.Получить();
csЗапрошенноеКоличество=CashServer.Количество;
КонецЕсли;
Если CashServer.Отдел=2 Тогда
Попытка
CashServer.Цена=Окр(СпрПартии.ЦенаПродажи.Получить()/СпрПартии.НомерДробь,2,0);
csЗапрошенноеКоличество = CashServer.Количество/СпрПартии.НомерДробь;
Исключение
CashServer.Цена=СпрПартии.ЦенаПродажи.Получить();
csЗапрошенноеКоличество=CashServer.Количество;
КонецПопытки;
КонецЕсли;

Здесь не возможно ошибиться!!!
 
Цитата
Lokki писал(а):
НО!!! При закрытии чека добавляется еще свободная сумма на копейку большая/меньшая!!!


Возьмите из раздела Демо-ПО последнюю версию компоненты A100Online1c.dll. Там устранена указанная Вами ошибка округления.
 
ОПЕРАТИВНО!