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

Код:

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

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

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

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

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

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

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

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

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


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