Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2025, 14:51

Получение ПДФ документа

Автор Алексей_1985_06, 06 апр 2025, 11:16

0 Пользователей и 1 гость просматривают эту тему.

Алексей_1985_06

Всем привет, подскажите почему не отображается загруженный документ в реквизит с типом ХранилищеЗначения:

&НаКлиенте
Процедура ЗагрузитьФайл(Команда) // Команда на форме

// Процедура которая помещает файл во Временное Хранилище
ПоместитьФайлВоВХ();

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


&НаКлиенте
Асинх Процедура ПоместитьФайлВоВХ()

ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(,,,,УникальныйИдентификатор); 

Если ОписаниеФайла <> Неопределено Тогда
Объект.Наименование = ОписаниеФайла.СсылкаНаФайл.Файл.ИмяБезРасширения;   
// Получим размер файла
Размер = ОписаниеФайла.СсылкаНаФайл.Размер(); //Размер файла в байтах
РазмерМБ = (Размер/1024)/1024;   //Размер файла в Мб
Объект.РазмерФайла = РазмерМБ;

// В реквизит формы ДвоичныеДанные (тип:Произвольный) поместим двоичные данные полученные из ВХ по адресу файла
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайла);
Если  ДвоичныеДанные <> Неопределено Тогда

// Откроем поток для чтения двоичных данных.
Поток = ДвоичныеДанные.ОткрытьПотокДляЧтения(); 
// Прочитаем двоичные данные из потока.
ПДФДокумент.ПрочитатьАсинх(Поток);            
КонецЕсли;   

КонецЕсли;
     
КонецПроцедуры


&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

  Если ДвоичныеДанные <> Неопределено Тогда     
   ТекущийОбъект.ФайлДокумента = Новый ХранилищеЗначения(ДвоичныеДанные); //ФайлДокумента - реквизит справочника с типом ХЗ    
  КонецЕсли;

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


&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

ДвоичныеДанные = ТекущийОбъект.ФайлДокумента.Получить(); // Вот здесь значение Неопределено - не понятно почему так получается?

Если  ДвоичныеДанные <> Неопределено Тогда
Поток = ДвоичныеДанные.ОткрытьПотокДляЧтения(); 
ПДФДокумент.ПрочитатьАсинх(Поток);
КонецЕсли;
КонецПроцедуры



fruitella

Видимо не записал в реквизит ФайлДокумента, поэтому и неопределено. Событие при записи это после того как данные уже были записаны, но транзакция полносью еще не завершена. В этом событии можно управлять записью доп. информации.
Ты присваиваешь в реквизит обьекта данные хранилища, но ты это не записываешь.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск