Чтение двоихных данных

1. tvm 14.12.18 15:52 Сейчас в теме
Есть http-сервис, который возвращает двоичные данные табличного документа закодированные Base 64.
не могу сообразить как из этих двоичных данных сформировать табличный документ
+
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Туки Туки 51 14.12.18 16:07 Сейчас в теме
А если применить к полученному этот метод:
ТабличныйДокумент (SpreadsheetDocument)
Записать (Write)
Вариант синтаксиса: В файл

Синтаксис:

Записать(<ИмяФайла>, <ТипФайлаТаблицы>) 
Параметры:

<ИмяФайла> (обязательный)

Тип: Строка. 
Имя файла, в котором сохраняется табличный документ. 
<ТипФайлаТаблицы> (необязательный)

Тип: ТипФайлаТабличногоДокумента. 
Формат, в котором будет сохранен табличный документ.
Значение по умолчанию: MXL. 
Описание варианта метода:

Запись табличного документа в файл. 
Вариант синтаксиса: В поток

Синтаксис:

Записать(<Поток>, <ТипФайлаТаблицы>) 
Параметры:

<Поток> (обязательный)

Тип: Поток, ПотокВПамяти, ФайловыйПоток. 
Поток для записи табличного документа. 
<ТипФайлаТаблицы> (необязательный)

Тип: ТипФайлаТабличногоДокумента. 
Формат, в котором будет сохранен табличный документ.
Значение по умолчанию: MXL. 
Описание варианта метода:

Запись табличного документа в поток. 
Описание:

Записывает табличный документ в файл.

Доступность: 

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). 
Примечание:

При работе на сервере, веб-клиенте или через внешнее соединение нет возможности сохранять в формате XLS95.
Не поддерживается сохранение в PDF картинок типа Метафайл.
При работе на веб-клиенте вызов метода выполняет обращение к серверу.
При работе на мобильной платформе возможно сохранение только в форматах MXL и PDF.
При выводе в формат PDF шрифты, которые нельзя внедрять, а также шрифты, не являющиеся TrueType или OpenType, будут заменены на шрифт Arial. Если данный шрифт не обнаружен, то будет использован шрифт Helvetica. 
Пример:

ТабДок.Записать("C:\My Documents\Таблица2.mxl"); 
Показать
+
5. tvm 14.12.18 16:12 Сейчас в теме
(2) мне прочитать надо, а не записать
(3)(4) спс попробую
+
3. YannikAlx 43 14.12.18 16:07 Сейчас в теме
Вот примеры работы с 2данными

//Табличный документ:
Процедура СохранитьВХранилищеНажатие(Элемент)
ТабДок=Новый ТабличныйДокумент;
ТабДок.Вывести(ЭлементыФормы.ПолеТабличногоДокумента1);
Хранилище=Новый ХранилищеЗначения(ТабДок);
Записать();
КонецПроцедуры

Процедура ВосстановитьИзХранилищаНажатие(Элемент)
ТабДок=Хранилище.Получить();
Если ТабДок<>Неопределено Тогда
ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(ТабДок);
КонецЕсли;
КонецПроцедуры


И
https://infostart.ru/public/252365/
+
4. pm74 199 14.12.18 16:09 Сейчас в теме
ДД = Base64Значение(СтрокаBase64)
Поток = ДД.ОткрытьПотокДляЧтения(); 
ТабДок=Новый ТабличныйДокумент ;
ТабДок.Прочитать(Поток); 
+
6. tvm 14.12.18 16:19 Сейчас в теме
(4)
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(7)}: Ошибка при вызове метода контекста (Прочитать)
ЭлементыФормы.ПолеТабличногоДокумента1.Прочитать(Поток);
по причине:
Ошибка формата потока
+
7. tvm 14.12.18 16:26 Сейчас в теме
вот код
ДД = Base64Значение(ПолеВвода1);
Поток = ДД.ОткрытьПотокДляЧтения(); 

ЭлементыФормы.ПолеТабличногоДокумента1.Прочитать(Поток);
+
8. pm74 199 14.12.18 16:31 Сейчас в теме
9. tvm 14.12.18 16:32 Сейчас в теме
(8) выдает ошибку из (6)
+
10. pm74 199 14.12.18 16:36 Сейчас в теме
(9) хм
а выполняется на стороне клиента или сервера \
смотрите для вас гиф записал
первая функция на стороне сервера вторая на клиенте
Прикрепленные файлы:
+
11. tvm 14.12.18 16:38 Сейчас в теме
(10) в толстом клиенте. на форме полеввода куда вставляю результат http-сервиса, и полетабличногодокумента
+
12. pm74 199 14.12.18 16:39 Сейчас в теме
может так табДок.Вывести(ПолеТабличногоДокумента)
+
13. tvm 14.12.18 16:42 Сейчас в теме
на
ТабДок.Прочитать(Поток);

валится с ошибкой. может криво возвращает http-сервис конечно
+
14. tvm 17.12.18 14:28 Сейчас в теме
так и не смог понять в чем проблема. Возможно в том что при копи-пасте что-то вставляется криво в ПолеВвода1 разве что. Нет никакой обработки для тестов ни у кого на подобии консоли запросов?
+
15. IgorXml 724 17.12.18 16:22 Сейчас в теме
У меня есть обратное. Я Область Табл.Документа записываю в двочн.данные. Может поможет:
...
				ТД_Физлица =  ОтчетТабличныйДокумент.ПолучитьОбласть(область.имя);
				НовЗапись.Картинка =  Истина ;
				ИмяФайла = ПолучитьИмяВременногоФайла("htm");
				//ОтчетТабличныйДокумент.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.HTML5);
				ТД_Физлица.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.HTML5);
				МояКартинка = Новый ДвоичныеДанные(ИмяФайла);
				ХранилищеКартинки = Новый ХранилищеЗначения(МояКартинка);
				НовЗапись.ФайлКартинки =  ХранилищеКартинки ;

...
Показать
+
16. tvm 17.12.18 16:26 Сейчас в теме
(15) без файла хочу сделать
+
17. IgorXml 724 17.12.18 16:52 Сейчас в теме
(16) Вот здесь посылаю из 1С:
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	РасчетныеЛистки.ФайлКартинки КАК ФайлКартинки,
		|	РасчетныеЛистки.Период КАК Период,
		|	РасчетныеЛистки.ФизЛицо КАК ФизЛицо
		|ИЗ
		|	РегистрСведений.РасчетныеЛистки КАК РасчетныеЛистки
		|ГДЕ
		|	РасчетныеЛистки.Картинка
		|	И РасчетныеЛистки.Период = &Период
		|	И РасчетныеЛистки.ФизЛицо = &ФизЛицо
		|
		|УПОРЯДОЧИТЬ ПО
		|	Период";

		РезультатЗапроса = Запрос.Выполнить();
		
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			
			XDTOПозиции = ФабрикаXDTO.Создать(ТипXDTOРезультатОперации);
			ДанныеФайла	=  ВыборкаДетальныеЗаписи.ФайлКартинки.Получить();
			Если  ТипЗнч(ДанныеФайла) = тип("ДвоичныеДанные") Тогда
				XDTOПозиции.FilePS	=  ДанныеФайла;
			конецЕсли;
			XDTOСвойства.Table.Добавить(XDTOПозиции);
			
		КонецЦикла;
Показать
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот