|   |   | 
| 
 | v7: Честный знак и вывод из оборота | ☑ | ||
|---|---|---|---|---|
| 0
    
        ChMikle 17.03.23✎ 10:50 | 
        Нужен образец файла с данными о выводе из оборота товаров группы молочная продукция в xml формате для дальнейшего экспорта в ЭДО лайт и отправки в ЧЗ.
 Решили фасованные головки сыров резать на части и продавать кусками, я так понял в Чз необходимо отправлять данные о выбытии в случае разрыва упаковки и деления на части ? | |||
| 1
    
        АгентБезопасной Нацио 17.03.23✎ 11:16 | 
        <?xml version="1.0" encoding="UTF-8"?>
 <withdrawal version="8"> <trade_participant_inn>7777777777</trade_participant_inn> <withdrawal_type>DESTRUCTION</withdrawal_type> <withdrawal_date>2022-01-13</withdrawal_date> <primary_document_type>DESTRUCTION_ACT</primary_document_type> <primary_document_number>123</primary_document_number> <primary_document_date>2022-01-13</primary_document_date> <fias_id>8cccc9d6-05cc-4c53-c45c-cc0c6c3c5c44</fias_id> <products_list> <product> <cis>00000000000000hx00'HY</cis> </product> </products_list> </withdrawal> | |||
| 2
    
        ChMikle 17.03.23✎ 11:44 | 
        (1) Это рабочий пример ?     | |||
| 3
    
        ChMikle 17.03.23✎ 11:54 | 
        там вроде как номенклатура , количество, цена и сумма должны указываться ?     | |||
| 4
    
        АгентБезопасной Нацио 17.03.23✎ 12:01 | 
        (2) это из "Описание True API Версия 284.0" 
 Мы не режем. | |||
| 5
    
        ChMikle 17.03.23✎ 12:27 | 
        (4) мне надо загрузить файл из внешнего файла в эдо-лайт данные для вывода из оборота     | |||
| 6
    
        АгентБезопасной Нацио 17.03.23✎ 12:42 | 
        ну и грузи. правила формирования файлов единые.     | |||
| 7
    
        big 17.03.23✎ 12:58 | 
        Зайдите в личный кабинет, там куча документации и примеров. Загружать можно из xml, xls, csv     | |||
| 8
    
        ChMikle 17.03.23✎ 14:08 | 
        (7) Спасибо , мил человек, но конкретный рабочий файл-пример был бы более продуктивен :) для меня.     | |||
| 9
    
        ChMikle 21.03.23✎ 09:00 | 
        (1) Спасибо !     | |||
| 10
    
        MWWRuza гуру 21.03.23✎ 10:57 | 
        Я из 7.7 через True API, HTTP запросом отправкой JSON сделал. Работает.
 Но, у меня авторизация, получение токена и т.п. было ранее сделано, еще для сигарет... Поэтому, с молочкой, списанием через расфасовку, проблем не возникло. Вот такой документ: https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-486.jpg В принципе, у меня предусмотрена и второй вариант, когда API по каким-то причинам не доступен - формирование файла для ручной загрузки в ЛК. Там как раз XML формируется. | |||
| 11
    
        ChMikle 21.03.23✎ 12:01 | 
        QR-коды так же , отрезал лишние хвосты ?     | |||
| 12
    
        MWWRuza гуру 21.03.23✎ 17:19 | 
        Хм... Ну, если посмотреть по дате документа, можно понять, когда я это делал... Уже и не помню.
 Сейчас в модуле посмотрю, отпишу... | |||
| 13
    
        MWWRuza гуру 21.03.23✎ 17:21 | 
        Отправляю так:
 Пока ПолучитьСтроку() = 1 Цикл ТзТов.НоваяСтрока(); КИЗ = СокрЛП(Марка); ТзТов.cis = КИЗ; ТзТов.product_cost = ЦенаЕд * 100; КонецЦикла; | |||
| 14
    
        MWWRuza гуру 21.03.23✎ 17:28 | 
        А марка в таблице документа так:
 СзШК = РазобратьШК(СканШК); ТипШК = СзШК.Получить("ТипЕд"); ЕАН = СзШК.Получить("ЕАН"); GTIN = СзШК.Получить("GTIN"); ВесЕдВМарке = ПолучитьВес(СканШК); КИЗ = ПолучитьКИЗ(СканШК); **** НовМарка = КИЗ; **** Марка = НовМарка; Там где звездочки - куча всяких проверок и т. п., это "на вкус и цвет" :-) В глобальном модуле у меня функция, сделана давно, еще когда только с ЕГАИС начинал работать потом, допиливал по чуть-чуть: // Функция РазобратьШК(ШК) Экспорт - Возвращает тип отсканированного ШтрихКода // 1 - EAN(13 или 8) обычный ШК товара // 2 - DataMatrix пачки сигарет // 3 - DataMatrix блока сигарет // 4 - PDF-417 алкоголь, старая марка // 5 - DataMatrix алкоголь,новая марка // 6 - DataMatrix алкоголь, старая марка, "маленький квадратик" // 7 - DataMatrix прочей упаковки сигарет // 8 - Сокращенный код маркировки прочих товаров, в том числе молока // МРЦ - максимальная розничная цена сигарет // Тип - тип старой марки // Сер - серия старой марки // Ном - номер старой марки Функция РазобратьШК(Знач ШК) Экспорт СЗ = СоздатьОбъект("СписокЗначений"); СтрШК = СокрЛП(ШК); Если СтрДлина(СтрШК) <= 13 Тогда СЗ.ДобавитьЗначение(1, "ТипЕд"); СЗ.ДобавитьЗначение(СтрШК, "ЕАН"); СЗ.ДобавитьЗначение(0); ИначеЕсли (СтрДлина(СтрШК) <= 29) И (СтрДлина(СтрШК) >= 21) Тогда СЗ.ДобавитьЗначение(2, "ТипЕд"); ВыдЕАН = СокрЛП(Число(Лев(ШК, 14))); СЗ.ДобавитьЗначение(ВыдЕАН, "ЕАН"); Если СтрДлина(СтрШК) >= 25 Тогда МРЦ = ВернутьМРЦ(Сред(СокрЛП(СтрШК), 22, 4)); Иначе МРЦ = 0; КонецЕсли; СЗ.ДобавитьЗначение(МРЦ, "МРЦ"); ИначеЕсли СтрДлина(СтрШК) = 68 Тогда СЗ.ДобавитьЗначение(4, "ТипЕд"); СЗ.ДобавитьЗначение(СтрШК, "ЕАН"); СЗ.ДобавитьЗначение(0); ИначеЕсли СтрДлина(СтрШК) = 150 Тогда СЗ.ДобавитьЗначение(5, "ТипЕд"); СЗ.ДобавитьЗначение(СтрШК, "ЕАН"); СЗ.ДобавитьЗначение(0); ИначеЕсли (СтрДлина(СтрШК) > 30) И (СтрДлина(СтрШК) < 68) Тогда Если Сред(СтрШК,4,1) = "-" Тогда Тип = Лев(СтрШК,3); СтрТипа = ""; СзТиповМарок = ЗаполнитьСписокТиповМарок(); Поз = СзТиповМарок.НайтиЗначение(Число(Тип)); Если Поз = 0 Тогда Предупреждение("Тип марки не найден!"); Иначе СзТиповМарок.ПолучитьЗначение(Поз,СтрТипа); КонецЕсли; Если Найти(СтрТипа,"ФСМ. ") > 0 Тогда ДлинаНомераМарки=9; Иначе ДлинаНомераМарки=8 КонецЕсли; СЗ.ДобавитьЗначение(6, "ТипЕд"); СЗ.ДобавитьЗначение(СтрШК); СЗ.ДобавитьЗначение(0); СЗ.ДобавитьЗначение(Лев(ШК,3), СокрЛП(СтрТипа)); СЗ.ДобавитьЗначение(Сред(ШК,Найти(ШК,"-") + 1,3)); СЗ.ДобавитьЗначение(Сред(ШК,Найти(ШК,"-") + 4,ДлинаНомераМарки)); Иначе СтрШК = СтрЗаменить(СтрШК, "(", ""); СтрШК = СтрЗаменить(СтрШК, ")", ""); Если Лев(СтрШК, 2) = "01" Тогда Если Найти(СтрШК, Симв(29)) > 0 Тогда // Марка полная, со сканера СЗ.ДобавитьЗначение(7, "ТипЕд"); GTIN = Сред(СтрШК, 3, 14); ШК = СокрЛП(Число(Сред(СтрШК, 3, 14))); СЗ.ДобавитьЗначение(ШК, "ЕАН"); СЗ.ДобавитьЗначение(GTIN, "GTIN"); СЗ.ДобавитьЗначение(0, "МРЦ"); Иначе Если Найти(СтрШК, "8005") = 0 Тогда // Упаковка, отличная от блока ШК = СокрЛП(Число(Сред(СтрШК, 3, 14))); МРЦ = 0; СЗ.ДобавитьЗначение(7, "ТипЕд"); СЗ.ДобавитьЗначение(ШК, "ЕАН"); СЗ.ДобавитьЗначение(МРЦ, "МРЦ"); СЗ.ДобавитьЗначение(ПривестиШкБлокаКВидуУПД(СтрШК), "ШКУПД"); ИначеЕсли Найти(СтрШК, "8005") >= 25 Тогда ШК = СокрЛП(Число(Сред(СтрШК, 3, 14))); МРЦ = ВычислитьМРЦ_Блока(СтрШК); СЗ.ДобавитьЗначение(3, "ТипЕд"); СЗ.ДобавитьЗначение(ШК, "ЕАН"); СЗ.ДобавитьЗначение(МРЦ, "МРЦ"); СЗ.ДобавитьЗначение(ПривестиШкБлокаКВидуУПД(СтрШК), "ШКУПД"); КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; ИначеЕсли (СтрДлина(СтрШК) >= 19) И (СтрДлина(СтрШК) < 21) Тогда // Молочка и другой товар сокращенные ШК = СокрЛП(Число(Сред(СтрШК, 3, 14))); СЗ.ДобавитьЗначение(8, "ТипЕд"); СЗ.ДобавитьЗначение(ШК, "ЕАН"); СЗ.ДобавитьЗначение(0, "МРЦ"); СЗ.ДобавитьЗначение(ПривестиШкБлокаКВидуУПД(СтрШК), "ШКУПД"); КонецЕсли; Возврат СЗ; КонецФункции // КонецФункци РазобратьШК(ШК | |||
| 15
    
        MWWRuza гуру 21.03.23✎ 17:29 | 
        СканШК - это ШтрихКод марки, как во внешнее событие со сканера прилетел.     | |||
| 16
    
        MWWRuza гуру 21.03.23✎ 17:41 | 
        Да, кстати... В дополнение.
 Хранить полный код марки в 1с77, в том виде, как он прилетает со сканера - нельзя, она этого не умеет. Или хранить обрезанный код, до первого GS1, или менять этот симвод на что-то "допустимое". Иначе при первом ТиИ, 1с удалит эти ШК, так как GS1 не является допустимым символом в полях DBF с точки зрения ТиИ 1с77 :-) | |||
| 17
    
        Злопчинский 22.03.23✎ 00:42 | 
        да нормально в 77 это как-то victuan хранит     | |||
| 18
    
        MWWRuza гуру 22.03.23✎ 10:21 | 
        Да как он хранит... 
 Скорее всего, перед записью подменяет символ GS1 на (29), или что-то подобное, а где используется сохраненная в справочнике марка - в строке заменяет эту сохраненную последовательность на Симв(29)... Увидит - если не так, поправит. Потому как, непечатные символы при первом же ТиИ будут безжалостно порезаны. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |