Главная категория > Инкотекс
Миллиарды в чеке
RomanPrg:
--- Цитата: Revers_M от 21/09/2021 09:29:44 ---Меркурий не смог "в разрядность".
--- Конец цитаты ---
Да, здесь всё точно подмечено
Немного проясню.
Для регистра цены в ККТ заложена переменная в ОЗУ int32_t price (−2 147 483 648 до 2 147 483 647 ) соответственно это сумма в копейках ( −21 474 836.48 до 21 474 836.47)
Далее эта переменная преобразуется в int64_t
int64_t sum = 0
sum += price (счётчик сумм)
Так как 25 миллионов рублей выходят за грань, то преобразования идут неправильно
price = 0x 97 4A ED 30
sum = 0x FF FF FF FF 97 4A ED 30
Эта сумма и распечатывает на ленте при оформлении чека
-1 756 697 296
Запись итога по чеку в ФН идёт через команду 16h – «сформировать чек» разрядность итога в команде 5 байт
Поэтому итог по чеку в ФН (тег 1020) обрезается до 5 байт 0x FF 974A ED30 (1 097 754 930 480)
В тег 1216 «ПОСЛЕДУЮЩАЯ ОПЛАТА (КРЕДИТ)» в ФН записывается через TLV структуру по команде 7h - здесь значение обрезается по максимальной разрядности тега до 6 байт 0x FF FF 974A ED30 (281 473 220 013 360)
Поэтому при распечатке чека из буфера ФН и получаем эти цифры на ленте (эти суммы записаны в ФН и переданы в ОФД)
При ручном вводе в кассовый режим у нас специально стаяла защита о невозможности физического ввода подобных сумм (не предполагалась продажа квартир на розничных ККТ :) ).
Потом новые товарищи видимо прилепили свой режим ФР, но не учли особенности работы кассового ядра и защиту не поставили или не привели регистры к нужным разрядам в кассовом ядре.
zax:
--- Цитата: RomanPrg от 22/09/2021 16:00:17 ---В тег 1216 «ПОСЛЕДУЮЩАЯ ОПЛАТА (КРЕДИТ)» в ФН записывается через TLV структуру по команде 7h - здесь значение обрезается по максимальной разрядности тега до 6 байт 0x FF FF 974A ED30 (281 473 220 013 360)
Поэтому при распечатке чека из буфера ФН и получаем эти цифры на ленте (эти суммы записаны в ФН и переданы в ОФД)
--- Конец цитаты ---
Если эта сумма была бы записана в ФН как сумма чека,то этот чек проверялся бы приложением ФНС,а этого нет и результат чек не корректен.....а записывается сумма итога чека 10977549304.80......и ещё не надо советовать делать возвраты на на 25 лямов это не верное действие.
RomanPrg:
--- Цитата: zax от 22/09/2021 18:00:14 ---....и ещё не надо советовать делать возвраты на на 25 лямов это не верное действие.
--- Конец цитаты ---
А это не инструкция к действию.
Чек может и некорректный (сумма в позиции не будет совпадать с суммой итога), но как видно на распечатке, квитанция подтверждения есть, ОФД чек слопал.
А как там далее гросситоги ведут ОФД и ФНС это естественно нужно уточнять.
okas:
--- Цитата: RomanPrg от 22/09/2021 18:23:53 ---ОФД чек слопал.
--- Конец цитаты ---
Слопал, но прислал отчет по ошибкам. См. Ответ #19
Torquader:
Детская ошибка - использование целых чисел со знаком там, где знака быть не должно.
Навигация
Перейти к полной версии