Имя: Пароль:
1C
1С v8
Получение объекта из временного хранилища
0 1С-ница
 
09.11.13
12:00
Управляемое приложение, платформа 8.3
Необходимо строковые данные записать в таблицу значения, чтобы потом записать ее в таб часть документа Корректировка регистров.
&НаСервере
Процедура ЗаписатьТЗ(Наименование,Остаток)
перем Адрес
Попытка
ТЗ = ПолучитьИзВременногоХранилища(Адрес);
Исключение
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Наименование");
ТЗ.Колонки.Добавить("Остаток");
КонецПопытки;
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Наименование = Наименование;
НоваяСтрока.Остаток = Остаток;

Адрес = ПоместитьВоВременноеХранилище(ТЗ);

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

при входе в процедуру во второй и последующие разы Адрес неопределен и значение из временного хранилища не получается. Помогите сделать это правильно...
1 Defender aka LINN
 
09.11.13
12:02
(0) Я так понимаю, СП безнадежно покраден?
2 1С-ница
 
09.11.13
12:02
Глобальный контекст (Global context)
ПолучитьИзВременногоХранилища (GetFromTempStorage)
Синтаксис:

ПолучитьИзВременногоХранилища(<Адрес>)
Параметры:

<Адрес> (обязательный)

Тип: Строка.
Адрес, указывающий на значение во временном хранилище.
Возвращаемое значение:

Тип: Произвольный.
Значение, ранее помещенное с помощью метода ПоместитьВоВременноеХранилище.
Описание:

Получает значение из временного хранилища.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Примечание:

Результат выполнения не кэшируется, вызов сервера осуществляется при каждом вызове метода.
3 GROOVY
 
09.11.13
12:06
(0) Ну так переменная Адрес инициализируется всякий раз при входе в процедуру.

И еще можно не попыткой проверять получены ли данные из ВХ.
4 1С-ница
 
09.11.13
12:06
Желательно пожеланий по существу
5 1С-ница
 
09.11.13
12:07
(3) как тогда правильно получать адрес временного хранилища?
6 Defender aka LINN
 
09.11.13
12:08
(5) Надо сделать над собой усилие и таки прочитать, что тебе пишут в СП. Ну или хотя бы в этой ветке
7 GROOVY
 
09.11.13
12:08
И я если честно не понял зачем в этом примере нужно временное хранилище...

(5) Наверно не "Получать", а "Хранить"? Можно в реквизите формы, а можно в переменной модуля.
8 1С-ница
 
09.11.13
12:10
(7) Если честно я не придумала другого способа как записывать строки в Таблицу значений, т к чтение текста возможно только на клиенте, а работа с ТЗ только на сервере
9 GROOVY
 
09.11.13
12:12
(8) То есть, сейчас для каждой строки вы гоняете на сервер с передачей контекста формы?
10 Defender aka LINN
 
09.11.13
12:12
(8) "чтение текста возможно только на клиенте" - а еще такая трава осталась?
11 1С-ница
 
09.11.13
12:12
&НаКлиенте
Процедура Сформировать(Команда)
ТекстКлиенты = Новый ЧтениеТекста("D:\Test Base\ExportOst.txt", КодировкаТекста.Системная);
Стр = "";
    Пока Стр<>Неопределено Цикл
        Стр = ТекстКлиенты.ПрочитатьСтроку();
        СформироватьКлиенты(Стр);
        Состояние("Обрабатывается " + Стр);
        ОбработкаПрерыванияПользователя();
    КонецЦикла;    

Процедура СформироватьКлиенты(Стр)
    
    Позиция1 = Найти (Стр, ";"); //10
    Наименование = Сред(Стр, 1,Позиция1-1);//ФИО
    
    Позиция2 = Найти(Прав(Стр,СтрДлина(Стр)-(Позиция1)),";");   //Остаток
    Остаток = Сред(Стр,Позиция1+1, Позиция2-1);
    ДобавитьВТЗ(Наименование,Остаток);
КонецПроцедуры
12 GROOVY
 
09.11.13
12:13
Сделайте реквизит формы с типом "ТаблицаЗначений" и пишите все туда на клиенте.
13 GROOVY
 
09.11.13
12:14
(11) Загрузите файл с текстом во временное хранилище, переедте на сервер, там получите этот файл и грузите куда нужно.
14 1С-ница
 
09.11.13
12:25
(12) Сделала реквизит формы ТЗ с типом ТЗ, в отладчике записать туда данные не получается, т к тип у ТЗ Данные формы коллекция, а не ТаблицаЗначений
15 GROOVY
 
09.11.13
12:29
(14) Что не получается писать в реквизит? Добавить() не работает?
16 GROOVY
 
09.11.13
12:32
17 1С-ница
 
09.11.13
12:33
(15) Добавила колонки реквизит, нужные данные записываются, но почему то через одну строку: она строк заполняется пустыми данными, вторая нужными...
18 1С-ница
 
09.11.13
12:34
(17) прошу прощения, моя ошибка
19 1С-ница
 
09.11.13
12:42
Получилось!!!!!!!!!!!!!! Спасибо большое за помощь)))))
20 1С-ница
 
09.11.13
12:51
Подскажите еще пож-ста: использую тестовую платформу (не помню для каких целей ее ставила) 8.3.4.304 В последнее время стали появляться записи дампа, то  при работе в конфигураторе, то при работе в 1С предприятии (на тестовой базе) Это связано именно с платформой?
21 GROOVY
 
09.11.13
12:54
(20) Скорее всего. Ставьте более свежую.