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

Ошибка 409 [Некорректный код маркировки] : Маркировка

23.11.2024 3:26


26.06.2024 11:34
Здравствуйте!
Не могу понять в чём дело.
В ЧЗ КМ в обороте. Пока что использую тестовый ЛК, который crptech
Код маркировки: 0102900001398183215;yD0VzGfDGOj91FFD092dGVzdK9sDt9fdiOmOBn+z9JbU9YVVCaqLT7kYOhrVgw=
Пишу программу в Delphi 2006
Код
mark := check[i].getGoods().GetMark();
if (length(mark) > 0)
then begin
if (Copy(mark,1,2) = '01') and
(Copy(mark,17,2) = '21')
then begin
status := 2;
mark := StringReplace(mark,#$1D,'',[rfReplaceAll]);
mark := copy(mark,1,31) + chr(29) + copy(mark,32,6) + chr(29) + copy(mark,38,length(mark));

// Запускаем проверку КМ
fptr.setParam(fptr.LIBFPTR_PARAM_MARKING_CODE_TYPE, fptr.LIBFPTR_MCT12_AUTO);
fptr.setParam(fptr.LIBFPTR_PARAM_MARKING_CODE, mark);
fptr.setParam(fptr.LIBFPTR_PARAM_MARKING_CODE_STATUS, status);
fptr.setParam(fptr.LIBFPTR_PARAM_MARKING_WAIT_FOR_VALIDATION_RESULT, true);
fptr.setParam(fptr.LIBFPTR_PARAM_MARKING_PROCESSING_MODE, 0);
fptr.beginMarkingCodeValidation;

dtBegin := Now;
// Дожидаемся окончания проверки и запоминаем результат
while True
do begin
fptr.getMarkingCodeValidationStatus;
if fptr.getParamBool(fptr.LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY)
then break;
if Now - dtBegin > timeout
then break;
end;

validationResult := fptr.getParamInt(fptr.LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT); // Результат проверки сведений о товаре (тег 2106) int

error := fptr.getParamInt(fptr.LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_ERROR); // Ошибка онлайн проверки int
errorDescription := fptr.getParamString(fptr.LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_ERROR_DESCRIPTION); // Описание ошибки онлайн проверки string
if error <> 0
then begin
fptr.declineMarkingCode;
RaiseException(
CustomException.Create(
'Товар '+IntToStr(check[i].GetGoods().GetId())+' не прошёл проверку в Честном знаке. Замените товар.'#13+
'Описание ошибки: ' + errorDescription
)
);
end;
fptr.acceptMarkingCode;
end
else mark := '';
end;

.... Добавляю инфу по товару
itemType := 1;
if deviceFfdVersion >= 120
then begin
//ед.измерения
fptr.setParam(fptr.LIBFPTR_PARAM_MEASUREMENT_UNIT, fptr.LIBFPTR_IU_PIECE); // штуки. в версии драйвера ККТ 1.2 - обязательно
addToLog('E589F79E95B04B8DBCF41719CD36F98C');
itemType := 32; // - товар не имеющий код маркировки

if (length(mark) > 0)
then begin
fptr.setParam(fptr.LIBFPTR_PARAM_MARKING_CODE, mark);
fptr.setParam(fptr.LIBFPTR_PARAM_MARKING_CODE_STATUS, status);
fptr.setParam(fptr.LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT, validationResult);
fptr.setParam(fptr.LIBFPTR_PARAM_MARKING_PROCESSING_MODE, 0);

itemType := 33 // - товар имеющий код маркировки
end;
end;
// Признак предмета расчета
fptr.setParam(1212, itemType);

resCode := fptr.registration;
------------------------------------------------------------------------
В итоге получаю:
409 [Некорректный код маркировки]"
26.06.2024 12:01
2024.06.26 12:29:45.996 T: T:00003DA0 INFO [FiscalPrinter] lastFiscalDocumentNumber = 221

2024.06.26 12:29:45.996 T: T:00003DA0 INFO [FiscalPrinter] output > 40
2024.06.26 12:29:45.996 T: T:00003DA0 INFO [Transport] send fiscal (39) 39 40 34 30 (4 bytes total)
2024.06.26 12:29:46.022 T: T:00003DA0 INFO [Transport] recv fiscal (39) 39 30 30 03 00 00 01 00 18 06 1A 0A 38 39 39 39 39 30 37 38 39 30 32 30 31 36 37 35 38 DD 00 00 00 3B (34 bytes total)
2024.06.26 12:29:46.022 T: T:00003DA0 INFO [FiscalPrinter] input < [03h][00h][00h][01h][00h][18h][06h][1Ah][0Ah]89999078902016758▌[00h][00h][00h];
2024.06.26 12:29:46.022 T: T:00003DA0 INFO [FiscalPrinter] Запись кеша: []
2024.06.26 12:29:46.022 T: T:00003DA0 INFO [FiscalPrinter] Файл кеша (до изменения):
2024.06.26 12:29:46.022 T: T:00003DA0 INFO [FiscalPrinter] {
"additionalFooter" : "",
"additionalHeader" : "",
"lastFiscalDocumentNumber" : 221
}

2024.06.26 12:29:46.022 T: T:00003DA0 INFO [FiscalPrinter] Файл кеша успешно записан ...
2024.06.26 12:29:46.022 T: T:00003DA0 INFO [FiscalPrinter] Записанный JSON: {
"additionalFooter" : "",
"additionalHeader" : "",
"lastFiscalDocumentNumber" : 221
}

2024.06.26 12:29:46.022 T: T:00003DA0 INFO [FiscalPrinter] output > 01
2024.06.26 12:29:46.023 T: T:00003DA0 INFO [Transport] send fiscal (3A) 3A 40 30 31 (4 bytes total)
2024.06.26 12:29:46.024 T: T:00003DA0 INFO [Transport] recv fiscal (3A) 3A 30 30 30 3B 37 3B 30 3B 30 3B 30 3B (13 bytes total)
2024.06.26 12:29:46.024 T: T:00003DA0 INFO [FiscalPrinter] input < 0;7;0;0;0;
2024.06.26 12:29:46.024 T: T:00003DA0 INFO [FiscalPrinter] output > b11;0;1;
2024.06.26 12:29:46.024 T: T:00003DA0 INFO [Transport] send fiscal (3B) 3B 40 62 31 31 3B 30 3B 31 3B (10 bytes total)
2024.06.26 12:29:46.110 T: T:00003DA0 INFO [Transport] recv fiscal (3B) 3B 30 30 (3 bytes total)
2024.06.26 12:29:46.110 T: T:00003DA0 INFO [FiscalPrinter] input <
2024.06.26 12:29:46.110 T: T:00003DA0 INFO [FiscalPrinter] output > 01
2024.06.26 12:29:46.110 T: T:00003DA0 INFO [Transport] send fiscal (3C) 3C 40 30 31 (4 bytes total)
2024.06.26 12:29:46.111 T: T:00003DA0 INFO [Transport] recv fiscal (3C) 3C 30 30 30 3B 37 3B 31 3B 33 38 3B 30 3B (14 bytes total)
2024.06.26 12:29:46.111 T: T:00003DA0 INFO [FiscalPrinter] input < 0;7;1;38;0;
2024.06.26 12:29:46.111 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_TEXT (65536) = " "
2024.06.26 12:29:46.111 T: T:00003DA0 INFO [FiscalPrinter] libfptr_print_text() [0x09BE0FE8]
2024.06.26 12:29:46.111 T: T:00003DA0 INFO [FiscalPrinter] output > PA1; ;1;1;
2024.06.26 12:29:46.111 T: T:00003DA0 INFO [Transport] send fiscal (3D) 3D 40 50 41 31 3B 20 3B 31 3B 31 3B (12 bytes total)
2024.06.26 12:29:46.117 T: T:00003DA0 INFO [Transport] recv fiscal (3D) 3D 30 30 (3 bytes total)
2024.06.26 12:29:46.117 T: T:00003DA0 INFO [FiscalPrinter] input <
2024.06.26 12:29:48.293 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_CODE_TYPE (65826) = LIBFPTR_MCT12_AUTO (256)
2024.06.26 12:29:48.293 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_CODE (65760) = "0102900001398183215;yD0VzGfDGOj91FFD092dGVzdK9sDt9fdiOmOBn+z9JbU9YVVCaqLT7kYOhrVgw="
2024.06.26 12:29:48.293 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_CODE_STATUS (65846) = LIBFPTR_MES_DRY_FOR_SALE (2)
2024.06.26 12:29:48.293 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_WAIT_FOR_VALIDATION_RESULT (65845) = true
2024.06.26 12:29:48.293 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_PROCESSING_MODE (65852) = 0
2024.06.26 12:29:48.293 T: T:00003DA0 INFO [FiscalPrinter] libfptr_begin_marking_code_validation() [0x09BE0FE8]
2024.06.26 12:29:48.338 T: T:00003DA0 INFO [FiscalPrinter] output > U@0;0102900001398183215;yD0VzGfDGOj[1Dh]91FFD0[1Dh]92dGVzdK9sDt9fdiOmOBn+z9JbU9YVVCaqLT7kYOhrVgw=;╙[07h][01h][00h][02h]6[08h][01h][00h][00h];
2024.06.26 12:29:48.338 T: T:00003DA0 INFO [Transport] send fiscal (3E) 3E 40 55 40 30 3B 30 31 30 32 39 30 30 30 30 31 33 39 38 31 38 33 32 31 35 7E 3B 79 44 30 56 7A 47 66 44 47 4F 6A 1D 39 31 46 46 44 30 1D 39 32 64 47 56 7A 64 4B 39 73 44 74 39 66 64 69 4F 6D 4F 42 6E 2B 7A 39 4A 62 55 39 59 56 56 43 61 71 4C 54 37 6B 59 4F 68 72 56 67 77 3D 3B D3 07 01 00 02 36 08 01 00 00 3B (104 bytes total)
2024.06.26 12:29:48.340 T: T:00003DA0 INFO [Transport] recv fiscal (3E) 3E 31 36 (3 bytes total)
2024.06.26 12:29:48.340 T: T:00003DA0 ERROR [FiscalPrinter] Код ошибки ККТ - 3631h
2024.06.26 12:29:48.341 T: T:00003DA0 ERROR [FiscalPrinter] Объекту 0x09BE0FE8 присвоен код ошибки 401 [Процедура проверки КМ уже запущена]
2024.06.26 12:29:48.341 T: T:00003DA0 INFO [FiscalPrinter] libfptr_get_marking_code_validation_status() [0x09BE0FE8]
2024.06.26 12:29:48.342 T: T:00003DA0 ERROR [FiscalPrinter] Объекту 0x09BE0FE8 присвоен код ошибки 422 [Данный КМ отсутствует в таблице]
2024.06.26 12:29:48.342 T: T:00003DA0 INFO [FiscalPrinter] libfptr_accept_marking_code() [0x09BE0FE8]
2024.06.26 12:29:48.342 T: T:00003DA0 ERROR [FiscalPrinter] Объекту 0x09BE0FE8 присвоен код ошибки 422 [Данный КМ отсутствует в таблице]
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] > 1214 (1214) = 4
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_COMMODITY_NAME (65631) = "3905602 Брюки для девочки Николь БН-0317 410 84/164 синий"
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_QUANTITY (65633) = 1
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_PRICE (65632) = 2070
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_MEASUREMENT_UNIT (65851) = LIBFPTR_IU_PIECE (0)
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_CODE (65760) = "0102900001398183215;yD0VzGfDGOj91FFD092dGVzdK9sDt9fdiOmOBn+z9JbU9YVVCaqLT7kYOhrVgw="
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_CODE_STATUS (65846) = LIBFPTR_MES_DRY_FOR_SALE (2)
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT (65886) = 0
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_PROCESSING_MODE (65852) = 0
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] > 1212 (1212) = 33
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_DEPARTMENT (65568) = 1
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] > LIBFPTR_PARAM_TAX_TYPE (65569) = LIBFPTR_TAX_VAT20 (7)
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] libfptr_registration() [0x09BE0FE8]
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [FiscalPrinter] output > 34
2024.06.26 12:29:48.343 T: T:00003DA0 INFO [Transport] send fiscal (3F) 3F 40 33 34 (4 bytes total)
2024.06.26 12:29:48.345 T: T:00003DA0 INFO [Transport] recv fiscal (3F) 3F 30 30 34 3B 34 3B 34 3B 32 36 32 3B (13 bytes total)
2024.06.26 12:29:48.345 T: T:00003DA0 INFO [FiscalPrinter] input < 4;4;4;262;
2024.06.26 12:29:48.345 T: T:00003DA0 INFO [FiscalPrinter] Чтение таблицы КМ (0 элементов)
2024.06.26 12:29:48.345 T: T:00003DA0 ERROR [FiscalPrinter] Объекту 0x09BE0FE8 присвоен код ошибки 409 [Некорректный код маркировки]
2024.06.26 12:29:49.878 T: T:00003DA0 INFO [FiscalPrinter] libfptr_cancel_receipt() [0x09BE0FE8]
2024.06.26 12:29:49.879 T: T:00003DA0 INFO [FiscalPrinter] output > a1
2024.06.26 12:29:49.879 T: T:00003DA0 INFO [Transport] send fiscal (40) 40 40 61 31 (4 bytes total)
2024.06.26 12:29:50.713 T: T:00003DA0 INFO [Transport] recv fiscal (40) 40 30 30 (3 bytes total)
2024.06.26 12:29:50.713 T: T:00003DA0 INFO [FiscalPrinter] input <
2024.06.26 12:29:50.713 T: T:00003DA0 INFO [FiscalPrinter] output > 01
2024.06.26 12:29:50.713 T: T:00003DA0 INFO [Transport] send fiscal (41) 41 40 30 31 (4 bytes total)
2024.06.26 12:29:50.714 T: T:00003DA0 INFO [Transport] recv fiscal (41) 41 30 30 30 3B 37 3B 30 3B 30 3B 30 3B (13 bytes total)
2024.06.26 12:29:50.714 T: T:00003DA0 INFO [FiscalPrinter] input < 0;7;0;0;0;
2024.06.26 12:29:51.318 T: T:00003DA0 INFO [FiscalPrinter] libfptr_close() [0x09BE0FE8]
2024.06.26 12:29:51.417 T: P50LOG:00002A1C INFO [FiscalPrinter] Завершение выполнения потока P50LOG:00002A1C
2024.06.26 12:29:51.431 T:P50POLL:00001604 INFO [FiscalPrinter] Завершение выполнения потока P50POLL:00001604
2024.06.26 12:29:52.199 T: T:00003DA0 INFO [FiscalPrinter] libfptr_destroy() [0x09BE0FE8]
2024.06.26 12:29:52.299 T: ASST:000065BC INFO [FiscalPrinter] Завершение выполнения потока ASST:000065BC
2024.06.26 12:29:52.499 T:LOGPOLL:00000DBC INFO [FiscalPrinter] Завершение выполнения потока LOGPOLL:00000DBC
26.06.2024 12:02
Вы чем торгуете то? Штуками или частями? Почему status = 2 ?
Миниатюры
Нажмите на изображение для увеличения
Название: Screenshot_2024-06-26-12-05-27-707_com.android.chrome.jpg
Просмотров: 55
Размер:	430.7 Кб
ID:	12420  

Правка: me722, 26.06.2024 12:07
26.06.2024 12:07
а какой должен быть статус?
LIBFPTR_MES_PIECE_SOLD
26.06.2024 12:08
Цитата:
nikolasiii а какой должен быть статус?
LIBFPTR_MES_PIECE_SOLD
Status - это судя по описанию с атол тег 2003. Таблицу прикрепил выше.
Для штук судя по всему - 1
26.06.2024 12:09
т.е. при реализации маркированного товара надо указывать LIBFPTR_MES_PIECE_SOLD
а при возврате маркированного товара LIBFPTR_MES_PIECE_RETURN
так?
26.06.2024 12:10
me722, ага. Спасибо! Сразу не вкурил.
26.06.2024 12:14
Цитата:
nikolasiii me722, ага. Спасибо! Сразу не вкурил.
Если Вы брали пример с integtation.atol, то там пример дурацкий со status = 2 для таблеток. Торговля частями.
26.06.2024 12:15
status заменил на 1 в случае реализации и 3 в случае возврата
ошибка та же.
Часовой пояс GMT +3, время: 03:26.

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