Цитата: me722 ➤ В первом логе попытка проверки при уже запущенной проверке. Как следствие не добавляется код в таблицу.
В тест драйвере отменяю проверку. Потом в своей программе запускаю проверку. Всё равно в лог сыпется ошибка "401 [Процедура проверки КМ уже запущена]"
Если в тест драйвере отменяю проверку, потом делаю "Начать проверку", то всё проходит нормально. В моей программе не пойму почему не запускается проверка.
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_PROCESSING_MODE, 0);
fptr.setParam(fptr.LIBFPTR_PARAM_MARKING_WAIT_FOR_VALIDATION_RESULT, true);
fptr.setParam(fptr.LIBFPTR_PARAM_MARKING_NOT_SEND_TO_SERVER, false);
fptr.setParam(fptr.LIBFPTR_PARAM_MARKING_NOT_FORM_REQUEST, false);
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
// isRequestSent = fptr.getParamBool(IFptr.LIBFPTR_PARAM_IS_REQUEST_SENT); // КМ был отправлен на сервер bool
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
RaiseException(
CustomException.Create(
'Товар '+IntToStr(check[i].GetGoods().GetId())+' не прошёл проверку в Честном знаке. Замените товар.'#13+
'Описание ошибки: ' + errorDescription
)
);
end;
fptr.acceptMarkingCode;