Имя: Пароль:
1C
 
Данные обработки на сервере
0 Kookish
 
07.08.14
02:17
День добрый.
Делаю обработку, которая загружает из файла большую таблицу. На клиенте мне эти данные не нужны. Загрузку в таблицу обработки сделал полностью на сервере, на форме в реквизитах объекта для этой таблицы снял галочку "Использовать всегда". И получил такой эффект: данные загружаются, управление передается на клиента, а при последующем обращении к таблице на сервере она оказывается пустой. Как это понимать?
Почитал вот эту тему: v8: Как в обработке хранить ТЗ на сервере
Неужели, кроме хранилища значений нет вменяемого способа сохранить значения обработки во время ее работы?
1 Kookish
 
07.08.14
02:19
Да, разумеется, обработка на управляемых формах.
2 Kookish
 
07.08.14
02:59
(0) Сорри, временного хранилища.
Сделал с использованием временного хранилища.
3 Лодырь
 
07.08.14
05:39
Кусок кода покажи где ты запихиваешь во времнное хранилище?
4 jsmith82
 
07.08.14
06:37
И какого типа данных у тебя реквизит?
5 Kookish
 
07.08.14
11:31
(4) Табличная часть. При загрузке около 50 тыс. строк. Когда выводил эту таблицу на форму, или просто стояла галочка "Использовать всегда", были жуткие тормоза.
(3) В результате вот что получилось, если кому интересно:

В модуле обработки:

...
Процедура Загрузить(Путь, УникальныйИдентификатор)

....

    
    АдресХранилища = ПоместитьВоВременноеХранилище(Продажи.Выгрузить(), ?(ЭтоАдресВременногоХранилища(АдресХранилища), АдресХранилища, ИдентификаторФормы));
    
КонецПроцедуры


АдресХранилища - реквизит обработки,
ИдентификаторФормы = ЭтаФорма.УникальныйИдентификатор(); - передается с клиента.

При повторной загрузке используется то же хранилище, чтобы не терялась память.

Дальше - просто. Перед работой с табличной частью Продажи, мы ее загружаем:

...
    Если НЕ ЭтоАдресВременногоХранилища(АдресХранилища) Тогда
        ПолучитьСообщениеОбОшибке(5);
        Возврат Ложь;
    КонецЕсли;
    
Продажи.Загрузить(ПолучитьИзВременногоХранилища(АдресХранилища));
...
Ошибка? Это не ошибка, это системная функция.