Имя: Пароль:
1C
1С v8
Вывод макета ActiveDocument в клиент-серверном варианте Бухгалтерия 3.0
0 skupidom
 
20.10.19
14:33
Макет выходит в формате doc, но отображается странная кодировка, как исправить ?
Код:
&НаСервере
Функция ПолучитьДанныеМакета()
    
    ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
    
    АдресХранилища = Новый УникальныйИдентификатор();
    Макет          = ОбработкаОбъект.ПолучитьМакет("МакетWORD");
    
    ВременныйФайл = ПолучитьИмяВременногоФайла("doc");
    Макет.Записать(ВременныйФайл);
    
    Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ВременныйФайл),АдресХранилища);
    УдалитьФайлы(ВременныйФайл);
    
    Возврат Адрес;
    
КонецФункции
&НаКлиенте
Процедура Распечатать(Команда)    
    
    Пользователь = ПользователиКлиентСервер.ТекущийПользователь();
    Каталог = КаталогВременныхФайлов();
    Каталог = ?(Прав(Каталог,1) = "\", Каталог, Каталог+"\");
    ПолноеИмяФайла = Каталог+"Договор" + ".doc";
    
    Попытка
        Индификатор = ПолучитьДанныеМакета();
        МакетДоговора = ПолучитьИзВременногоХранилища(Индификатор);
        МакетДоговора.Записать(ПолноеИмяФайла);
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
    
    Попытка
        MSWord = Новый COMОбъект("Word.Application");
    Исключение
        Сообщить("Ошибка при попытке создать объект ""MS Word""!" + Символы.ПС +
        "Возможно приложение ""MS Word"" не установлено или установлено неправильно.", СтатусСообщения.Внимание);
    КонецПопытки;
    
    MSWord.Documents.Open(ПолноеИмяФайла);
    
    Попытка                                                            
        Документ = MSWord.Application.Documents(1);
        Документ.Activate();
    Исключение
        
        Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = ОписаниеОшибки();
        Сообщение.Сообщить();
        
        MSWord.Application.Quit();
        
        Возврат;
        
    КонецПопытки;

MSWord.Application.Visible = Истина;
MSWord.Activate();

КонецПроцедуры
1 skupidom
 
20.10.19
15:07
выводится в таком виде:
РП аЎ± б                >   юя                                         юяяя        яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяэяяяюяяяюяяяюяяя
2 skupidom
 
20.10.19
15:08
как исправить ?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший