Имя: Пароль:
1C
1С v8
В поле html не показывает рисунок
0 мистер игрек
 
14.09.11
08:00
В форму отчета вставил элемент управления типа ПолеHTMLДокумента.
Создал макет с типом HTML-документ.
В макет вставил рисунок.
В обработчике кнопки написал код:


Макет = ПолучитьМакет("Макет2");
ИсходникHTML = Макет.ПолучитьТекст();
Document = Макет.Получить();
ЭлементыФормы.ПолеHTMLДокумента1.УстановитьТекст(Текст9);


В режиме предприятия рисунок не показывает. Вместо риснука пустая рамка с красным "Х"
1 vudo
 
14.09.11
08:01
Какой HTML тэг? Покажи!
2 мистер игрек
 
14.09.11
08:12
По HTML я ни-ни.
Все, что там есть

<HTML xmlns:v = "urn:schemas-microsoft-com:vml"><HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8"><LINK href="__STYLE__" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.6000.17063" name=GENERATOR><BASE href=v8config://7f46118e-6ab3-4c87-aec3-409cea74ec07/mdobject/ide1c00f49-a454-44e9-954f-1ab9acd91375/8eb4fad1-1fa6-403e-970f-2c12dbb43e23></HEAD>
<BODY>
<P><IMG height=91 src="../../mdpicture/idb5f1f5ff-f7c7-47d3-a1b9-90be48373f59/00000000-0000-0000-0000-000000000000" width=217>&nbsp;<v:stroke joinstyle="miter"></v:stroke><v:path gradientshapeok="t" o:connecttype="rect"></v:path></P></BODY></HTML>
3 oleg_km
 
14.09.11
08:28
src="../../mdpicture/idb5f1f5ff-f7c7-47d3-a1b9-90be48373f59/00000000-0000-0000-0000-000000000000"

Вот здесь и должен быть указан файл с картинкой
4 мистер игрек
 
14.09.11
08:33
(3) у меня файл рисунка хранится в конфе, в общих картинках, называется "Картинка1".
Не поможешь, как это путь указать?
5 Asmody
 
14.09.11
08:33
(3) это и есть "файл с картинкой", точнее это ссылка на картинку в конфе, только она какая-то странная
6 vudo
 
14.09.11
08:33
<IMG height=91 src="../../mdpicture/idb5f1f5ff-f7c7-47d3-a1b9-90be48373f59/00000000-0000-0000-0000-000000000000" width=217>
Я так понимаю что "../../mdpicture/idb5f1f5ff-f7c7-47d3-a1b9-90be48373f59/00000000-0000-0000-0000-000000000000" это локальный путь, а в браузере закрыт доступ к локальной файловой системе. По этому и не выводит.
Можно так:
Base64 при загрузки картинки
сохранять картинку в сети как в (9) из v8: Можно ли загрузить локальную HTML страницу?

Но кашернее всего так:

В модуле формы пишешь

&НаСервере
Процедура ЗагрузкаКартинкиНаСервере()

ПоместитьВоВременноеХранилище(БиблиотекаКартинок.АктивныеПользователи.ПолучитьДвоичныеДанные(),УникальныйИдентификатор);
   
КонецПроцедуры

Процедура ФормированиеHTML()

ТекстПоляHTML = ТекстПоляHTML + <img height=91 width=217 src=""" + СсылкаНаКартинку + """/>;
   
КонецПроцедуры

Кстати надо в БЗ поместить, если там еще такого нету :)
7 Asmody
 
14.09.11
08:35
(6) у автора обычное приложение
8 vudo
 
14.09.11
08:37
Аййя! в (6) надо так:
Процедура ЗагрузкаКартинкиНаСервере()

СсылкаНаКартинку = ПоместитьВоВременноеХранилище(БиблиотекаКартинок.АктивныеПользователи.ПолучитьДвоичныеДанные(),УникальныйИдентификатор);
   
КонецПроцедуры
9 vudo
 
14.09.11
08:42
(7) + А кстати, автор, проверь может в обычном тоже взлетит?
10 мистер игрек
 
14.09.11
08:43
(9) "ПоместитьВоВременноеХранилище" - такого метода у меня нету
11 vudo
 
14.09.11
08:48
Тогда так попробуй:

Процедура ФормированиеHTML()

ТекстПоляHTML = ТекстПоляHTML + <img height=91 width=217 src="data:image/jpg/png/gif;base64,"" + Base64Строка(БиблиотекаКартинок.АктивныеПользователи.ПолучитьДвоичныеДанные()) + """/>;
   
КонецПроцедуры
12 vudo
 
14.09.11
08:49
(11)+ На Win7 работало вроде (IE9)...
13 vudo
 
14.09.11
08:55
В (11) Base64Строка должна идти сразу после запятой в data:image/jpg/png/gif;base64,
(с ковычками запарился)
14 мистер игрек
 
14.09.11
09:02
(12) У меня ХР.
Сможешь в 8.1 сделать внешний отчет и общую картинку "Важно" сделат?
Если у тебя получится, скинешь мне этот отчет?
Наверно у тебя 5 минут уйдет а это.
15 мистер игрек
 
14.09.11
09:05
(13) Попробовал как ты написал, все равно пустая рамка
16 oleg_km
 
14.09.11
09:10
Заинтриговали, а где в букваре описано как делать ссылки на картинки в поле HTML, я делал как в типовой торговле: выкладывал во временный файл
17 vudo
 
14.09.11
09:14
(16) Я не находил. (6) Сам изобретал.
(14) 8.1 не держу, но для обычного приложения счас попробую...
18 мистер игрек
 
14.09.11
09:16
(16) Где это в торговле?
19 мистер игрек
 
14.09.11
09:26
Я в коде прописал :

ЭлементыФормы.ПолеHTMLДокумента1.Перейти("C:\Documents and Settings\>Юзер\Desktop\ццц.htm");

Здесь тоже картинку показвает.

Скорее всего метод
"ЭлементыФормы.ПолеHTMLДокумента1.УстановитьТекст(Текст9);
"
криво генерирует текст
20 мистер игрек
 
14.09.11
09:46
Получилось!
Показываю путь прямо к файлу:

//ИсходникHTML = ИсходникHTML + "<P><IMG src=""file:///C:/Documents%20and%20Settings/Юзер/Desktop/untitled1.JPG"">&nbsp;<v:stroke joinstyle=""miter""></v:stroke><v:path gradientshapeok=""t"" o:connecttype=""rect""></v:path></P></BODY></HTML>";

Ну что же делать? Как говорится на безрыбье....
План то горить!
21 vudo
 
14.09.11
11:21
Вот такой подход является универсальным для тонкого клиента, для толстого, для Web и для обычного приложения:

Тест для обычного приложения:


Процедура ПриОткрытии()
   ТекстПоляHTML = "<HTML xmlns:v = ""urn:schemas-microsoft-com:vml""><HEAD>
   |<META http-equiv=Content-Type content=""text/html; charset=utf-8""><LINK href=""__STYLE__"" type=text/css rel=stylesheet>
   |<META  name=GENERATOR><BASE href=v8config://7f46118e-6ab3-4c87-aec3-409cea74ec07/mdobject/ide1c00f49-a454-44e9-954f-1ab9acd91375/8eb4fad1-1fa6-403e-970f-2c12dbb43e23></HEAD>
   |<BODY>
   |<P>";
   
   ТекстПоляHTML = ТекстПоляHTML + "<img height=91 width=217 src=""data:image/png;base64," + Base64Строка(БиблиотекаКартинок.АктивныеПользователи.ПолучитьДвоичныеДанные()) + """/>";
   ТекстПоляHTML = ТекстПоляHTML + "</P></BODY></HTML>";
   
ТекстовыйДокумент.Записать("D:/error.html",КодировкаТекста.UTF8);
   ЭлементыФормы.ПолеHTMLДокумента1.УстановитьТекст(ТекстПоляHTML);
   
КонецПроцедуры


Единственное ограничение наличие IE8 (не ниже). Это обязательно!

Проверьте на WinХP с IE8 кто нибудь. На Win7 работает!
22 vudo
 
14.09.11
11:22
В(21)

ТекстовыйДокумент.Записать("D:/error.html",КодировкаТекста.UTF8);

Надо убрать!!!