v7: Загрузка вложений с почты #782263


#0 by Ogonechek
База 7.7 Торговля и склад, 7.70.938 Есть обработка, которая загружает заявки с почты при помощи компоненты ROM-Mail. Раньше файлы в почте хранились в формате dbf, теперь поставщик присылает данные в xls. Но не просто в xls, а в zip. Если заходить на почту через веб-интерфейс, то при нажатии на файл вложения он скачивается уже в xls. А когда делаешь это через обработку, то файл скачивается в непонятном формате такого вида. QlNGD0YDQvNCw0L3QvtCyX9CS0JNfNjMzMi54bHM=_=. Если на почте просто лежит файл xls, без архива, обработка скачивает файл правильно, распознает как xls. Предположила, что проблема в кодировке, но если даже в коде обработке устанавливать кодировку, она вне зависимости от кода ставится "koi8-r". Пробовала через эту ссылку распознать тип файл - все равно всегда набор символов пишет. Может быть кто-то знает, как решить такую проблему? Или придется просить поставщиков присылать в xls без архива?
#1 by Lokli
Так скачать файл в каталог, разархивировать и открыть в Excel'е обработкой?
#2 by Ogonechek
В том-то и дело, что не получается скачать файл как архив. Кусок процедуры где считывается файлик :
#3 by Ogonechek
И если перед фразой ИмяФайла = ВК.ПолучитьФайл(Инд); посмотреть, как выглядит поле Вложения, то там будет написано именно QlNGD0YDQvNCw0L3QvtCyX9CS0JNfNjMzMi54bHM=_=.
#4 by Lokli
Так у тебя там условие стоит: .... .... т.е. у тебя обработка не качает ни какой файл кроме *.xls
#5 by Ogonechek
Это понятно, но если это условие убрать, то он считывает остальные файлы криво, которые на самом деле архивы. Во всяком случае, в веб интерфейсе почты около файла стоит значок ZIP.
#6 by Lokli
Конечно будет криво читать. ZIP - это ведь архив. К существующему условию добавь проверку на расширение zip. Если оно есть, то скачивай файл, разархивируй в файл xls и после этого открывай его в ExtFormsЗагрузкаЗаявокГулливераИзПочтыITMaster.ert.
#7 by Ogonechek
В любом случае, если бы файл прочитывался нормально, то у него было бы его имя  расширением .zip. Если бы он грузился архивом, дальше я бы просто команду системы с разархивацией запустила и все. А так-то у меня даже архива нет. А вместо него какая-то чушь.
#8 by Ogonechek
Как я его проверю на zip?
#9 by Ogonechek
В конце имени файла нет ".zip".
#10 by Ogonechek
Я просто убрала все проверки на имя и грузила только те заявки, в которых точно есть архив и команда системы выдавала, что архив не обнаружен
#11 by Lokli
Ну так анализируй расширение имени файла. ... Если Прав(ВРег(СокрЛП(ИмяФайла)),3) = "XLS" Тогда ... ... ... КонецЕсли;
#12 by Lokli
+ Распаковать zip можно с помощью ВК, например raruslib. 1С 7.7 это делать не умеет.
#13 by пипец
кодировка ? от тут чуть есть
#14 by Ogonechek
#15 by Это_mike
это вполне может делать dialmail или 1c++ (BinaryData)
#16 by Ogonechek
Т.е. хотите сказать, что просто файл всегда нормально считывается, а архив нет? Практически аналогичная обработка, которая скачивает архив с почты, работает без проблем. Отличия только в том, что там почты нормальная, mail. А тут это веб-почта или как она там называется. И файл был в архиве rar. И руками тоже скачивался как архив, а тут если вручную скачиваешь, сразу xls.
#17 by Lokli
Хотим сказать что всё нормально считывается. Не смотри поле "Вложения". После получения имени файла сделай Сообщить(ИмяФайла); И посмотри какие файлы тебе покажутся.
#18 by Lokli
Согласен, dialmail удобнее. Скачал с почты, тут же распаковал. ))
#19 by Ogonechek
Вот такие файлы загружаются с почты: ===================== Загрузка завершена!!!
#20 by Ogonechek
Я просто не уверена, что если я все перепишу под Dialmail, у меня файлы будут правильно считываться...
#21 by Lokli
Кусок кода дай, который эти сообщения пишет.
#22 by Ogonechek
Ну так тот же, что ты сказал             Для Инд=1 По ВК.КоличествоФайлов Цикл
#23 by Lokli
Ни разу не сталкивался с таким. У меня таких проблем ни когда не возникало. Список файлов всегда был правильным, вне зависимости от типов файлов (xls, mxl, xml, pdf, zip и пр.). В СП про кодировку написано следующее: "...автоматическое кодирование/декодирование средствами внешней компоненты доступно только для следующих кодировок: "windows-1251", "koi8-r", "koi8-u", "ibm866", "x-mac-cyrillic", "iso-8859-1"..."iso-8859-9"..."
#24 by Ogonechek
В том-то и дело, что все остальные файлы с почты читаются правильно... И dbf, и xls.
#25 by Это_mike
попробовать-то? никак?
#26 by Lokli
Такое ощущение, что он тебе список файлов архива подсовывает в BASE64.
#27 by Ogonechek
В процессе)
#28 by Lokli
а можешь это же письмо прочитать с другой почты? (корпоративная, mail.ru...)
#29 by Ogonechek
И как с этим бороться? Декодер, который я вначале скидывала, тоже ссылался на BASE64.
#30 by Ogonechek
Попробую на свою личную переслать и оттуда считать.
#31 by Lokli
возникают у меня смутные подозрения, что это особенность данного почтового сервера...
#32 by varelchik
Параллельное обсуждение в соседней ветке. У меня оно ужо давно было реализовано с dialmail. Там все и почта и фтп и zip. стучись ченить придумаем.
#33 by Ogonechek
Спасибо всем, кто откликнулся) Переделала обработку под Dialmail и вложения писем, которые в веб почте отображались как zip, сразу стали читаться как xls.
#34 by Lokli
А что за веб почта? Какой домен?
#35 by Ogonechek
Ну сама почта вот : А вид интерфейса выбран RoundCube WebMail
#36 by Ogonechek
И снова проблемы с этой загрузкой. Переписанная обработка загружает письма, которые лежит в архиве, а обычные файлы не грузит. Код загрузки писем :
#37 by Ogonechek
При распаковке всегда есть 2 файла : один файл называется main.hdr, второй mail1.txt. Те письма, где файл лежит в архиве, при распаковке содержат еще файл XLS, а в письмах, где просто присоединен файл XLS, при распаковке только 2 файла, без XLS. Думала, что это из-за того, что я их распаковываю, но без функции распаковки нельзя узнать количество файлов... Не знаю, что и делать...=
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям