|
Как записать картинку в XML | ☑ | ||
---|---|---|---|---|
0
zoro-z
29.01.14
✎
14:08
|
Задача перегружать картинки из одной базы в другую с помощью XML, Как записать картинку в XML.
|
|||
1
Asmody
29.01.14
✎
14:09
|
закодировать в base64
|
|||
2
Serginio1
29.01.14
✎
14:09
|
base64 Сериализация Двоичных данных.
|
|||
3
Рэйв
29.01.14
✎
14:10
|
(0)А через папку на диске никак чтоли?
|
|||
4
zoro-z
29.01.14
✎
14:13
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка, | Номенклатура.КодСинхронизации КАК КодСинхронизации, | Номенклатура.ОсновноеИзображение КАК ОсновноеИзображение, | Номенклатура.ОсновноеИзображение.Хранилище КАК Хранилище |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка)"; Запрос.УстановитьПараметр("Ссылка", Номенклатура); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ЗаписьXML.ЗаписатьНачалоЭлемента("КодСинхронизации"); ЗаписьXML.ЗаписатьТекст(Строка(ВыборкаДетальныеЗаписи.КодСинхронизации)); ЗаписьXML.ЗаписатьКонецЭлемента(); КартинкаИгрушки = ВыборкаДетальныеЗаписи.Хранилище.Получить(); ЗаписьXML.ЗаписатьНачалоЭлемента("picture"); ЗаписьXML.ЗаписатьАтрибут("binary", Base64Строка(КартинкаИгрушки); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЦикла; ___________________ Пишет {Форма.Форма.Форма(354)}: Ошибка при вызове метода контекста (Base64Строка) ЗаписьXML.ЗаписатьАтрибут("binary", Base64Строка(КартинкаИгрушки)); по причине: Несоответствие типов (параметр номер '1') |
|||
5
Wobland
29.01.14
✎
14:15
|
(4) спорим, у тебя там не ДД
|
|||
6
zoro-z
29.01.14
✎
14:17
|
(5) что такое ДД?
|
|||
7
Asmody
29.01.14
✎
14:18
|
(4) прям надо в атрибут пихать?
|
|||
8
Wobland
29.01.14
✎
14:18
|
(6) ожидаемый тип у первого параметра
|
|||
9
Широкий
29.01.14
✎
14:18
|
В ХранилищеЗначений запихни
|
|||
10
Asmody
29.01.14
✎
14:19
|
(9) он из него достает
|
|||
11
zoro-z
29.01.14
✎
14:23
|
(7) Я этот код из книжки взял, куда пихать не знаю, по тому и спрашиваю.
(8) Понял, как картинку сделать ДД? (9) Т.е. в XML надо записывать ХранилищеЗначений. |
|||
12
zoro-z
29.01.14
✎
14:25
|
Хранилище тоже не принимает пишет - не правильный параметр 1.
|
|||
13
Asmody
29.01.14
✎
14:27
|
(11) посмотри в СП конструктор объекта ДвоичныеДанные, там есть пример
|
|||
14
zoro-z
29.01.14
✎
14:28
|
Вот как я получаю картинку.
Функция НайтиКартинку(Ссылка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХранилищеДополнительнойИнформации.Хранилище |ИЗ | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации |ГДЕ | ХранилищеДополнительнойИнформации.Объект = &Объект | И НЕ ХранилищеДополнительнойИнформации.ПометкаУдаления"; Запрос.УстановитьПараметр("Объект", Ссылка); Результат = Запрос.Выполнить(); //Результат2 = Запрос.Выполнить().Выгрузить(); //Результат2.ВыбратьСтроку(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Если не Запрос.Выполнить().Пустой() Тогда Пока ВыборкаДетальныеЗаписи.Следующий() Цикл КартинкаИгрушки = ВыборкаДетальныеЗаписи.Хранилище.Получить(); Сообщить("11111 " + ТипЗнч(КартинкаИгрушки)); КонецЦикла; Иначе Сообщить("Не картинки!!! "); КонецЕсли; Возврат КартинкаИгрушки; КонецФункции // НайтиКартинку() |
|||
15
zoro-z
29.01.14
✎
14:30
|
ЗаписьXML.ЗаписатьНачалоЭлемента("КодСинхронизации");
ЗаписьXML.ЗаписатьТекст(Строка(ВыборкаДетальныеЗаписи.КодСинхронизации)); ЗаписьXML.ЗаписатьКонецЭлемента(); КартинкаИгрушки = НайтиКартинку(ВыборкаДетальныеЗаписи.Ссылка); ДвоичныеДанные = Новый ДвоичныеДанные(КартинкаИгрушки); ЗаписьXML.ЗаписатьНачалоЭлемента("picture"); ЗаписьXML.ЗаписатьАтрибут("binary", Base64Строка(ДвоичныеДанные)); ЗаписьXML.ЗаписатьКонецЭлемента(); {Форма.Форма.Форма(348)}: Ошибка при вызове конструктора (ДвоичныеДанные) ДвоичныеДанные = Новый ДвоичныеДанные(КартинкаИгрушки); по причине: Файл не обнаружен 'Картинка' |
|||
16
DS
29.01.14
✎
14:32
|
Сохрани картинку во врем. файл и создай ДД по СП.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |