среда, 6 мая 2015 г.

ШТРИХ-ФР-К: одна маленькая особенность

Если при печати чека из 1С драйвер фискального регистратора вдруг заявляет "При печати чека произошла ошибка. Чек не напечатан на фискальном регистраторе. Дополнительное описание: A3h, Некорректное состояние ЭКЛЗ", не надо ему так уж прямо безоговорочно верить. Лучше поверить программе "Тест драйвера", которая показывает, что всё нормально, и проводит чек без всяких ошибок.

Я перетряхнул все кабели, обновил версию драйвера с 4.9 на 4.12 и обратно, но дело оказалось вовсе не в этом. В таких случаях надо включить ведение логов драйвера (это делается либо в программе "Тест драйвера" - кнопка "Настройка свойств" - кнопка "Дополнительные параметры" - галочка "Вести лог", либо в самой 1С в свойствах подключаемого оборудования - в зависимости от того, какая программа глючит), и тогда будет видно различие логов "больного" чека:
...
[06.05.2015 12:39:38.365] [ info]: TFiscalPrinter ------------------------------------------------------------
[06.05.2015 12:39:38.365] [debug]: TFiscalPrinter Команда: 8Dh, Открыть чек
[06.05.2015 12:39:38.365] [ info]: TFiscalPrinter ------------------------------------------------------------
...
[06.05.2015 12:39:38.928] [debug]: Tole1Cst OpenCheck(CheckNumber: 972; SessionNumber: 309): True
[06.05.2015 12:39:38.928] [debug]: Tole1Cst RetValue:True
[06.05.2015 12:39:38.928] [debug]: Tole1Cst Invoke: 0x00000000 (Операция успешно завершена)
...
[06.05.2015 12:39:39.271] [ info]: TFiscalPrinter ------------------------------------------------------------
[06.05.2015 12:39:39.271] [debug]: TFiscalPrinter Команда: 85h, Закрытие чека
[06.05.2015 12:39:39.271] [ info]: TFiscalPrinter ------------------------------------------------------------
[06.05.2015 12:39:39.271] [debug]: TPrinterProtocol -> 05
[06.05.2015 12:39:39.271] [debug]: TPrinterProtocol <- 15
[06.05.2015 12:39:39.271] [debug]: TPrinterProtocol -> ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ
[06.05.2015 12:39:39.271] [debug]: TPrinterProtocol -> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[06.05.2015 12:39:39.271] [debug]: TPrinterProtocol -> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[06.05.2015 12:39:39.271] [debug]: TPrinterProtocol -> 00 00 00 00 00 00 00 00 00 00 00 00 00 68
[06.05.2015 12:39:39.271] [debug]: TPrinterProtocol <- 06
[06.05.2015 12:39:39.334] [debug]: TPrinterProtocol <- 02
[06.05.2015 12:39:39.334] [debug]: TPrinterProtocol <- 02
[06.05.2015 12:39:39.334] [debug]: TPrinterProtocol <- 85 A3 24
[06.05.2015 12:39:39.334] [debug]: TPrinterProtocol -> 06
[06.05.2015 12:39:39.334] [error]: TFiscalPrinter Ошибка: (163, A3h) Некорректное состояние ЭКЛЗ
[06.05.2015 12:39:39.334] [error]: TFiscalPrinter Ошибка: 163 Некорректное состояние ЭКЛЗ
...

и "здорового":
...
[06.05.2015 12:58:23.819] [ info]: TFiscalPrinter ------------------------------------------------------------
[06.05.2015 12:58:23.819] [debug]: TFiscalPrinter Команда: 8Dh, Открыть чек
[06.05.2015 12:58:23.819] [ info]: TFiscalPrinter ------------------------------------------------------------
...
[06.05.2015 12:58:24.772] [ info]: TFiscalPrinter ------------------------------------------------------------
[06.05.2015 12:58:24.772] [debug]: TFiscalPrinter Команда: 80h, Продажа
[06.05.2015 12:58:24.772] [ info]: TFiscalPrinter ------------------------------------------------------------
..
[06.05.2015 12:58:24.866] [debug]: Tole1Cst PrintFiscalString: True
[06.05.2015 12:58:24.866] [debug]: Tole1Cst RetValue:True
[06.05.2015 12:58:24.866] [debug]: Tole1Cst Invoke: 0x00000000 (Операция успешно завершена)
...
[06.05.2015 12:58:25.209] [ info]: TFiscalPrinter ------------------------------------------------------------
[06.05.2015 12:58:25.209] [debug]: TFiscalPrinter Команда: 85h, Закрытие чека
[06.05.2015 12:58:25.209] [ info]: TFiscalPrinter ------------------------------------------------------------
[06.05.2015 12:58:25.209] [debug]: TPrinterProtocol -> 05
[06.05.2015 12:58:25.209] [debug]: TPrinterProtocol <- 15
[06.05.2015 12:58:25.209] [debug]: TPrinterProtocol -> ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ
[06.05.2015 12:58:25.209] [debug]: TPrinterProtocol -> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[06.05.2015 12:58:25.209] [debug]: TPrinterProtocol -> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[06.05.2015 12:58:25.209] [debug]: TPrinterProtocol -> 00 00 00 00 00 00 00 00 00 00 00 00 00 9A
[06.05.2015 12:58:25.209] [debug]: TPrinterProtocol <- 06
[06.05.2015 12:58:25.288] [debug]: TPrinterProtocol <- 02
[06.05.2015 12:58:25.288] [debug]: TPrinterProtocol <- 08
[06.05.2015 12:58:25.288] [debug]: TPrinterProtocol <- 85 00 01 00 00 00 00 00 8C
[06.05.2015 12:58:25.288] [debug]: TPrinterProtocol -> 06
...
[06.05.2015 12:58:27.991] [debug]: Tole1Cst CloseCheck: True
[06.05.2015 12:58:27.991] [debug]: Tole1Cst RetValue:True
[06.05.2015 12:58:27.991] [debug]: Tole1Cst Invoke: 0x00000000 (Операция успешно завершена)
...

Как видим, если между открытием чека и закрытием не было операции "Продажа" (или, например, как говорят опытные люди, если в незакрытом чеке продажа была отсторнирована), то в момент закрытия чека его открытая электронная копия на ЭКЛЗ отсутствует, и возникает вышеуказанная ошибка A3h.

3 комментария:

  1. Здравствуйте! Столкнулись с такой же проблемой. Как вы ее решили?

    ОтветитьУдалить
    Ответы
    1. Ну, в нашем случае всё оказалось просто: бухгалтер пыталась провести через кассовый аппарат платеж, по которому наличная оплата не предусматривается (что-то там то ли с НДС 0%, то ли вообще без НДС). Вот 1Ска и не посылала команду "Продажа" на фискальный регистратор. Так что у нас была ошибка человека.

      Удалить
  2. Обнаружили такую особенность. В БП 3.0 при выборе в прих.-касс. ордере вид операции "Прочий приход" возникает такая ошибка, а при выборе вид операции "Оплата от покупателя" такой ошибки нет. Хотя в БП 2.0 с видом операции "Прочий приход" все нормально проходит.

    ОтветитьУдалить