Имя: Пароль:
1C
1С v8
Добавление картинок в openoffice (не ставится вторая картинка)
0 sprinter83
 
14.04.20
10:51
Добрый день.
Из 1С вывожу договор через openoffice,
В договор нужно добавить 2 картинки (1 - печать, 2 - подпись)
в шаблоне договора есть текст "%Подпись%", "%Печать%", ищу эти надписи и заменяю их картинками
Ниже привёл код вывода. Получается так что первая картинка "Подпись" выводится, а вторая нет
Причём второй параметр %Печать%", по которому должна искаться и выводится следующая картинка также затирается, но картинки нет
Может быть кто-то сталкивался с подобным поведением, не могу найти причину. Заранее благодарен

Процедура ОткрытьOpenOffice(OpenOffice, имяВременногоФайла, ДанныеДляПечати)
    
    Параметры = ДанныеДляПечати.Параметры;
    КартинкаПечать = ДанныеДляПечати.КартинкаПечать;
    КартинкаПодпись = ДанныеДляПечати.КартинкаПодпись;

    Args = Новый COMSafeArray("VT_DISPATCH", 1);
    
    Param=OpenOffice.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
    Param.Name = "AsTemplate";
    Param.Value = True;
    Args.SetValue(0,Param);
    
    Desktop = OpenOffice.CreateInstance("com.sun.star.frame.Desktop");
    ПутьКФайлуURL = convertToURL(имяВременногоФайла);
    Document = Desktop.LoadComponentFromURL(ПутьКФайлуURL, "_blank", 0, Args);
        
    Если КартинкаПодпись <> Неопределено Тогда
        ДобавитьКартинкуОпенОфис(Document, КартинкаПодпись, "%Подпись%");    
    КонецЕсли;
    
    Если КартинкаПечать <> Неопределено Тогда
        ДобавитьКартинкуОпенОфис(Document, КартинкаПечать, "%Печать%");    
    КонецЕсли;
        
КонецПроцедуры


Процедура ДобавитьКартинкуОпенОфис(Document, РисунокПечати, ИмяЗакладки)

    #Если ВебКлиент Тогда
        ИмяВременногоФайла = КаталогВременныхФайлов() + Строка(Новый УникальныйИдентификатор) + ".tmp";
    #Иначе
        ИмяВременногоФайла = ПолучитьИмяВременногоФайла("tmp");
    #КонецЕсли
    ДвоичныеДанные = ПолучитьИзВременногоХранилища(РисунокПечати);
    ДвоичныеДанные.Записать(ИмяВременногоФайла);
    
    TextGraphicObject = Document.createInstance("com.sun.star.text.TextGraphicObject");
    FileURL = ИмяФайлаВURL(ИмяВременногоФайла);
    TextGraphicObject.GraphicURL = FileURL;
    TextGraphicObject.SurroundContour = True;
    
    SearchDescriptor = Document.CreateSearchDescriptor();
    SearchDescriptor.SearchString = ИмяЗакладки;
    SearchDescriptor.SearchCaseSensitive = False;
    SearchDescriptor.SearchWords = False;
    
    Found = Document.FindFirst(SearchDescriptor);
    While Found <> Undefined Do
        Found.GetText().InsertTextContent(Found.getText(), TextGraphicObject, True);
        Found = Document.FindNext(Found.End, SearchDescriptor);
    EndDo;
    
КонецПроцедуры