Fresh вынуждает на некрасивый код

Fresh не принял на аудит обработку, потому что в ней используются операции с файлами на сервере.

Сначала я подумал, что дело касается временных файлов и добавил разрешение на временные файлы в описании обработки:

Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Ложь,Истина,"Для загрузки данных из табличного документа требуется сохранение Excel на сервере во временный файл");
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);

Но это не помогло, конкретные строки кода они не написали, пришлось думать. Заподозрил этот код:

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

Пришлось передавать на сервер двоичные данные:

ДД = Новый ДвоичныеДанные(Объект.ПутьКФайлу);
ЗагрузитьДанныеНаСервере(ДД);	

И там их уже обрабатывать:

СоставПути = СтрРазделить(Объект.ПутьКФайлу,".");
РасширениеФайла = СоставПути.Получить(СоставПути.Количество()-1);
	
//Осипов - меняем на двоичные данные
ИмяВремФайла = ПолучитьИмяВременногоФайла()+"."+РасширениеФайла;
ДД.Записать(ИмяВремФайла);

Не так элегантно, но Fresh требует жертв!

Хотя если честно я всегда так пишу. Это проще, чем асинхронные помещения файлов. Просто пришлось переделывать уже готовую обработку, которую я адаптировал для баз с разделителями.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 2

  1. rzd:

    Даже здесь, казалось проще некуда, удалось тебе вставить плохой код:

    ИмяВремФайла = ПолучитьИмяВременногоФайла()+».»+РасширениеФайла;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *