Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)

Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)
Я
   miSoft
 
14.03.19 - 14:21
Дорогие друзья всем доброго времени суток.
Помогите пожалуйста понять что я делаю не так.
Поставлена задача вывести на форму табличный документ Excel.

Код:

&НаКлиенте
Процедура ПоместитьФайлИнтерактивно()
    
    ОбработкаОкончанияПомещения = Новый ОписаниеОповещения
        ("ОбработчикОкончанияПомещения", ЭтотОбъект);

    НачатьПомещениеФайла(ОбработкаОкончанияПомещения, , , Истина,    
        ЭтаФорма.УникальныйИдентификатор);
        
КонецПроцедуры    
&НаКлиенте
Процедура ОбработчикОкончанияПомещения(Результат, Адрес,
        ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
        
    Если Результат Тогда
        Сообщить(Адрес);
        Сообщить(ВыбранноеИмяФайла);
        Объект.ДиалогВыбора = Адрес;
        Объект.НаименованиеЗагружаемогоФайла = ВыбранноеИмяФайла;
    Иначе
        Сообщить("Файл не был помещен.");
    КонецЕсли
    
КонецПроцедуры

&НаКлиенте
Процедура КнопкаВыбораФайла(Команда,ДиалогВыбора)
    ОбработатьФайлНаСервере(ДиалогВыбора);
    //Адрес = ;
КонецПроцедуры

&НаСервере
Процедура ОбработатьФайлНаСервере(ДиалогВыбора)
    
    Объект.ТабличныйДокумент.Очистить();
    Путь = КаталогВременныхФайлов()+"1Ctabdoctemp.xls";
    Файл = ПолучитьИзВременногоХранилища(ДиалогВыбора);
    Файл.Записать(Путь);
    
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Прочитать(Путь,СпособЧтенияЗначенийТабличногоДокумента.Значение);
    
    ТабличныйДокументРеквизитФормы.Вывести(ТабДок);
    
    Сообщить("Загрузка таблицы Excel произведена успешно!");
    
КонецПроцедуры

Получаю ошибку:
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(37)}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)
    Файл = ПолучитьИзВременногоХранилища(ДиалогВыбора);
по причине:
Недопустимое значение параметра (параметр номер '1')

Он говорит что не понимает что я от него хочу. У меня создан реквизит строковый куда помещается адрес, имя реквизита ДиалогВыбора. Почему он не может понять то че я от него хочу?
Не судите строго, я только учусь писать код, прям только начал :)
 
 
   Mort
 
1 - 14.03.19 - 14:53
Процедура КнопкаВыбораФайла(Команда,ДиалогВыбора)  что это за второй параметр? 

Какой порядок вызовов?
   Вафель
 
2 - 14.03.19 - 14:56
передача файла с клиента на сервер
https://gist.github.com/a-sitnikov/6bd195061cd0c3911b1fd03910f0db10
   RomaH
 
3 - 14.03.19 - 15:05
длины строки не хватает
   miSoft
 
4 - 14.03.19 - 15:18
(3) Она неограниченной длины
   miSoft
 
5 - 14.03.19 - 15:19
(4) Разобрался ребят. На всякий случай скину рабочий код, может кому-то пригодится:

&НаКлиенте
Процедура ПоместитьФайлИнтерактивно()
    
    ОбработкаОкончанияПомещения = Новый ОписаниеОповещения
        ("ОбработчикОкончанияПомещения", ЭтотОбъект);

    НачатьПомещениеФайла(ОбработкаОкончанияПомещения, , , Истина,     
        ЭтаФорма.УникальныйИдентификатор);
        
КонецПроцедуры    
&НаКлиенте
Процедура ОбработчикОкончанияПомещения(Результат, Адрес, 
        ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
        
    Если Результат Тогда
        Сообщить(Адрес);
        Сообщить(ВыбранноеИмяФайла);
        Объект.ДиалогВыбора = Адрес;
        Объект.НаименованиеЗагружаемогоФайла = ВыбранноеИмяФайла;
    Иначе
        Сообщить("Файл не был помещен.");
    КонецЕсли
    
КонецПроцедуры
&НаКлиенте
Процедура КнопкаВыбораФайла(Команда)
    ОбработатьФайлНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОбработатьФайлНаСервере()
    
    Объект.ТабличныйДокумент.Очистить();
    Путь = КаталогВременныхФайлов()+"1Ctabdoctemp.xls";
    Файл = ПолучитьИзВременногоХранилища(Объект.ДиалогВыбора);
    Файл.Записать(Путь);
    
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Прочитать(Путь,СпособЧтенияЗначенийТабличногоДокумента.Значение);
    
    ТабличныйДокументРеквизитФормы = ТабДок;
    
    Сообщить("Загрузка таблицы Excel произведена успешно!");
    
КонецПроцедуры


&НаСервере
Процедура УдалениеВременныхФйловИзКаталогаФайлов()
    
    Путь = КаталогВременныхФайлов()+"1Ctabdoctemp.xls";
    УдалитьФайлы(Путь);
    
КонецПроцедуры

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.