Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Base64Строка слишком большая :(

Base64Строка слишком большая :(
Я
   fif
 
14.05.21 - 15:20
Всем привет!
Задача: отправить pdf на сторонний ws через Base64.
Строка выходит огромных размеров, поэтому убираю из нее все лишнее:

ТабДок.Записать(КаталогВременныхФайлов() + "test.pdf", ТипФайлаТабличногоДокумента.PDF);
ДвочныеДанные = Новый ДвоичныеДанные(КаталогВременныхФайлов() + "test.pdf");
НашиДвоичныеДанные = ПолучитьBase64Строка(ДвочныеДанные);
НашиДвоичныеДанные = СтрЗаменить(НашиДвоичныеДанные, Символы.ВК, "");
НашиДвоичныеДанные = СтрЗаменить(НашиДвоичныеДанные, Символы.ПС, "");

Потом добавляю остальные данные:
СтрокаSOAP = "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:int=""http://IntegrationWebService"" xmlns:arr=""http://schemas.microsoft.com/2003/10/Serialization/Arrays"">
                        | <soapenv:Header/>
                        | <soapenv:Body>
                        |<int:EDocumentsCreate>
                        |<int:XMLPackage><![CDATA[" + НашXMLПакет + "]]>
                        |</int:XMLPackage>
                        |<int:Documents>
                        |<arr:base64Binary xmlns:arr=""http://schemas.microsoft.com/2003/10/Serialization/Arrays"">" + НашиДвоичныеДанные +"</arr:base64Binary></int:Documents><int:ISCode>1C</int:ISCode></int:EDocumentsCreate>
                        | </soapenv:Body>
                        |</soapenv:Envelope>";
И отправляю...

HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаSOAP,КодировкаТекста.UTF8);


Строка обрезается и выходит хрень. Помогите, как собрать и отправить?
 
 Партнерская программа EFSOL Oblako
   Garykom
 
1 - 14.05.21 - 15:25
(0) тело из файла
и почитать описание сервиса что там для больших, может надо как то разбивать или через webdav
   arsik
 
2 - 14.05.21 - 15:33
(0) А что в ПолучитьBase64Строка()? Есть же стандартный метод Base64Строка() там не ПС и ВК.
И почему так? СтрокаSOAP = "...
Почему не воспользоваться штатными средствами 1c lkz dt,cthdbcjd/ Vj;tn b ghj,ktvs yt ,eltn/
   arsik
 
3 - 14.05.21 - 15:34
Почему не воспользоваться штатными средствами 1c lkz dt,cthdbcjd/ Vj;tn b ghj,ktvs yt ,eltn/
---
Почему не воспользоваться штатными средствами 1c. Может и проблемы не будет.
   fif
 
4 - 14.05.21 - 15:44
(2) Base64Строка() - никак не помог

Так сделано, потому что иначе будут проблемы с cdata
   Сергиус
 
5 - 14.05.21 - 16:17
(0)А если сделать файл, и устанавливать тело из него?
   arsik
 
6 - 14.05.21 - 16:21
Надо просто фиддлером посмотреть, как 1с стандартно большие бинарные данные отправляет и сделать по аналогии.
   fif
 
7 - 14.05.21 - 16:28
(5) (1)
Это про УстановитьТелоИзДвоичныхДанных?
Сейчас попробую, но мне кажется не то будет
   Сергиус
 
8 - 14.05.21 - 16:31
(7)Можно попробовать еще УстановитьИмяФайлаТела
   acht
 
9 - 14.05.21 - 16:48
(0) > Строка обрезается
Как определил?
   Shur1cIT
 
10 - 14.05.21 - 16:49
(0) на сколько помню стандартно IIS максимум 30 мегов запрос может получить, далее нужно с бубном настраивать, у меня в своё время не получилось, в результате передавал только ссылку на файл далее удалял его.
По поводу обрезания строки где ты обрезь смотришь? в отладчике? отображение может отрезаться, выгрузит в текст и посмотри
   fif
 
11 - 14.05.21 - 17:38
(8)
Сохраняется в файл корректно (проверила на soapui), отправляется видимо нет :(
Возвращается 400
   fif
 
12 - 14.05.21 - 17:39
(9) По ошибке 400
   acht
 
13 - 14.05.21 - 17:39
(11) Верни обратно ВК и ПС
   fif
 
14 - 14.05.21 - 17:53
(13) не помогло, ошибка 400
   fif
 
15 - 14.05.21 - 18:02
Помогло записать все в файл, потом получить из файла и отправить методом УстановитьТелоИзСтроки
Всем спасибо)
   acht
 
16 - 14.05.21 - 18:23
Сдается мне, дело было в BOM

Список тем форума
 
Здесь во втором сообщении вам дадут решение, а в двадцатом дадут правильное решение. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.