Имя: Пароль:
1C
1С v8
ПоместитьВоВременноеХранилище таблицу значений
0 OnCheck
 
09.07.14
06:41
Добрый день, подскажите пожалуйста, в чем ошибка.

Передаю из модально открытой формы значение в форму владельца вот так:

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

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


Форма заполнения:

&НаКлиенте
Процедура ЗагрузитьДанные(Команда)
    
    ЭтаФорма.Модифицированность = Ложь;
    ЭтаФорма.Закрыть(ПеренестиВДокументНаСервере());

КонецПроцедуры

&НаСервере
Функция ПеренестиВДокументНаСервере()
    
    Возврат ПоместитьВоВременноеХранилище(Проекты.Выгрузить());
    
КонецФункции


Так вот в случае если таблица Проекты заполнена вручную, т.е. по кнопке добавить и т.д., все работает.

Но если таблица проекты заполнена программно из Excel то в процедуре
ОбработатьЗагрузкуИзЕксель метод ПолучитьИзВременногоХранилища(АдресХранилища) возвращает "Неопределено". Почему это происходит, хотя бы как сделать так, чтобы заработало.
1 OnCheck
 
09.07.14
07:29
Натестил ботльше инфы.

На форме заполнения есть реквизиты которые подлежат к сохранению. И проблема возникает, в том случае, когда я модифицирую один из таких реквизитов, если реквизиты не трогать, то все работает.Видимо путанится с хранилищем, когда я не модифицирую эти реквизиты то, что я положил в хранилище, то там и лежит. Если же, я модифицирую реквизит формы подлежащий сохранению, то форма перезаписывает хранилище, таким образом моего реквизита там нет. Как решить эту проблему?
2 RomaH
 
naïve
09.07.14
07:46
ПоместитьВоВременноеХранилище(Проекты.Выгрузить());
там второй параметр есть - почитай зачем он
3 OnCheck
 
09.07.14
07:58
(2) Ок, спасибо, сохранил во временное хранилище формы владельца, все работает. Спасибо.