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

Техническая реализация запрета продажи маркированных товаров : Маркировка

19.05.2024 8:04


16.01.2024 18:06
victuan
 
Цитата:
volk13 Наконец-то всё отладил, и с завтрашнего дня на всех РМК своих магазинов запускаю контроль КМ через api-запросы в ЦРПТ на предмет всех запрещённых статусов КМ.
А режим проверки в оффлайн-режиме (когда инет пропал) будешь делать?
16.01.2024 18:10
volk13
 
Цитата:
victuan А режим проверки в оффлайн-режиме (когда инет пропал) будешь делать?
конечно буду, но он пока не опубликован.. ждём..
17.01.2024 17:16
volk13
 
Цитата:
volk13 с завтрашнего дня на всех РМК своих магазинов запускаю контроль КМ через api-запросы в ЦРПТ
Первый день наблюдений показал (по анализам логов), что редко, но всё-же возникают ошибки доступа к ЧЗ, а именно - практически в каждом магазине - обнаружил за день по несколько прерываний curl по тайм-ауту (код 28), ну и попалось несколько таких сообщений:
Цитата:
code: 429, description: Request has been throttled: time expired"
.

В остальном - всё работает чётко, выявляются при продаже проблемы и с просрочкой, и даже с отсутствием в обороте некоторых позиций (попадалась только вода), т.е. я так понимаю, что производитель марки наклеил, а в ЧЗ информацию не передал..

Ну и конечно немного напрягает то, что пока хоть и очень мало запросов (в масштабах страны) к БД ЦРПТ, но уже видны проблемы с эпизодической недоступностью ресурса (см. выше).. А что же будет, когда все "ломанутся" проверять КМ-ы?.. Тут и разбивка на CDN-площадки, боюсь, не спасёт..

Вот как-то так..
18.01.2024 16:35
volk13
 
Второй день - пока замечательный (в плане того, что никаких проблем с доступностью к БД ЧЗ не было).
Но вот насчёт свойств КМ - пока ситуация следующая:
продолжают попадаться КМ, которые имеют признак "не в обороте", а именно это касается:
- как воды, например: 4680029460861 (Вода минеральная лечебная газированная Нагутская №17, 1500мл, пласт.бутылка)
- так и пива, например: 4680036915934 (Пиво Жигули Барное светлое фильтрованное 4,9%, 450 мл)
- ещё пример пива: 4605664011308 (Пиво Золотая Бочка Классическое светлое фильтрованное 5,2%, 450 мл)

Т.е. - марка на этих видах продукции есть, но часть бутылок/банок - числится в ЧЗ, а часть - нет (эта часть - имеет дату производства ниже, чем та, которая проходит проверку).

В связи с этим (что попадаются в группах вода и пиво) КМ, которые не зарегистрированы в ЧЗ, я со вчерашнего вечера включил временную "поблажку" для групп "вода" и "пиво" на признак "не в обороте", т.е. - если при проверке КМ из этих групп реквизит "realizable = false" (т.е. КМ не в обороте), то - РМК пропускает такой товар к продаже.
Но попутно - идёт запись в лог о том, что такой КМ попался, так что я пока наблюдаю за этой статистикой (не мешая продавать), ну и потом, когда подобные КМ (которые не зарегистрированы в БД ЧЗ) более-менее "вымоются", то - "поблажку" отключу..

Вот как-то так...

Правка: volk13, 18.01.2024 16:44
19.01.2024 11:54
volk13
 
Цитата:
student у курла есть опции по времени работы и прочие плюшки - мы их выставляем и зависаний не наблюдалось как ранее так и сейчас - отрабатывают штатно
И всё-же - я уже два раза поймал "зависание" curl-а при запросе марок...
Т.е. вот, например, такой код (1С):
Цитата:
...
КоманднаяСтрока = "" + ФайлCurl + " --connect-timeout 5 --max-time 10 "+СтрокаЗапроса+" -o """ + ФайлОтвета + """";
...
Шел = СоздатьОбъект("WScript.Shell");
КодВозврата = Шел.Run(парКоманднаяСтрока,0,-1);
уже два раза привёл к тому, что Шел не отдаёт КодВозврата.. (т.е. получется, что в curl не срабатывают опции таймаута, причины - не могу понять, но факт остаётся фактом)... Приходится принудительно прерывать процесс Шела (с кодом возврата -1073741510), ибо без этого дальше алгоритм не отрабатывается...

И я вот что подумал - указать в Шел.Run не "-1", а "0" (т.е. - не дожидаться завершения работы curl-а)...
НО дополнительно в цикле - контролировать появление ФайлаОтвета - и как только ФайлОтвета появился - цикл прерывать, ну а если не появился в течение указанных уже мною секунд (а не параметром curl) - то тогда цикл прерывать уже по моему таймауту... (это уже точно сработает)

Что думаешь по поводу такого "костыля-извращения"? Костыль должен работать не хуже, чем то, как выше, но зато - не будет проблем с "зависанием". Согласен?
Или я то-то не додумал и есть и другие варианты?
19.01.2024 12:23
MWWRuza
 
Я вот думаю... А чего ты так в курл уперся? Вроде, насколько я понял, твоя УС как и моя, на 1с77(или я чего-то путаю, тогда ой... Просто формулы МРЦ ты выкладывал с обработками под 77, отсюда и вывод )... Только у меня бэк на ней, а фронты на УКМWIN от student, а у тебя все на ней, и фронты в том числе...
Есть отличная разработка от коллеги Djelf, внешняя компонента curl1c.dll, по созвучию называемвя "карлик". По сути, это тот-же curl, только завернутый в оболочку ВК для 1С. Соответственно работает там, где и его основа curl. Работает хорошо, и использовать проще, чем чистый curl... Да, есть несколько "нюансов", но я их уже отловил и знаю как обойти. Кстати, victuan, тоже ее активно использует в своих разработках.
19.01.2024 12:30
volk13
 
Цитата:
MWWRuza А чего ты так в курл уперся?
потому что мне интересно "добить" этого паразита, иначе я не успокоюсь..
это - уже дело принципа

Цитата:
MWWRuza внешняя компонента curl1c.dll, по созвучию называемвя "карлик"
знаю я про неё, есть она у меня, но она же является лишь оболочкой, и по сути - использует curl внешний, насколько я понимаю..
И если проблемы именно с curl возникают, то мне и карлик не поможет тогда.. (просто лишняя "прокладка" будет между мной и curl-ом) верно?
19.01.2024 12:36
MWWRuza
 
Цитата:
volk13 использует curl внешний, насколько я понимаю
Нет, не так. Это не прокладка, а самостоятельная dll. curl в нее внутрь зашит, как библиотека на этапе компиляции. Никакой внешний curl ей не нужен.
Во вложении актуальная на сегодня, стабильная версия 014.
Вложения
Тип файла: zip curl1c_1.0.0.14.zip (1.17 Мб, 17 просмотров)
19.01.2024 12:41
student
 
Цитата:
volk13 что Шел не отдаёт КодВозврата.
шелл через создание объекта не юзаем - в древние времена было замечено что он сам по себе временами виснет при постоянном использовании - походу где то утечка

того что в курле не работает таймауты - не замечали, попробуй проставить
--trace-time --trace-asci
с выводом в файл и поймать "зависание" курла м.б. что либо понятнее будет

а так - да своя проверка всегда лучше, только затрат больше с точки зрения реализации
19.01.2024 12:46
volk13
 
Цитата:
student а так - да своя проверка всегда лучше, только затрат больше с точки зрения реализации
ну затраты на реализацию меня не смущают, т.к. сам реализовываю, а затраты в плане мощностей процессоров, памяти и т.д - будут неощутимы.
Рад, что поддержал мою идею, ну и за доп.параметры спасибо - посмотрю на досуге.
Часовой пояс GMT +3, время: 08:04.

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