Имя: Пароль:
1C
 
Как вставить изображение в поле HTML документа
0 Повелитель
 
25.02.20
07:41
Начиная с версии 8.3.14 в платформе 1с изменился движок на webkit и некоторые методы работы со встроенным в 1с полем HTML-документа перестали работать.

Например работал метод вставки картинки
ЭлементыФормы.Документ.execCommand("InsertImage", Ложь, "file://192.168.0.254/Obmennik/Adrec1c/Smails/Групповые/skripka.gif");

Сейчас этот метод не работает.
Подскажите как вставить картинку?
Очень мало информации по работе с HTML-документом.
1 Повелитель
 
25.02.20
07:42
(0) ЭлементыФормы.ПолеHTMLДокумента.Документ.execCommand("InsertImage", Ложь, "file://192.168.0.254/Obmennik/Adrec1c/Smails/Групповые/skripka.gif");
2 lucbak
 
25.02.20
07:52
(0) СтрокаНТМL="
|<!DOCTYPE html>
|<html>
|<center>
|";
СтрокаНТМL=СтрокаНТМL+"
|<img src=""data:image/jpeg;base64,
|";
СтрокаНТМL=СтрокаНТМL+Base64Строка(Новый ДвоичныеДанные(192.168.0.254/Obmennik/Adrec1c/Smails/Групповые/skripka.gif));
СтрокаНТМL=СтрокаНТМL+"
|"" style=""max-width:100%; height:auto""; align-items:center; alt="""" />
|</center>
|</html>
|";
3 Повелитель
 
25.02.20
07:55
(2) Это для управляемых форм?
А то в обычных не работает.
4 lucbak
 
25.02.20
08:08
(3) это для вывода изображения на форме поля html - безраницы какие формы
5 lucbak
 
25.02.20
08:10
СтрокаНТМL - это твое ПолеHTMLДокумента
6 Повелитель
 
25.02.20
08:21
Попробовал

Процедура КоманднаяПанель1Действие1(Кнопка)
    СтрокаНТМL = ЭлементыФормы.ТекстСообщенияHTML;
    
    СтрокаНТМL="
    |<!DOCTYPE html>
    |<html>
    |<center>
    |";
    СтрокаНТМL=СтрокаНТМL+"
    |<img src=""data:image/jpeg;base64,
    |";
    СтрокаНТМL=СтрокаНТМL+Base64Строка(Новый ДвоичныеДанные("//192.168.0.254/Obmennik/Adrec1c/Smails/Групповые/skripka.gif"));
    СтрокаНТМL=СтрокаНТМL+"
    |"" style=""max-width:100%; height:auto""; align-items:center; alt="""" />
    |</center>
    |</html>
    |";
    
КонецПроцедуры


Не работает.
Поле пустое.

Вот тестовая обработка.
https://yadi.sk/d/QxoqSqV57oXpDw
7 lucbak
 
25.02.20
09:05
СтрокаНТМL="
    |<!DOCTYPE html>
    |<html>
    |<center>
    |";
    СтрокаНТМL=СтрокаНТМL+"
    |<img src=""data:image/jpeg;base64,
    |";
    СтрокаНТМL=СтрокаНТМL+Base64Строка(Новый ДвоичныеДанные("C:\1\DSC00385.jpg"));
    СтрокаНТМL=СтрокаНТМL+"
    |"" style=""max-width:100%; height:auto""; align-items:center; alt="""" />
    |</center>
    |</html>
    |";
    ЭлементыФормы.ТекстСообщенияHTML.УстановитьТекст(СтрокаНТМL);
8 Повелитель
 
25.02.20
11:19
(7) Спасибо, работает.
9 pechkin
 
25.02.20
11:35
лучше конечно веб сервер поднять и там картинки хостить.
10 Повелитель
 
25.02.20
11:50
(9) Нам только внутри локальной сети нужно обмениваться картинками.
11 pechkin
 
25.02.20
11:50
(10) а что веб сервер противоречит локальной сети?
12 Повелитель
 
25.02.20
12:24
(11) Не противоречит, просто думаю что преимущества у вебсервера будут когда и 1с вне локалки смотрит.
У меня просто обычные формы, веб сервер на данный момент отсутствует.
13 DrLightman
 
10.03.20
15:20
(12) если //192.168.0.254/ это не локальный адрес C:\1\DSC00385.jpg, то возможно, это политика безопасности не дает доступа.
Кроме того, если 1с работает в серверном режиме, то html-скрипт исполняется на серверном хосте и доступ к //192.168.0.254/ должен быть у сервера в учетной записи 1с.

web-сервер IIS есть в каждой Windows системе начиная с XP, ее только надо включить и несложно настроить.
14 pechkin
 
10.03.20
15:21
(12) преимущество в том что можно впринципе картинки вставлять
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший