Чек коррекции требует фискальную строку

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
Ответить
kotofeich
Сообщения: 9
Зарегистрирован: 03 июн 2020, 21:07

Чек коррекции требует фискальную строку

Сообщение kotofeich » 08 фев 2022, 13:53

День добрый!
Подскажите, не могу разобратсья с чеком коррекции. Налоговая дала рекомендацию сделать чек коррекции на 11750р. Но похоже я что-то недопонял в инструкции.

Код: Выделить всё

<span id="Responce"></span>

    <script>
        var Device = 0; // Номер устройства
        var OldIdCommand = ""; // Номер устройства


        // Функция вызываемая после обработки команды - обработка возвращаемых данных
        function ExecuteSuccess(Rezult) {
            var Responce = "";
            if (Rezult.Status == 0) {
                Responce = Responce + "Статус: " + "Ok" + "\r\n";
            } else if (Rezult.Status == 1) {
                Responce = Responce + "Статус: " + "Выполняется" + "\r\n";
            } else if (Rezult.Status == 2) {
                Responce = Responce + "Статус: " + "Ошибка!" + "\r\n";
            } else if (Rezult.Status == 3) {
                Responce = Responce + "Статус: " + "Данные не найдены!" + "\r\n";
            };

            // Текст ошибки
            if (Rezult.Error != undefined && Rezult.Error != "") {
                Responce = Responce + "Ошибка: " + Rezult.Error + "\r\n";
            }

            if (Rezult != undefined) {
                var JSon = JSON.stringify(Rezult, "", 4);
                Responce = Responce + "JSON ответа: \r\n" + JSon + "\r\n";
            }

            document.getElementById('Responce').textContent = Responce;
        }

        function RegisterCheck(NumDevice, TypeCheck, IsBarCode) {
            var Data = KkmServer.GetDataCheck(TypeCheck, NumDevice, "", "ИП Иванов", "026608455");

            Data.NumDevice = NumDevice;
            Data.InnKkm = "";
            Data.KktNumber = "";
            Data.Timeout = 30;
            Data.IsFiscalCheck = true;
            Data.TypeCheck = TypeCheck;
            Data.NotPrint = false; //true,
            Data.NumberCopies = 0;
            Data.CashierName = "Иванов И.И";
            Data.CashierVATIN = "026608455";
            Data.ClientAddress = "";
            Data.SenderEmail = "myemail@mail.ru";
            Data.TaxVariant = "5";
 
            Data.CorrectionType = 1;
            Data.CorrectionBaseDate = '2022-02-02T13:35:00';
            Data.CorrectionBaseNumber=  "Protokol-13";
            Data.CorrectionBaseName=  "Предписание налоговой";
            Data.Cash = 11750;
 
            for (var i = 0; i < Data.CheckStrings.length; i++) {
                if (Data.CheckStrings[i] != undefined && Data.CheckStrings[i].Register != undefined) {
                    Data.CheckStrings[i].Register.AgentSign = null;
                    Data.CheckStrings[i].Register.AgentData = null;
                    Data.CheckStrings[i].Register.PurveyorData = null;
                };
            };
            
            OldIdCommand = Data.Execute(ExecuteSuccess).IdCommand;
        }
        

      RegisterCheck(0, 2, false);        
    </script>
Получается такой ответ:

Код: Выделить всё

Статус: Ошибка! Ошибка: Message: В чеке нет фискальных строк!!! JSON ответа: {"Cash": 11750, "ElectronicPayment":0, "AdvancePayment": 0, "Credit":0, "CashProvision": 0, "Command": "RegisterCheck", "Error": "Message: В чеке нет фискальных строк!!!", "Warning": "", "Message": "", "Status": 2, "idCommand": "900ca-8f6e-6486-497f12c60f89", "NumDevice": 1}

Аватара пользователя
saratovout
Сообщения: 258
Зарегистрирован: 08 авг 2019, 23:52
Откуда: Boston
Контактная информация:

Re: Чек коррекции требует фискальную строку

Сообщение saratovout » 08 фев 2022, 14:52

Вроде не хватает:

Код: Выделить всё

        Amount: 0.00,
        ElectronicPayment: 0.00,
        AdvancePayment: 0.00,
        Credit: 0.00,
        CashProvision: 0.00,
        SumTaxNone: 0.00,
        SumTax20: 0.00,
        SumTax10: 0.00,
        SumTax0: 0.00,
        SumTax120: 0.00,
        SumTax110: 0.00,
good films make your life better..

kotofeich
Сообщения: 9
Зарегистрирован: 03 июн 2020, 21:07

Re: Чек коррекции требует фискальную строку

Сообщение kotofeich » 08 фев 2022, 19:05

saratovout писал(а):
08 фев 2022, 14:52
Вроде не хватает:

Код: Выделить всё

        Amount: 0.00,
        ElectronicPayment: 0.00,
        AdvancePayment: 0.00,
        Credit: 0.00,
        CashProvision: 0.00,
        SumTaxNone: 0.00,
        SumTax20: 0.00,
        SumTax10: 0.00,
        SumTax0: 0.00,
        SumTax120: 0.00,
        SumTax110: 0.00,
Добавил. Такая же ошибка(
Странно. Если я добавил любую фискальную строку, например

Код: Выделить всё

Data.AddRegisterString("Корреция", 1, 1, 1, -1, 1, "", 1, 1);
То выходит нормальный чек коррекции. Не понял зачем нужна фискальная строка :shock:

Audim
Администратор
Сообщения: 2180
Зарегистрирован: 17 мар 2015, 18:36

Re: Чек коррекции требует фискальную строку

Сообщение Audim » 10 фев 2022, 13:38

По ФФД 1.1 чек коррекции отличается от обчного чека только типом чека и 3 доп. полей.
Фискальные строки нужны.

kkmserver при печати чека коррекции по ФФД 1.05 просто откинет фискальные строки (где они не нужны)

Ответить