Форум по программам и оборудованию > > >

ЕГАИС. Нужна ли вообще, а тем более для розницы маркировка групповой тары?

20.06.2019 2:01


28.12.2018 21:21
Greben
 
Согласен. Иногда коробка в ШК как "новогодняя ёлка".

Но что мешает "пикнуть" товароведу другой ШК и, в конце концов усвоить, где на коробке располагается "нужный" , скорее всего "фабричный" ШК. Особенно, если таких коробок в приходе несколько.
Под отсутствием необходимости проверять ШК требованиям ФСРАР - тут речь идёт о корректности ШК, присланных Поставщиком во входящей ТТН. "Пикнутые" ШК просто сверяются с ТТН на "совпадение".

Если коробка банально была перепутана при разгрузке - если смогут, то экспедиторы принесут другую, возможно нужную. Иначе - потребуется вмешательство администрации.
29.12.2018 11:41
AndreyZh
 
Цитата:
Greben Приношу извинения уважаемому сообществу разработчиков УС для ЕГАИС в том что "взбаламутил" тему приёмки Розницей приходных ТТН в стиле "покоробочного" учета.
На фоне новостей о "нюансах" такого учёта для конечного владельца "помарочной" продукции, прозвучавших на форумах ФСРФР и Egais2016, приём Розницей ТТН "на доверии" (даже для "фабричной" продукции"), откладывается на весьма неопределённое время, если не сказать "на всегда".
Соответственно, из ранее озвученного мною алгоритма действий "товароведа" при приёмке "машины", остаётся востребованным только лишь один пункт:
1) Сканирует "коробку". Нет такой - "Несите другую, эта не наша".
Вскрывать же "чужую" коробку (перепутанную грузчиками или водителем), и "пикать" из неё марки - как то неэтично по отношению к другим получателям АП в данной "развозке".

Для этого, IMXO, достаточно реализовать в "USLandEgais" ИНДИКАЦИЮ (а не УЧЁТ), принадлежности "коробки" получателю:
Т.е., в моём представлении, возможные действия "USLandEgais" при приёмке входящей ТТН:
1. Создаётся временный пул "упаковок" из данных тэгов <ce:boxnumber>ШК</ce:boxnumber>. При этом соответствие формата ШК "упаковок" требованиям ФСРАР можно игнорировать.
2. Если товаровед "пикает" ШК, который не соответствует типу "марка", то "искать" этот ШК среди "упаковок". Если ШК найден, то его игнорировать (или оповещать - "ШК коробки присутствует в ТТН"). Иначе - звуковое и визуальное сообщение (например, "ШК коробки не найден").
3. В дальнейшем пул "упаковок" удаляется, и в учёте не используется.
Подумал, что наверное могут существовать бизнес процессы приёмки, в которых стоит задача максимально быстро отпустить "чужого" водителя или это приёмка на типа РЦ

То есть сначала забирают коробки, затем, когда-нибудь проверяют марки, а уже по этим результатам разбираются с поставщиками... Мы же не боимся трудностей?

Просто в реале... Проверяют бутылки, если ок, то подписываются бумажки и отпускают водителя-экспедитора, а иначе: созвон с поставщикоми решение проблем... Это сложности привнесенные поставщиком - их водитель подождет!

Цитата:
plvn24 Вот тут не понял. На коробке понаклеено много каких шк. И что будет - "несите другую" ?
Это, как всегда должен быть геморрой для разработчиков, которые должны включать свой ФЛК информации считываемой из источника, разбираясь по теме "а это ещё что?"
05.01.2019 11:42
AndreyZh
 
Цитата:
Greben Согласен. Иногда коробка в ШК как "новогодняя ёлка"...
Проверено на реально пришедших заводских коробах от посредника с алкопродукцией с новыми марками... Несмотря на несколько разных ШК на коробках, код групповой тары четко выделен и считывается обычным двумерным сканером, а если пикнуть другой ШК, то программа ругается на несуществующий ШК тары в накладной.

Конечно, если коробок много, от 20 ящиков дешевого бухла, может быть и есть смысл? В начале в сервисе приёма пропикать ШК коробов, а приняв их от водителя, затем спокойно проверять каждую бутылку или согласится со всеми марками ТТН без приёма каждой бутылки.

Тестовая поставка была показательной: 5 коробок с водкой 3 наименований и ещё 7 наименований без выделения групповой тары.
23.04.2019 10:10
AndreyZh
 
Люблю такие вопросы и пожелания, полученные из любого источника... Не зря говорят - правильно поставленный вопрос - половина ответа, а здесь целых 80% решения...
Цитата:
Добавление ФЛК на число символов, полученных от сканера в сервисе приёмки ТТН (с марками "АМ150" или "АМ68") или "упаковкой" (её длина 26 или 18 символов), IMXO, не повредит никому. Решать, конечно, Вам.

1. Если "длина" не равна (18, 26, 68, 150), тогда сообщение об ошибке.
2. Иначе, если "длина" равна (18, 26), тогда ФЛК "упаковки".
3. Иначе, если "длина" равна (68, 150), тогда ФЛК "марки".
23.04.2019 15:35
AndreyZh
 
Вышеуказанная задача решена и "масло сделано более масленным". Покажу в картинках реакцию программы. По сути пришлось доработать единственную функцию анализа ШК, вызываемую на любой запрос ШК во всех экранных формах и большую часть времени потратил на тест каждой её ветки.

На картинках, в сервисе приёма, где наибольшее число вариаций отражены типичные неверные значения вносимые "ручками", копипастом или со сканера:










Хотя и раньше на дополнительных контролах программа не давала вводить нелогичные по ФЛК значения, анализирую содержимое накладной в ЕГАИС:







Полный список контролов и алгоритм действий и реакций программы можно посмотреть в подробно описанном исходном коде программы:

Текст функции контроля вводимого ШК марки и групповой тары:
Код:
* -------------------------------------------------------------------------------------------------
*   Проверяю на правильность и логичность кода акцизной марки на длину и вхождение допустимых набо-
*   ров символов. Вызов из различных режимов - универсальный код. Параметры:
*       cAm     68 или 150 разрядный код приходящий со сканера 2d
*       lSerAM  Истина, если вызов из сервиса проверок акцизных марок
*       lBox    Истина, если контролировать ещё возможность ШК групповой тары из сервиса приёма
*   05.01.2018  При чтении ^V из блокнота, а из Excel вообще последний знак кривой. Убрал, что прог-
*       рамма ругается на ошибку и иммитирует нажатие клавиши Enter, если вводим в ручную
*   18.06.2018  Обработка, пока примитивная, т.к. не знаю алгоритмов марок DataMax 150 знаков
*   29.12.2018  Добавил анализ ШК групповой тары - набор цифр
*   23.04.2019  Добавил ФЛК и на длину ШК групповой тары, который м.б. 18, 26 цифровых знаков
FUNC lgCheckAM( cAm, lSerAM, lBox )
    LOCA nI:=0, nL:=0, lBad:=FALSE
    DEFAULT lSerAm TO FALSE, lBox TO FALSE
    
    //  Убираю пробелы и определение длины марки. Привожу ШК к допустимой длине, отбрасывая мусорный символ
    cAm := Alltrim(cAm)
    nL  := Len(cAm)
    
    DO CASE
    CASE nL = 68        //  Правильная старая марка
    CASE nL = 69        //  Старая марка, введенная копипастом
        cAm     := Left(cAm,68)
        nL      := 68
    CASE nL = 150       //  Новая марка, введенная со сканера
    CASE nL = 151       //  Новая марка, введенная копипастом
        cAm     := Left(cAm,150)
        nL      := 150
    CASE nL = 18        //  Правильный ШК групповой тары
    CASE nL = 19        //  ШК групповой тары введенный копипастом
        cAm     := Left(cAm,18)
        nL      := 18
    CASE nL = 26        //  Правильный ШК групповой тары
    CASE nL = 27        //  ШК групповой тары введенный копипастом
        cAm     := Left(cAm,26)
        nL      := 26
    ENDC

    IF nL > 26          //  Акцизная марка или сбойный ШК
        IF !((nL = 68) .OR. (nL = 150))   THEN ErrMess("У Вас марка "+Alltrim(Str(nL))+"! Однако длина марки должна быть точно равна 68 или 150 символов!",cError); RETU FALSE
        
        //  Символы должны быть в верхнем регистре и входить в разрешенный набор знаков: цифры и латинские буквы
        FOR nI := 1 TO nL
            IF !( Subs(cAm,nI,1) $ _SIMB_AM )
                lBad    := TRUE
                EXIT
            ENDI 
        NEXT nI
        IF lBad THEN Errmess("Акцизная марка или ШК содержит недопустимые символы! Символы должны быть в верхнем регистре и входить в разрешенный набор знаков: цифры и латинские буквы",cError); RETU FALSE

        //  Проверка на повторный ввод марки в сервисе проверок акцизных марок
        IF lSerAm
            nI  := ascan(aeAM,{|x|x[6]==cAm})
            IF nI > 0 THEN ErrMess("Уже вводили данную акцизную марку в запросе!",cError); RETU FALSE
        ENDI
    ELSE                //  ШК групповой тары или мусор
        IF lBox         //  Проверяю, как ШК групповой тары
            IF !((nL = 18) .OR. (nL = 26))   THEN ErrMess("Неверная длина ШК групповой тары = "+Alltrim(Str(nL))+"! Должная быть 18 или 26 цифровых знаков!",cError); RETU FALSE

            //  Все символы должны иметь числовое значение
            FOR nI := 1 TO nL
                IF !( Subs(cAm,nI,1) $ "0123456789" )
                    lBad    := TRUE
                    EXIT
                ENDI 
            NEXT nI
            IF lBad THEN Errmess("Штрихкод групповой тары может иметь только цифры!",cError); RETU FALSE
        ELSE            //  Проверка акцизной марки. Не вызов, как ФЛК групповой тары
            ErrMess("У Вас марка "+Alltrim(Str(nL))+"! Однако длина марки должна быть точно равна 68 или 150 символов!",cError); RETU FALSE
        ENDI
    ENDI
    RETU TRUE


P.S. До кучи сделал сообщения более детальными и понятными

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