|  | Изменить файл в функции НачатьПомещениеФайлаНаСервер() 
 бегинер, АЛьФ , Fedor-1971 , mikecool , ads55 , Бычье сердце , Волшебник , Spyke , AAA , Timon1405 , СвинТуз , AlexKimp , Fil_il , АгентБезопаснойНацио , dnab , lEvGl , Гипервизор , formista2000 , chelentano , timurhv , youalex , Ногаминебить , Stepashkin , hunter76 | ☑ | 
    
        | 0
    
        АЛьФ   15.01.25✎ 11:43 | 
        Есть вывод и перемещение файла на сервер с помощью метода НачатьПомещениеФайлаНаСервер(). Код такой:
 ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов;
 ПараметрыДиалога.МножественныйВыбор = Ложь;
 ПараметрыДиалога.Заголовок = "Выберите файл со сканом счета";
 ПараметрыДиалога.Фильтр = "Файл PDF (*.pdf)|*.pdf|Файл EXCEL (*.xls)|*.xls|";
 
 ЗавершениеОбратныйВызов = Новый ОписаниеОповещения("ЗавершениеОбратныйВызов", ЭтотОбъект);
 ПрогрессОбратныйВызов = Новый ОписаниеОповещения("ПрогрессОбратныйВызов", ЭтотОбъект);
 ПередНачаломОбратныйВызов = Новый ОписаниеОповещения("ПередНачаломОбратныйВызов", ЭтотОбъект);
 НачатьПомещениеФайлаНаСервер(ЗавершениеОбратныйВызов, ПрогрессОбратныйВызов, ПередНачаломОбратныйВызов,, ПараметрыДиалога, ЭтаФорма.УникальныйИдентификатор);
 
 Хотелось бы при выборе файла в формате xls конфертировать его в pdf. Примерно понятно как это сделать: загрузить в табличный документ и сохранить во временный файл в нужном формате. Сунулся в оповещение ПередНачаломОбратныйВызов(), туда приходит первым параметром выбранный файл, но в типе СсылкаНаФайл с кучей параметров. Можно как-то в этом событии подменить перемещаемый файл или надо городить свой выбор файла и в функцию НачатьПомещениеФайлаНаСервер() передавать уже сконвертированный временный файл?
 |  | 
    
        | 1
    
        Волшебник   15.01.25✎ 12:05 | 
        конфертируйте в фоновом задании уже после помещения файла в базу     |  | 
    
        | 2
    
        АЛьФ   15.01.25✎ 12:13 | 
        2(1) Т.е. ты предлагаешь переместить файл на сервер, поместить его в хранилище, прописать адрес в справочник, сохранить. Потом фоновым заданием перебрать все элементы справочника, извлечь файл из хранилища, проверить формат, в случае необходимости переконвертировать его в нужный формат, поместить новый файл в хранилище, записать в справочник новый адрес.
Я правильно понял?
 |  | 
    
        | 3
    
        Волшебник   15.01.25✎ 12:16 | 
        (2) да     |  | 
    
        | 4
    
        Fedor-1971   15.01.25✎ 12:32 | 
        (2) Можно и сразу сконвертировать, если нужно
Процедура ЗавершениеОбратныйВызов(Описание, допПараметры) экспорт
 Если НЕ Описание = Неопределено тогда
 рез = СохранитьфайлНаСервере(Описание.Адрес, Описание.СсылкаНаФайл.Расширение);
 КонецЕсли;
 КонецПроцедуры
 
 И в
 Процедура СохранитьфайлНаСервере(парАдрес, парРасширение)
 ИмяФайла = ПолучитьИмяВременногоФайла(парРасширение);
 Файл = ИмяФайла;
 
 ДвоичныеДанные = ПолучитьИзВременногоХранилища(парАдрес);
 ДвоичныеДанные.Записать(ИмяФайла);
 
 ТаблДок = Новый ТабличныйДокумент;
 ТаблДок.Прочитать(Файл, СпособЧтенияЗначенийТабличногоДокумента.Значение);
 
 дальше сохрани в PDF
 |  | 
    
        | 5
    
        АЛьФ   15.01.25✎ 12:31 | 
        2(4) И получается, что у меня на сервер отправляется один файл, помещается в хранилище, потом я его извлекаю, конвертирую, сохраняю в хранилище и уже этот адрес в хранилище записываю себе в справочник? И в хранилище у меня двойные не нужные данные?
Так вопрос и был в том, чтобы этого избежать и на сервер не тащить лишние данные. Тем более не тащить их в хранилище.
 |  | 
    
        | 6
    
        Волшебник   15.01.25✎ 12:34 | 
        (5) удалите лишние после конвертации     |  | 
    
        | 7
    
        Fedor-1971   15.01.25✎ 12:35 | 
        (5) Помещаешь в хранилище формы (у тебя в коде ЭтаФорма.УникальныйИдентификатор), после конвертации пишешь в хранилище справочника
В твоём раскладе файл будет жить в хранилище до закрытия формы если не сохранишь его куда нужно
 |  | 
    
        | 8
    
        АЛьФ   15.01.25✎ 12:46 | 
        2(7) Спасибо. Пришлось пойти именно этим путем.     |  |