Форум OlegON > Программы и оборудование для автоматизации торговли > Маркировка

Ошибка программирования реквизита 1262 (Недопустимый реквизит для данного типа документа) : Маркировка

05.05.2024 23:45


24.04.2024 12:35
amadey
 
При попытке передать в чек ответ от разрешительной системы, пишет что недопустимый реквизит 1262 для данного типа документа.
В чем может быть дело?

2024.04.24 12:28:04.016 T: T:00001468 INFO [FiscalPrinter] < 2106 (2106) = 15
2024.04.24 12:28:04.016 T: T:00001468 INFO [FiscalPrinter] < LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT (65886) = 15
2024.04.24 12:28:04.016 T: T:00001468 INFO [FiscalPrinter] > LIBFPTR_PARAM_COMMODITY_NAME (65631) = "Сигареты Некст"
2024.04.24 12:28:04.016 T: T:00001468 INFO [FiscalPrinter] > LIBFPTR_PARAM_PRICE (65632) = 159
2024.04.24 12:28:04.016 T: T:00001468 INFO [FiscalPrinter] > LIBFPTR_PARAM_QUANTITY (65633) = 1
2024.04.24 12:28:04.016 T: T:00001468 INFO [FiscalPrinter] > LIBFPTR_PARAM_MEASUREMENT_UNIT (65851) = LIBFPTR_IU_PIECE (0)
2024.04.24 12:28:04.016 T: T:00001468 INFO [FiscalPrinter] > LIBFPTR_PARAM_DEPARTMENT (65568) = 1
2024.04.24 12:28:04.016 T: T:00001468 INFO [FiscalPrinter] > LIBFPTR_PARAM_TAX_TYPE (65569) = LIBFPTR_TAX_NO (6)
2024.04.24 12:28:04.016 T: T:00001468 INFO [FiscalPrinter] > 1212 (1212) = 31
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] > 1214 (1214) = 4
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_CODE (65760) = "04606203101184O2'6189ACm8uhak"
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_CODE_STATUS (65846) = LIBFPTR_MES_PIECE_SOLD (1)
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT (65886) = 15
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_PROCESSING_MODE (65852) = 0
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] > 1262 (1262) = "030"
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] > 1263 (1263) = "21.11.2023"
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] > 1264 (1264) = "1944"
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] > 1265 (1265) = "UUID=5130e495-02b5-4e64-950d-be6bb820dd78&Time=1713949182685"
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] libfptr_registration()
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] output > 34
2024.04.24 12:28:04.031 T: T:00001468 INFO [Transport] send fiscal (C8) C8 40 33 34 (4 bytes total)
2024.04.24 12:28:04.031 T: T:00001468 INFO [Transport] recv fiscal (C8) C8 30 30 34 3B 34 3B 34 3B 32 36 31 3B (13 bytes total)
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] input < 4;4;4;261;
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] Чтение таблицы КМ (1 элементов)
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] 1. [CRC = 1364864755, 2106 = 15] 30 34 36 30 36 32 30 33 31 30 31 31 38 34 4F 32 27 36 31 38 39 41 43 6D 38 75 68 61 6B
2024.04.24 12:28:04.031 T: T:00001468 INFO [FiscalPrinter] output > bQ0;0;1;15;04606203101184O2'6189ACm8uhak;
2024.04.24 12:28:04.031 T: T:00001468 INFO [Transport] send fiscal (C9) C9 40 62 51 30 3B 30 3B 31 3B 31 35 3B 30 34 36 30 36 32 30 33 31 30 31 31 38 34 4F 32 27 36 31 38 39 41 43 6D 38 75 68 61 6B 3B (43 bytes total)
2024.04.24 12:28:04.094 T: T:00001468 INFO [Transport] recv fiscal (C9) C9 30 30 (3 bytes total)
2024.04.24 12:28:04.094 T: T:00001468 INFO [FiscalPrinter] input <
2024.04.24 12:28:04.094 T: T:00001468 INFO [FiscalPrinter] output > aA<[08h][01h][00h][00h];0;
2024.04.24 12:28:04.094 T: T:00001468 INFO [Transport] send fiscal (CA) CA 40 61 41 3C 08 01 00 00 3B 30 3B (12 bytes total)
2024.04.24 12:28:04.110 T: T:00001468 INFO [Transport] recv fiscal (CA) CA 30 30 (3 bytes total)
2024.04.24 12:28:04.110 T: T:00001468 INFO [FiscalPrinter] input <
2024.04.24 12:28:04.110 T: T:00001468 INFO [FiscalPrinter] output > aAю[04h][03h][00h]030;0;
2024.04.24 12:28:04.110 T: T:00001468 INFO [Transport] send fiscal (CB) CB 40 61 41 EE 04 03 00 30 33 30 3B 30 3B (14 bytes total)
2024.04.24 12:28:04.250 T: T:00001468 INFO [Transport] recv fiscal (CB) CB 5B 44 (3 bytes total)
2024.04.24 12:28:04.250 T: T:00001468 ERROR [FiscalPrinter] Код ошибки ККТ - 445Bh
2024.04.24 12:28:04.250 T: T:00001468 INFO [FiscalPrinter] < LIBFPTR_PARAM_ERROR_TAG_NUMBER (65617) = 1262
2024.04.24 12:28:04.250 T: T:00001468 ERROR [FiscalPrinter] Объекту 0x00161A18 присвоен код ошибки 148 [Ошибка программирования реквизита 1262 (Недопустимый реквизит для данного типа документа)]
24.04.2024 13:05
amadey
 
Цитата:
amadey 1262 (1262) = "030"
1263 (1263) = "21.11.2023"
1264 (1264) = "1944"
1265 (1265) = "UUID=5130e495-02b5-4e64-950d-be6bb820dd78&Time=1713949182685"
Вот как заполняю реквизиты. Что интересно не так делаю?
24.04.2024 13:14
victuan
 
Вообще-то тег 1260 это составной тег, в который входят теги 1262-1265.
24.04.2024 13:15
amadey
 
Так я и заполняю теги 1262-1265. А в сам тег 1260 при это что-то нужно писать?
24.04.2024 13:22
victuan
 
Амадея я давно знаю, еще с форума ЕГАИС, помогу))

Сначала где-то в начале вывода позиции чека готовим структуру тега STLV:

Объект.setParam(1262, "030");
Объект.setParam(1263, "21.11.2023");
Объект.setParam(1264, "1944");
Объект.setParam(1265, "UUID=5130e495-02b5-4e64-950d-be6bb820dd78&Time=1713949182685");
Объект.utilFormTlv();
Тег1260 = Объект.getParamString(Объект.LIBFPTR_PARAM_TAG_VALUE); // используем getParamString, т.к. getParamByteArray ваше прикладное ПО может не поддерживать

Затем в конце вывода позиции чека:

Объект.setParamStrHex(1260, Тег1260) //запись комплексного атрибута
24.04.2024 13:55
amadey
 
Сделал как Вы порекомендовали:

swprintf(mark_wchar, L"030");
libfptr_set_param_str(fptr, 1262, mark_wchar);
swprintf(mark_wchar, L"21.11.2023");
libfptr_set_param_str(fptr, 1263, mark_wchar);
swprintf(mark_wchar, L"1944");
libfptr_set_param_str(fptr, 1264, mark_wchar);
swprintf(mark_wchar, L"UUID=%S&Time=%S", reqId, reqTimestamp);
libfptr_set_param_str(fptr, 1265, mark_wchar);
libfptr_util_form_tlv(fptr);
libfptr_get_param_str(fptr, LIBFPTR_PARAM_TAG_VALUE, tag1260, 500);
libfptr_set_param_str(fptr, 1260, tag1260);

на тег 1260 уже не ругается но неожиданно заругалось на отсутствие названия товара, хотя ранее оно устанавливалось и почему-то обнулилось:

Не найден обязательный параметр (LIBFPTR_PARAM_COMMODITY_NAME)
24.04.2024 14:11
victuan
 
Цитата:
amadey swprintf(mark_wchar, L"030");
libfptr_set_param_str(fptr, 1262, mark_wchar);
swprintf(mark_wchar, L"21.11.2023");
libfptr_set_param_str(fptr, 1263, mark_wchar);
swprintf(mark_wchar, L"1944");
libfptr_set_param_str(fptr, 1264, mark_wchar);
swprintf(mark_wchar, L"UUID=%S&Time=%S", reqId, reqTimestamp);
libfptr_set_param_str(fptr, 1265, mark_wchar);
libfptr_util_form_tlv(fptr);
libfptr_get_param_str(fptr, LIBFPTR_PARAM_TAG_VALUE, tag1260, 500);
Эта часть у меня идет перед передачей LIBFPTR_PARAM_COMMODITY_NAME и даже перед передачей КМ.


Цитата:
amadey libfptr_set_param_str(fptr, 1260, tag1260);
А эта часть уже после LIBFPTR_PARAM_COMMODITY_NAME, а точнее даже после передачи тегов 1212 и 1214.
24.04.2024 14:11
amadey
 
Как раз таки, нашел у меня libfptr_get_param_bytearray и libfptr_set_param_bytearray
а не нашел setParamStrHex. Переделал на bytearray - ошибка та же. Сбился параметр названия товара LIBFPTR_PARAM_COMMODITY_NAME


swprintf(mark_wchar, L"030");
libfptr_set_param_str(fptr, 1262, mark_wchar);
// 1263 äàòà ïîñòàíîâëåíèÿ - 21.11.2023, òîæå êîíñòàíòà
swprintf(mark_wchar, L"21.11.2023");
libfptr_set_param_str(fptr, 1263, mark_wchar);
// 1264 - íîìåð ýòîãî ïîñòàíîâëåíèÿ 1944, êîíñòàíòà
swprintf(mark_wchar, L"1944");
libfptr_set_param_str(fptr, 1264, mark_wchar);
//Çíà÷åíèå ðåêâèçèòà «çíà÷åíèå îòðàñëåâîãî ðåêâèçèòà» (òåã 1265): UUID=2ce10bdb-6510-4d37-be04-dd473b98c728&Time=1692691702065
swprintf(mark_wchar, L"UUID=%S&Time=%S", reqId, reqTimestamp);
libfptr_set_param_str(fptr, 1265, mark_wchar);
//îò Âèêòóàí:
// Îáúåêò.utilFormTlv();
libfptr_util_form_tlv(fptr);
// tag1260 = Îáúåêò.getParamString(Îáúåêò.LIBFPTR_PARAM_TAG_VALUE); // èñïîëüçóåì getParamString, ò.ê. getParamByteArray âàøå ïðèêëàäíîå ÏÎ ìîæåò íå ïîääåðæèâàòü
// libfptr_get_param_str(fptr, LIBFPTR_PARAM_TAG_VALUE, tag1260, 5000);
libfptr_get_param_bytearray(fptr, LIBFPTR_PARAM_TAG_VALUE, tag1260, 500);
//Çàòåì â êîíöå âûâîäà ïîçèöèè ÷åêà:
// Îáúåêò.setParamStrHex(1260, tag1260) //çàïèñü êîìïëåêñíîãî àòðèáóòà
// libfptr_set_param_str(fptr, 1260, tag1260);
libfptr_set_param_bytearray(fptr, 1260, tag1260, 500);
24.04.2024 14:14
victuan
 
Всё-таки важно то, что я выше написал про порядок следования операторов.
24.04.2024 14:22
amadey
 
Да, дело скрипя движется....
Проверку валидности кода маркировки тоже нельзя делать до формирования тега 1260...
Черти с рогами и хвостом придумали маркировку.
В библии так и написано, что конец света начнется когда промаркируют людей и придумают тег 666 для передачи этой маркировки.
Часовой пояс GMT +3, время: 23:45.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.