Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Передача двоичных данных на веб-клиент 8.3 Инвентаризация и управление имуществом 2.0

Передача двоичных данных на веб-клиент 8.3  Инвентаризация и управление имуществом 2.0
Я
   Uliana0_0
 
31.07.21 - 22:12
Пытаюсь передать файл PDF с сервера на веб-клиент. Ошибка такая "На сервере 1С:Предприятия произошла неисправимая ошибка. Приложение будет закрыто", но не думаю, что проблема на сервере. Пробовала и на других серверах запускать та же ошибка. Вот код сервера\клиента.

&НаКлиенте
Процедура Печать(ИдентификаторКоманды, МассивОбъектов) Экспорт
    АдресВременногоХранилища="";    
    ПечатьНаСервере(ИдентификаторКоманды,МассивОбъектов,АдресВременногоХранилища);    
    НачатьПолучениеФайлаССервера(АдресВременногоХранилища);     
КонецПроцедуры

&НаСервере
Процедура ПечатьНаСервере(ИдентификаторКоманды,МассивОбъектов,АдресВременногоХранилища)
        
        Для Каждого ДокОбъект Из МассивОбъектов Цикл
        Данные = ПолучитьДанные(ДокОбъект);
        
        Если данные <> Неопределено Тогда
            Word = Новый COMОбъект("Word.Application");
            Макет = ПолучитьМакетСервер(ИдентификаторКоманды);
            временныйПуть = КаталогВременныхФайлов();
            имяВременногоФайла = временныйПуть + "gph.docx";
            имяВременногоФайлаPDF = временныйПуть + "gph.pdf";
            Макет.Записать(имяВременногоФайла);
            ТекДок = Word.Documents.ADD(имяВременногоФайла);
            
            ЗначениеВЗакладку(ТекДок,"НомерДоговора", Данные.НомерДоговора);
            ЗначениеВЗакладку(ТекДок,"НомерДоговора2", Данные.НомерДоговора);
            ЗначениеВЗакладку(ТекДок,"НомерДоговора3", Данные.НомерДоговора);
            ЗначениеВЗакладку(ТекДок,"ДатаДокумента", Формат(Данные.Дата, "ДЛФ=ДД"));
            ЗначениеВЗакладку(ТекДок,"ДатаДокумента2", Формат(Данные.Дата, "ДЛФ=ДД"));
            ЗначениеВЗакладку(ТекДок,"ДатаДокумента3 ", Формат(Данные.Дата, "ДЛФ=ДД"));
            ЗначениеВЗакладку(ТекДок,"ДатаДокумента4", Формат(Данные.Дата, "ДЛФ=ДД"));
            ЗначениеВЗакладку(ТекДок,"ПолноеНаименованиеОрганизации", Данные.НаименованиеПолное);
            ЗначениеВЗакладку(ТекДок,"ПолноеНаименованиеОрганизации2", Данные.НаименованиеПолное);
            ЗначениеВЗакладку(ТекДок,"КраткоеНаименованиеОрганизации", Данные.НаименованиеСокращенное);
            КраткоеФИОФизЛица = ФамилияИнициалы(Строка(Данные.ФизическоеЛицо));
            ЗначениеВЗакладку(ТекДок,"КраткоеФИОФизЛица", КраткоеФИОФизЛица);
            ЗначениеВЗакладку(ТекДок,"КраткоеНаименованиеОрганизации2", Данные.НаименованиеСокращенное);            
            ЗначениеВЗакладку(ТекДок,"АдресОрганизации", Данные.ЮрАдрес);
            ЗначениеВЗакладку(ТекДок,"ИНН", Данные.ИНН);
            ЗначениеВЗакладку(ТекДок,"КПП", Данные.КПП);
            ЗначениеВЗакладку(ТекДок,"КраткоеФИОФизЛица2", КраткоеФИОФизЛица);
            ЗначениеВЗакладку(ТекДок,"КратФИОФизЛица", КраткоеФИОФизЛица);
            ЗначениеВЗакладку(ТекДок,"ФИОФизЛица", Данные.ФизическоеЛицо);
            ЗначениеВЗакладку(ТекДок,"АдресФизЛица", Данные.АдресФизЛица);  
            ЗначениеВЗакладку(ТекДок,"ИННФЛ", Данные.ИННФЛ);            
            ЗначениеВЗакладку(ТекДок,"ДанныеПаспортаФизЛица", Данные.Паспорт);
                    
            
            ТекДок.Tables(2).Select();
            СписокПодарков = СтруктураПодарки(ДокОбъект);
            I = 1;
            Для Каждого Подарок Из СписокПодарков Цикл
                word.selection.InsertRowsBelow(1);
                word.selection.rows(1).cells(1).Range.Text = I;
                word.selection.rows(1).cells(2).Range.Text = Строка(Подарок.Значение.Название);
                word.selection.rows(1).cells(3).Range.Text = Строка(Подарок.Значение.Количество);
                word.selection.rows(1).cells(4).Range.Text = Строка(Подарок.Значение.ИмуществоЦенаПоступления);
                word.selection.rows(1).cells(5).Range.Text = Строка(Подарок.Значение.Сумма);
                I = I + 1;
            КонецЦикла;
            
            Range = ТекДок.Range();
            Table = Range.Tables(5);
            СтрокаОбразец = Table.Rows(1);
            Для Каждого Подарок из СписокПодарков Цикл
                НоваяСтрока = Table.Rows.Add(СтрокаОбразец);
                НоваяСтрока.Cells(1).Range.Text = Строка(Подарок.Значение.Название);                
            КонецЦикла;            
            СтрокаОбразец.Delete();    
            
            ТекДок.Fields.Update();
            //ТекДок.ExportAsFixedFormat(имяВременногоФайлаPDF , 17);
            
            //Word.ActiveWindow.View.ShowFieldCodes = False;
            //Word.Visible=Истина;
            ТекДок.SaveAs2(имяВременногоФайлаPDF,17);
            ТекДок.Close(Ложь);
                        
            Word.Application.Quit(0);
            
            
            ДвоичныеДанные = Новый ДвоичныеДанные(имяВременногоФайлаPDF);
            АдресВременногоХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанные,КаталогВременныхФайлов()+"gph.pdf");

        КонецЕсли;
    КонецЦикла;    

    
        

КонецПроцедуры
   Uliana0_0
 
1 - 31.07.21 - 22:22
Ошибка при выполнении файловой операции  'e1cib/tempstorage/4144dbb3-925f-4d6e-b883-5d31701b5594?seanceId=8c967155-1ee0-494c-90f0-1d011d73d206&seanceId=8c967155-1ee0-494c-90f0-1d011d73d206'. Значение данного типа невозможно преобразовать для передачи как файл. (Неопределено)
Новая ошибка. Похоже двоичные данные нельза передать на веб, да?
   acht
 
2 - 31.07.21 - 23:21
(0) >  ПоместитьВоВременноеХранилище(ДвоичныеДанные,КаталогВременныхФайлов()+"gph.pdf"); 

Это что?

Список тем форума
 
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.