![]() |
|
v7: АТОЛ. Товар с маркировкой без фактической проверки КМ в ФФД 1.2. | ☑ | ||
---|---|---|---|---|
0
programerfree
15.10.24
✎
15:33
|
Доброго времени суток.
Используется: 1С ТиС 7.7 и драйвер АТОЛ 10.9.1.0. Имеется обработка fr_comm.ert для взаимодействия с драйвером АТОЛ. В данной обработке реализовано пробитие чека на АТОЛ 55Ф. Сейчас добавляю функционал работы с маркированным товаром "Честный знак". Из документации к драйверу понял, что перед регистрацией товара необходимо выполнить алгоритм проверки кода маркировки: beginMarkingCodeValidation(), getMarkingCodeValidationStatus() и acceptMarkingCode(). Данная проверка не всегда возможна из-за нестабильного интернет соединения. После успешного прохождения проверки LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT (тег 2106) содержит значение 15. Попробовал не выполняя проверку вручную задать LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT = 15 и выполнить acceptMarkingCode(). В итоге получил: (422) Данный КМ отсутствует в таблице. Есть ли возможность "рассказать" ФР, что проверка прошла успешна без фактического прохождения самой проверки? |
|||
1
Злопчинский
15.10.24
✎
16:10
|
есть готовые решения.
без почты - ССЗБ. |
|||
2
programerfree
15.10.24
✎
16:14
|
(1) Пока попадались решения с полноценной проверкой.
Например: ФФД 1.2 - пробитие чека через через COM драйвер ККМ v10 (АТОЛ) - пример с маркировкой |
|||
3
Злопчинский
15.10.24
✎
16:23
|
Сорри, не дочитал по существу (0)
|
|||
4
programerfree
15.10.24
✎
16:54
|
(0) (422) Данный КМ отсутствует в таблице
По описанию ошибки выполнения acceptMarkingCode() предполагаю, что при начале проверки beginMarkingCodeValidation() КМ записывается в память ФР. Далее после получения результата проверки getMarkingCodeValidationStatus() LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT = 15 выполняется подтверждение КМ acceptMarkingCode(). После этого заполняются необходимые теги для регистрации товара и при самой регистрации registration() ФР берет КМ из памяти проверенных... Ошибка скорее всего говорит, что при выполнении acceptMarkingCode() в памяти ФР нет КМ. И нужно ли вообще acceptMarkingCode(), если в памяти ФР будет КМ и LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT = 15. Может возможно все необходимые теги записать руками без фактической проверки? Пока мысли такие. |
|||
5
programerfree
18.10.24
✎
10:42
|
(0) Дополнение к основному вопросу.
Из информации о значениях [М] ( https://markirovka.ru/knowledge/tovarnye-gruppy/obschie-voprosy-gis/znachenie-m-v-fiskalnykh-dokumentakh-chekakh ) понял, что возможны случаи, когда проверка не будет выполнена и это не помешает дальнейшему формированию и пробитию чека. До этого пытался имитировать положительный результат проверки, т.к. интернет соединение не стабильное и проверка не всегда возможна. Сделал цикличное получение результата проверки getMarkingCodeValidationStatus() на протяжении заданного времени. Выход из цикла выполняется или по истечению времени или по получению результата проверки ПустоеЗначение(FR.getParamBool(FR.LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY))=0. После цикла выполняется acceptMarkingCode(). Из документации наряду с acceptMarkingCode() есть еще declineMarkingCode() и cancelMarkingCodeValidation(). Как правильно должен выглядеть часть алгоритма в случае выходы из цикла проверки по истечению времени? Так же выполнять acceptMarkingCode() и в результате статус будет не [М+], а [М]? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |