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

    Возврат ВремФайл;        
КонецФункции
1 zak555
 
20.12.15
11:16
> Конфа типовая Учет Договоров

договорчики ?
2 Mystical
 
20.12.15
11:20
(1) Да
3 MaxS
 
20.12.15
11:20
(0) Это ошибка в конфигурации. В предыдущих версиях работала правильно. Пинайте разработчиков.
Исправить можно расширением конфигурации.