Имя: Пароль:
1C
1С v8
Не получается вставить рисунок в поле форматированного документа
0 sergqwert
 
26.09.20
22:14
Не получается вставить рисунок в поле форматированного документа. Рисунок не показывается. Конфигурация БП 3.0
&НаКлиенте
Процедура ВставитьВТелоПисьма(Команда)
    
    ДВФ = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Если ДВФ.Выбрать() Тогда
        ДвДанныеФайла = Новый ДвоичныеДанные(ДВФ.ПолноеИмяФайла);
        СкопироватьДвоичныеДанныеВБуФерВФорматеBase64(ДвДанныеФайла, ДВФ.ПолноеИмяФайла);
    КонецЕсли;

КонецПроцедуры

&НаСервере
Процедура СкопироватьДвоичныеДанныевБуФерВФорматеBase64(ДвДанныеФайла, текИмяФайла)
        
        текРасширениеФайла = ПолучитьРасширениеФайла(текИмяФайла);
    Строка64 = "data:image/"+текРасширениеФайла+";base64,"+Base64Строка(ДвДанныеФайла);
    ТекстHTMLКартинка = "<P><IMG alt="""" src="""+Строка64+""">";
    ЗначениеВыбора = Элементы.ТелоПисьма.ПолучитьТекст();
    ЗначениеВыбора = СтрЗаменить(ЗначениеВыбора, "</BODY>", ТекстHTMLКартинка + "</BODY>");
    Элементы.ТелоПисьма.УстановитьТекст(ЗначениеВыбора);
    ЭтаФорма.Прочитать();
    ЭтаФорма.ОбновитьОтображениеДанных();;
    
КонецПроцедуры

&НаСервере    
Функция ПолучитьРасширениеФайла(ВхИмяФайла)
    
    текРасширение = "jpg";
    Если СокрЛП(ВхИмяФайла) <> "" И СтрЧислоВхождений(ВхИмяФайла, ".") > 0 Тогда
        времРасширение = СокрЛП(СтрПолучитьСтроку(СтрЗаменить(ВхИмяФайла, ".", Символы.ПС), СтрЧислоСтрок(СтрЗаменить(ВхИмяФайла, ".", Символы.ПС))));
        Если СокрЛП(времРасширение) <> "" Тогда
            текРасширение = времРасширение;
        КонецЕсли;
    КонецЕсли;
    Возврат текРасширение;
    
КонецФункции
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс