Автор Тема: CheckType в чеке (с данными коррекции) на ФФД 1.2 - что опять за бред?  (Прочитано 4236 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kkmspb

  • Активный форумчанин
  • Постоялец
  • **
  • Сообщений: 245
  • Похвалили: 29 раз(а)
  • Откуда: Санкт-Петербург
    • БИТ драйвер ККТ
И опять здравствуйте!

Изучения протокола Штрих меня вынуждает напрягать мозги и уже не верить ни чему. Думаю надо отдельную тему для этого отвести.

Смотрите, что  только что обнаружил с коррекцией чеков:

У меня Штрих-Онлайн , тест. ФН 1.2 (версия регистрации 1.2), драйвер 5.09.0008.хххх.

Что имеем в коде :
CheckType = 0|2
FNOpenCheckCorrection
регистрируем позиции .....
FNCloseCheckEx

Обратите внимание на возможные значения CheckType = 0|2
То есть:
0 - получится приход
1 - получится ошибка  FNOperation() [94] Некорректная  операция
2 - получится возврат прихода
3 - получится ошибка FNOperation() : [94] Некорректная операция
4 - получится ошибка FNOperation() : [94] Некорректная операция

Я уже у Штриха вообще ничего не понимаю. В документации вообще написано CheckType варианты: 0,1,2,3 (v5.17)

Расход и возврат с коррекцией вообще что ли отсутствуют?

Или это только у меня?

 

Оффлайн Slava

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 4567
  • Похвалили: 1423 раз(а)
/// 5.09.0008.хххх.


Это что за драйвер ?

зы. " Кто такая , почему не знаю ? "
 

Оффлайн kkmspb

  • Активный форумчанин
  • Постоялец
  • **
  • Сообщений: 245
  • Похвалили: 29 раз(а)
  • Откуда: Санкт-Петербург
    • БИТ драйвер ККТ
/// 5.09.0008.хххх.


Это что за драйвер ?

зы. " Кто такая , почему не знаю ? "

Извините ошибся, вот так отображается, 5.0.9008.21769.  Что это за версия? Сам уже не помню. Но не суть.
Установил теперь DrvFR_5.16_877_x32. Эта в окне отображается как  5.0.7942.30349

Ситуация такая же CheckType : 0 или 2 только проходит.

Но зато еще одну кассу ШТРИХ-МИНИ-01Ф завел на ФН 1.05 (и зарегил на 1.05 соответственно):
 ----------------------------------------
 Версия ПО                 : C.1
 Сборка ПО                 : 19018
 Дата ПО                   : 13.02.2020
 ----------------------------------------
Так вот эта касса вообще коррекцию бьет по другому (через связку  FNBeginCorrectionReceipt / FNBuildCorrectionReceipt2 ) и только без покупок в чеке.
Суммы по НДСам надо самому вычислять.
 
« Последнее редактирование: 01/05/2025 22:26:25 от kkmspb »
 

Оффлайн Stok

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 2371
  • Похвалили: 1772 раз(а)
    • Маркет-мастер
Так вот эта касса вообще коррекцию бьет по другому (через связку  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 Приход, Возврат прихода, Расход, Возврат расхода.
 

Оффлайн kkmspb

  • Активный форумчанин
  • Постоялец
  • **
  • Сообщений: 245
  • Похвалили: 29 раз(а)
  • Откуда: Санкт-Петербург
    • БИТ драйвер ККТ
Так вот эта касса вообще коррекцию бьет по другому (через связку  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 выдают ошибку.

 

Оффлайн WOWYS

  • Наш человек
  • Постоялец
  • ***
  • Сообщений: 237
  • Похвалили: 18 раз(а)
Так вот эта касса вообще коррекцию бьет по другому (через связку  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 19.01.2023г. . У вас МГМ прошейте 2025г. и с новыми Дровами пишите на славу.
 
Это сообщение считают полезным: mrrom

Оффлайн DanShi

  • Активный форумчанин
  • Свой в доску
  • **
  • Сообщений: 83
  • Похвалили: 7 раз(а)
В тесте драйвера же всё прекрасно пробивается, посмотрите логи и найдите разницу.
P.S. то , что Вам не нравится Штрих и его драйвер, мы все давно поняли.....
 

Оффлайн kkmspb

  • Активный форумчанин
  • Постоялец
  • **
  • Сообщений: 245
  • Похвалили: 29 раз(а)
  • Откуда: Санкт-Петербург
    • БИТ драйвер ККТ
Так вот эта касса вообще коррекцию бьет по другому (через связку  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 19.01.2023г. . У вас МГМ прошейте 2025г. и с новыми Дровами пишите на славу.

Вы не поняли, это уже про новый ФФД 1.2 и новый лицензионный штрих-лайт.

Цитировать
Зачем что-то писать на старых прошивках и мучиться

Я же не для себя делаю, а для пользователей , а у них разные кассы еще имеются (все по закону: 1.05 еще никто не отменял).
« Последнее редактирование: 03/05/2025 22:08:21 от kkmspb »
 

Оффлайн Slava

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 4567
  • Похвалили: 1423 раз(а)


// setProperty CheckType = 0   
// cmd:FNOpenCheckCorrection() ok

/// cmd:FNOperation() ok

Наверное такое потому  , что методы по разному интерпретируют значение свойства ТипЧека .

Для значения 2 - это одно и тоже Возврат прихода .
Для 1 Расход и Приход  соответственно

И т.д .То есть , перед вызовом  FNOperation() , свойство Тип чека надо перезагрузить .

ЗЫ Почему 0 проходит непонятно
      4 нет для метода  FNOpenCheckCorrection()

Интересное кино , это да
 
Это сообщение считают полезным: Stok

Оффлайн Slava

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 4567
  • Похвалили: 1423 раз(а)
Посмотрел сегодня вживую .
Так вот какие чудеса , пробил я ЧК-Расход .
Далее лог сохраняем и смотрим его чудо-утилитой Лог плейер .
Лог говорит ТипЧека 129 для метода  FNOpenCheckCorrection() и 3 для  FNOperation().
Теперь 129 это 128 +1 , то есть если отбросить старший бит будет 1 как в учебнике .
3 для  FNOperation() так и есть .

Да , вот уж действительно - " Нет у вас методов на Котьку Сапрыкина " .

ЗЫ. Нельзя верить инструкциям !
ЗЫЫ , Хотя может это только для ниженого уровня так .
 

Оффлайн Slava

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 4567
  • Похвалили: 1423 раз(а)
Теперь если просто пробить Кассовый чек Приход .
Здесь всё в ёлочку OpenCheck принимает  ТипЧека 0 , а  FNOperation 1 как в азбуке .

ЗЫ , Да наверное всё-таки старший бит в ЧК это для нижнего протокола говорит .что это ЧК именно.
 

Оффлайн kkmspb

  • Активный форумчанин
  • Постоялец
  • **
  • Сообщений: 245
  • Похвалили: 29 раз(а)
  • Откуда: Санкт-Петербург
    • БИТ драйвер ККТ
Slava, Slava,
Далее лог сохраняем и смотрим его чудо-утилитой Лог плейер .
Это юсб обмен байтами смотрите?
 

Оффлайн Slava

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 4567
  • Похвалили: 1423 раз(а)
Slava, Slava,
Далее лог сохраняем и смотрим его чудо-утилитой Лог плейер .
Это юсб обмен байтами смотрите?



Чего толку смотреть на обмен , если не знаешь как распарсить ?
В руководстве 90 процентов команд нижнего уровня заметено под ковёр ( даже в некоторых команд все 100 ).
Утилита здесь https://teletype.in/@poscenter/doc.shtrih-m.ru
 
Это сообщение считают полезным: kkmspb

Оффлайн DanShi

  • Активный форумчанин
  • Свой в доску
  • **
  • Сообщений: 83
  • Похвалили: 7 раз(а)

вот ведь всё вроде понятно расписано.
 
Это сообщение считают полезным: kkmspb

Оффлайн kkmspb

  • Активный форумчанин
  • Постоялец
  • **
  • Сообщений: 245
  • Похвалили: 29 раз(а)
  • Откуда: Санкт-Петербург
    • БИТ драйвер ККТ

вот ведь всё вроде понятно расписано.

А откуда это? Из официального АПИ?  Мне такое ещё не попадалось.
 

Оффлайн DanShi

  • Активный форумчанин
  • Свой в доску
  • **
  • Сообщений: 83
  • Похвалили: 7 раз(а)
Ссылку давали выше, раздел "Документация"
 

Оффлайн kkmspb

  • Активный форумчанин
  • Постоялец
  • **
  • Сообщений: 245
  • Похвалили: 29 раз(а)
  • Откуда: Санкт-Петербург
    • БИТ драйвер ККТ
Ссылку давали выше, раздел "Документация"
Как я в итоге понял читаем версию документации 5.18, а в 5.17 такой таблицы нет. Более того в 5.17 совсем по другому написано.
 

Оффлайн Slava

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 4567
  • Похвалили: 1423 раз(а)
Ссылку давали выше, раздел "Документация"
Как я в итоге понял читаем версию документации 5.18, а в 5.17 такой таблицы нет. Более того в 5.17 совсем по другому написано.


Я вот читаю и удивляюсь .

Документацию хоть новую , хоть старую можно прочитать +100500 раз .

Сказано - команда FE - это спецкоманда и всё - но комментс.
А в этой команде под сотню команд , которые замели под ковёр .

Так , что не перепрыгнешь ты через официалов .

А когда тебе будут рассказывать сказки из венского леса по этому поводу - не верь .
 
Это сообщение считают полезным: Stok, 7SSS7, АМЕ_Worker

Оффлайн mrrom

  • Наш человек
  • Старожил
  • ***
  • Сообщений: 490
  • Похвалили: 43 раз(а)
  • Откуда: Междуреченск
Я так понял сначала надо свойства заполнять а потом вызывать
fnoperation или FNOpenCheckCorrection
порядок действий как в тест драйвере
только открывать чек не обязательно. 
Наша работа во тьме,Мы делаем, что умеем.Мы отдаем, что имеем,Наша работа во тьме.Сомнения стали страстью, А страсть стала судьбою.
 
Telegram @mrrom39
 

Оффлайн funtik11

  • Постоялец
  • Сообщений: 245
  • Похвалили: 5 раз(а)
Если вас не затруднит поделитесь программным примером, что в итоге вам удалось сделать, что бы всё работало?
Если сюда нельзя, то на почту.
 

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23