Конфа типовая Учет Договоров
присутстует код , который сохраняет на сервере во временой папке файл, и передает путь файла на клиент. Клиент сообетственно это путь не видет. можно ли както исправить без снятия с конфы с поддержки?
Вот код:
&НаКлиенте
Процедура ОткрытьФайл(Команда)
СтрокаТЧ = Элементы.СписокФайлов.ТекущиеДанные;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Не удалось выгрузить шаблон во временный файл на диске:%1'"), Символы.ПС + ОписаниеОшибки());
рез = ОткрытьФайлНаСервере(СтрокаТЧ.Ссылка);
Если рез = 0 Тогда
Возврат;
КонецЕсли;
Попытка
ЗапуститьПриложение(рез);
Исключение
Сообщение.Сообщить();
Возврат;
КонецПопытки;
КонецПроцедуры
&НаСервере
Функция ОткрытьФайлНаСервере(СсылкаНаЭлСправочника)
//Получим настройки хранения файлов в подсистеме решения Респект
НаборЗаписей = РегистрыСведений.удНастройки.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
ЕСЛИ НаборЗаписей.Количество() = 1 ТОГДА
Для Каждого Запись из НаборЗаписей Цикл
ИспользоватьВнешнееХранилище = Запись.ИспользоватьВнешнееХранилище;
ВнешнееХранилище = Запись.ВнешнееХранилище;
КонецЦикла;
ИНАЧЕЕСЛИ НаборЗаписей.Количество() <> 1 ТОГДА
//Ошибочная ситуация. Должна быть только 1 запись.
НаборЗаписей = РегистрыСведений.удНастройки.СоздатьНаборЗаписей();
НаборЗаписей.Записать(); //очищаем
//Заполним значениями по умолчанию
ПрограммаПечати = Перечисления.удПрограммаПечати.MSWord;
ИспользоватьВнешнееХранилище = ложь;
ВнешнееХранилище = "";
КОНЕЦЕСЛИ;
ПолныйПутьКФайлуВХранилище = ВнешнееХранилище + "\" + СсылкаНаЭлСправочника.ПутьКФайлу;
ВремФайл = ПолучитьИмяВременногоФайла(?(СсылкаНаЭлСправочника.РасширениеФайла="",СсылкаНаЭлСправочника.ИмяФайла,СсылкаНаЭлСправочника.РасширениеФайла));
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Не удалось выгрузить шаблон во временный файл на диске:%1'"), Символы.ПС + ОписаниеОшибки());
ЕСЛИ СсылкаНаЭлСправочника.ХранитьВТоме ТОГДА
Попытка
ДвоичныеДанныеФайла = Новый ДвоичныеДанные(ПолныйПутьКФайлуВХранилище);
ДвоичныеДанныеФайла.Записать(ВремФайл);
Исключение
Сообщение.Сообщить();
Возврат 0;
КонецПопытки;
ИНАЧЕ //Не в томе
АдресДанныхФайла = ПолучитьАдресДанныхФайла(СсылкаНаЭлСправочника.Ссылка);
Если НЕ АдресДанныхФайла = Неопределено Тогда
ПрикрепленныйФайл = ПолучитьИзВременногоХранилища(АдресДанныхФайла);
Попытка
ПрикрепленныйФайл.Записать(ВремФайл);
Исключение
Сообщение.Сообщить();
Возврат 0;
КонецПопытки;
КонецЕсли;
КонецЕсли;
(0) Это ошибка в конфигурации. В предыдущих версиях работала правильно. Пинайте разработчиков.
Исправить можно расширением конфигурации.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший