Так вот эта касса вообще коррекцию бьет по другому (через связку FNBeginCorrectionReceipt / FNBuildCorrectionReceipt2 ) и только без покупок в чеке.
Суммы по НДСам надо самому вычислять.
Загляните в ФФД 1.05 и не будет повода удивляться.
Что имеем в коде :
CheckType = 0|2
FNOpenCheckCorrection
регистрируем позиции .....
FNCloseCheckEx
Обратите внимание на возможные значения CheckType = 0|2
То есть:
0 - получится приход
1 - получится ошибка FNOperation() [94] Некорректная операция
2 - получится возврат прихода
3 - получится ошибка FNOperation() : [94] Некорректная операция
4 - получится ошибка FNOperation() : [94] Некорректная операция
1. 0,1,2,3,4 - почему Вы перечисляете 5 значений, когда их для тега 1054 всего 4?
2. Подозреваю, что Вы в какой-то момент нарушаете порядок действий. Сначала записывается вид документа 31 Кассовый чек коррекции, затем один из реквизитов тега 1054 Приход, Возврат прихода, Расход, Возврат расхода.
Вот смотрите лог (веду сам), ниже чек прихода с коррекционными данными ( это на ФФД 1.2):
Ждите идет процесс:...
начало печати чека...
setProperty Password = 1 ok
setProperty ComNumber = 10 ok
setProperty Timeout = 153 ok
setProperty ConnectionType = 0 ok
setProperty UseIPAddress = false ok
setProperty ConnectionTimeout = 3000 ok
setProperty BaudRate = 6 ok
cmd:GetShortECRStatus() ok
cmd:GetShortECRStatus() ok
setProperty Password = 30 ok
setProperty CheckType = 0 ok
cmd:FNOpenCheckCorrection() ok
setProperty Password = 30 ok
setProperty TaxValueEnabled = false ok
setProperty Summ1Enabled = false ok
setProperty Tax1 = 1 ok
setProperty PaymentTypeSign = 4 ok
setProperty PaymentItemSign = 1 ok
setProperty Department = 1 ok
setProperty Quantity = 2.345 ok
setProperty Price = 12300 ok
setProperty StringForPrinting = тестовая продажа ok
cmd:FNOperation() ok
setProperty ConnectionTimeout = 5000 ok
setProperty Summ1 = 28800 ok
setProperty Summ2 = 0 ok
setProperty Summ3 = 0 ok
setProperty Summ4 = 0 ok
setProperty Summ5 = 0 ok
setProperty Summ6 = 0 ok
setProperty Summ7 = 0 ok
setProperty Summ8 = 0 ok
setProperty Summ9 = 0 ok
setProperty Summ10 = 0 ok
setProperty Summ11 = 0 ok
setProperty Summ12 = 0 ok
setProperty Summ13 = 0 ok
setProperty Summ14 = 0 ok
setProperty Summ15 = 0 ok
setProperty Summ16 = 0 ok
setProperty TaxType = 2 ok
setProperty RoundingSumm = 0 ok
setProperty StringForPrinting = --------------- ok
setProperty TagNumber = 1173 ok
setProperty TagType = 0 ok
setProperty TagValueInt = 0 ok
cmd:FNSendTag() ok тег: 1173 (тип коррекции)
setProperty TagNumber = 1178 ok
setProperty TagType = 6 ok
setProperty TagValueDateTime = 2025-05-02T00:00:00 ok
cmd:FNSendTag() ok тег: 1178 = '2025-05-02' (дата совершения корректируемого расчета)
setProperty ConnectionTimeout = 3000 ok
cmd:FNCloseCheckEx() ok Закрытие чека
cmd:GetShortECRStatus() ok
cmd:FNGetStatus() ok
setProperty Password = 30 ok
setProperty DocumentNumber = 105 ok
FNFindDocument: найти документ по номеру 105
setProperty Password = 30 ok
setProperty DocumentNumber = 105 ok
cmd:GetShortECRStatus() ok
cmd:ResetECR() ok
Успешное завершение.
------ Check_Result --------
Номер ФД : 11
дата время : 2025-05-02 15:23
номер смены : 8
номер чека : 1
сумма чека : 2.88
ФПД : 2490622461
Рег.номер ФН : 0000000001024919
зав. номер Ф : 9999078902013158
Успешное завершение.
Пробился чек прихода с коррекцией нормально. Обратите внимание CheckType=0.
Далее аналогично пробивается чек с CheckType=2 - это возврат прихода с коррекцией получается.
Варианты с CheckType =1, 3 , 4 выдают ошибку.