Имя: Пароль:
1C
1С v8
Обмен с честным знаком. Код не обнаружен.
0 Valery
 
25.10.22
14:56
Производим отгрузку товара контрагенту. Оформили документ реализация. подобрали маркированный товар. Оформили документ отгрузка товара. Производим передачу данных. Получаем  ошибку "06: Код 0104620079060994215nA3(lCMLC8Rb не найден в базе данных.". Заходу в честный знак. Товар с данным кодом есть. Подобрали в накладную товар с другим кодом. Та же ошибка. Сравнил в ЧЗ документы выгруженные ранее без ошибок и текущий. В отличие от ранее выгруженных, отсутствует наименование товара. Это наверное не критично. главное коды. Почему то не находит их.
1 demONx6
 
06.04.23
05:43
Здравствуйте. Нашли причину?
2 lenkavovka
 
06.04.23
10:23
Откуда код? Со сканера, или документа ЭДО?
Ищите неотображаемые символы, некоторые сканеры на русской раскладке клавиатуры "портят" часть кода.
Здесь всё просто: или некорректно передаёте идентификатор, или такого не знает Честный знак. Вероятнее всего первый случай, но и во втором не проблема - пишите в поддержку ЧЗ, они быстро отвечают.
3 Salimbek
 
06.04.23
12:07
(1) Без фотки кода не получится. Тот код, что в (0) проверяю, пишет, что {"status": "not_found_dm"}. Так что или сканер глючно читает, или Код "левый". Но без марки ничего точнее не скажешь.
4 MWWRuza
 
гуру
06.04.23
12:45
(3) Тот код, что в (0) проверяю, пишет, что {"status": "not_found_dm"}.

А что толку его проверять, когда в нем нет символов GS1... Они просто вырезаны, и даже ни чем не заменены. Если только Вы их вручную вставите на нужные места перед проверкой.
5 Salimbek
 
06.04.23
14:26
(4) Все публичные проверки идут по sgtin, а там никаких символов GS1 нет. sgtin могли получить по ЭДО, например, или в 1С-ке где-то откопали.
6 MWWRuza
 
гуру
06.04.23
16:12
Ну, да, у меня тоже по этому коду ничего не находит:
https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-495.jpg
7 MWWRuza
 
гуру
06.04.23
16:24
Да, там не только GS1 нет, там и некоторые другие символы преобразуются, в запрос такой УРЛ передается:
Url = "https://markirovka.crpt.ru/api/v3/true-api/cises/list?values=0104620079060994215nA3(lCMLC8Rb"

У меня для этого целая функция:

// Перекодирует строку маркировки под требования ЦРПТ
Функция ЗаменитьСимволы(Знач ИсхСтр) Экспорт
    ВыхСтр = СтрЗаменить(ИсхСтр,"%", "%25");
    ВыхСтр = СтрЗаменить(ВыхСтр,"""","%22");
    ВыхСтр = СтрЗаменить(ВыхСтр,"-", "%2D");
    ВыхСтр = СтрЗаменить(ВыхСтр,".", "%2E");
    ВыхСтр = СтрЗаменить(ВыхСтр,"<", "%3C");
    ВыхСтр = СтрЗаменить(ВыхСтр,">", "%3E");
    ВыхСтр = СтрЗаменить(ВыхСтр,"\", "%5C");
    ВыхСтр = СтрЗаменить(ВыхСтр,"^", "%5E");
    ВыхСтр = СтрЗаменить(ВыхСтр,"_", "%5F");
    ВыхСтр = СтрЗаменить(ВыхСтр,"`", "%60");
    ВыхСтр = СтрЗаменить(ВыхСтр,"{", "%7B");
    ВыхСтр = СтрЗаменить(ВыхСтр,"|", "%7C");
    ВыхСтр = СтрЗаменить(ВыхСтр,"}", "%7D");
    ВыхСтр = СтрЗаменить(ВыхСтр,"~", "%7E");
    ВыхСтр = СтрЗаменить(ВыхСтр,"!", "%21");
    ВыхСтр = СтрЗаменить(ВыхСтр,"#", "%23");
    ВыхСтр = СтрЗаменить(ВыхСтр,"$", "%24");
    ВыхСтр = СтрЗаменить(ВыхСтр,"&", "%26");
    ВыхСтр = СтрЗаменить(ВыхСтр,"'", "%27");
    ВыхСтр = СтрЗаменить(ВыхСтр,"(", "%28");
    ВыхСтр = СтрЗаменить(ВыхСтр,")", "%29");
    ВыхСтр = СтрЗаменить(ВыхСтр,"*", "%2A");
    ВыхСтр = СтрЗаменить(ВыхСтр,"+", "%2B");
    ВыхСтр = СтрЗаменить(ВыхСтр,",", "%2C");
    ВыхСтр = СтрЗаменить(ВыхСтр,"/", "%2F");
    ВыхСтр = СтрЗаменить(ВыхСтр,":", "%3A");
    ВыхСтр = СтрЗаменить(ВыхСтр,";", "%3B");
    ВыхСтр = СтрЗаменить(ВыхСтр,"=", "%3D");
    ВыхСтр = СтрЗаменить(ВыхСтр,"?", "%3F");
    ВыхСтр = СтрЗаменить(ВыхСтр,"@", "%40");
    ВыхСтр = СтрЗаменить(ВыхСтр,"[", "%5B");
    ВыхСтр = СтрЗаменить(ВыхСтр,"]", "%5D");
    Возврат ВыхСтр;
КонецФункции

Просто давно делал, уже и забыть успел :-)
8 MWWRuza
 
гуру
06.04.23
16:26
Но, в данном случае, ничего не преобразуется - нет там таких символов.
Поэтому, нужно исходный код марки смотреть, как со сканера прилетает. И уже потом, на него "натравить" эту функцию.
9 MWWRuza
 
гуру
06.04.23
16:28
И, да, перед этим, отрезается все до первого GS1:
        ПозРазд        = Найти(ТекМарка, Симв(29));
        Если ПозРазд > 0 Тогда
            ТекМарка = Лев(ТекМарка, ПозРазд - 1);    
        КонецЕсли;
10 MWWRuza
 
гуру
06.04.23
16:33
И только сейчас заметил - в УРЛ "(" есть. А ее, по идее, не должно быть, должно быть "%28" вместо нее. Почему-то она не заменилась.
Сейчас буду разбираться.
11 MWWRuza
 
гуру
06.04.23
16:37
+(10) Хотя, нет, все правильно. Это движок форума преобразовал символ обратно в скобку.
Вот:
https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-496.jpg
12 timurhv
 
06.04.23
19:59
(8) В 8 не надо, само все преобразуется.

Новый HTTPЗапрос
Недопустимые символы, не являющиеся специальными символами URI, будут автоматически кодированы.
Примеры:
Обращение к ресурсу по адресу "/example%segment":
/example%25segment

Как и при чтении xml <![CDATA[марка со спецсимволами]]> на уровне платформы корректно прочитается.
13 MWWRuza
 
гуру
06.04.23
23:49
(12) У меня все под 7.7... Там приходится "ручками" извращаться, "платформа" знать не знает об этом. Но, принцип не меняется, проверить, что передается в строку УРЛ не помешает.
14 timurhv
 
06.04.23
23:55
(13) есть методы и без марок в URL, список передается в теле запроса до 1000 шт
15 MWWRuza
 
гуру
08.04.23
12:01
Сегодня, за завтраком, сожрал под кофе дессерт из "ВкусВилл" :-)
Случайно увидел на упаковке знакомый DataMatrix :-) (ну, по идее, какая-никакая но молочка)
Дай думаю, проверю ради интереса свою обработку, ту-же, что в постах 6-11, вдруг поломали что-то в API и она не работает? Делал то давно, х.з, с тех пор много воды утекло, клиенты не жалуются, но, возможно просто никто и не пользуется, типа нафик ни кому не нужно...
Да нет, все работает, товар найден, хоть и "чужой" для меня, метод то общедоступный:

https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-497.jpg

Из оборота выведен, "Розничной продажей".
Так, что у ТС какая-то проблема с распознаванием или передачей кода.
Выложите хорошую фотку кода, проверю. Даже, если с экрана не отсканируется(хотя... сканер не плохой, Datalogic QD 2430), распечатаю на бумагу, и "пикну".
16 MWWRuza
 
гуру
08.04.23
12:31
А все-таки, за это время, что-то изменили... В ответе на запрос, параметром 6, прилетает- "cisWithoutBrackets"... Раньше, когда я это делал, такого не было.
У меня его наименование в таблице пустое, так, как его описание и "перевод на человеческий язык" в описании TrueAPI, по которому я делал эту обработку отсутствует...
Что-это, для меня загадка...
Найти, что это такое и как правильно его "обозвать на человеческом языке", мне не удается и сейчас :-(
17 MWWRuza
 
гуру
08.04.23
12:37
Вообще, нашел, в каком-то телеграм-канале:

"Изменения в методах True API

В определённые методы будет добавлен параметр ответа «cisWithoutBrackets» («Нормализованный код без скобок»). Подробнее см. в разделе «Краткое описание изменений в методах True API»."

Хм... Ща добавлю описание.
18 MWWRuza
 
гуру
08.04.23
12:48
Пока не понятно, зачем он нужен, в предыдущих двух параметрах я тоже никаких скобок не вижу:

https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-498.jpg

Ну, да ладно, сделал, пусть будет.
19 MWWRuza
 
гуру
08.04.23
13:43
Хотя вот тут:

https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-499.jpg

Действительно все три параметра разные - код из запроса - я всунул копипастом из XML УПД, никаких скобок там нет.
ЧЗ вернул его в двух вариантах, в "КИ ГИС МТ" со скобками, и "отрезанным" блоком кода, содержащим МРЦ,
и в "Нормализованный код без скобок" тот же самый, что в предыдущем параметре, но скобки вырезаны :-)