Имя: Пароль:
1C
1С v8
Запись и чтение из хранилищаЗначений
0 SergeySergIT
 
28.03.13
08:15
написал вот такие процедуры в мобуле объекта
Процедура ЗаписатьВХранилище() Экспорт
    ТабДок=Новый ТабличныйДокумент;    
    Форма = Этотобъект.ПолучитьФорму("ФормаДокумента");
   
   ТабДок.Вывести(Форма.ЭлементыФормы.ПолеТабличногоДокумента1);
   Хранилище = Новый ХранилищеЗначения(ТабДок.Область("R3C1:R3C8"));
   Записать();
КонецПроцедуры

Процедура ПрочитатьИзХранилища() Экспорт
   ТабДок = Хранилище.Получить();
   Форма = ЭтотОбъект.ПолучитьФорму("ФормаДокумента");
   Если ТабДок <> Неопределено Тогда
       Форма.ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(ТабДок);
   КонецЕсли;
КонецПроцедуры

ругаеться что переменная Хранилище не определено в процедуре ПрочитатьИзХранилища
1 Рэйв
 
28.03.13
08:16
Вверху модуля сделай

Перем Хранилище ;
2 SergeySergIT
 
28.03.13
08:19
(1) делал тогда метод получить не делает
3 andreymongol82
 
28.03.13
08:19
(0) У тебя во второй процедуре где хранилище объявляется и инициализируется?
4 SergeySergIT
 
28.03.13
08:20
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
       ЗаписатьВХранилище();
   КонецПроцедуры

   Процедура ОсновныеДействияФормыПолучитьДанные(Кнопка)
       ПрочитатьИзХранилища();
   КонецПроцедуры
5 andreymongol82
 
28.03.13
08:20
(2) правильно, переменная же будет неопределено
6 Рэйв
 
28.03.13
08:21
(2)Так ты сначала положи прежде чем получить
7 Рэйв
 
28.03.13
08:22
+(6)Или в последней строчке модуля после процедур

Хранилище = Новый ХранилищеЗначения("");
8 SergeySergIT
 
28.03.13
08:22
если делаю 2 кнопки на форме записать, и получить то нормально записывает а если перед записью и перед открытием то ругаеться
9 Рэйв
 
28.03.13
08:23
(8)См (7)
10 SergeySergIT
 
28.03.13
08:25
(9){Документ.УчетПоказателейАудитаПроизводства.МодульОбъекта(15)}: Ошибка при вызове метода контекста (Вывести)
       Форма.ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(ТабДок);
по причине:
Несоответствие типов (параметр номер '1')
11 Рэйв
 
28.03.13
08:27
(10)
Что то мне кажется, что ТабДок у тебя нифига не секция, а табличный документ..

А в .Вывести() нужна секция.
12 Рэйв
 
28.03.13
08:28
аа..Стоп..Ты ж его получаешь из хранилища
13 SergeySergIT
 
28.03.13
08:29
(11) а почему тогда кнопками то все рвботает?
14 SergeySergIT
 
28.03.13
08:29
(12) и?
15 Рэйв
 
28.03.13
08:29
(10)Смотрел мультик?
"Чтобы продать чтото ненужное, надо сначала купить что-то ненужное."

Чтобы получить секцию из хранилища, надо сначала ее туда положить.
16 Рэйв
 
28.03.13
08:30
А у тебя там изначально лежит просто пустая строка
17 SergeySergIT
 
28.03.13
08:30
(15) подскажи как
18 Рэйв
 
28.03.13
08:31
(17)Скажи сначала а зачем тебе вообще хранилище?
19 SergeySergIT
 
28.03.13
08:34
(18)
там короче есть форма которая имеет Поле табличного Документа и в нее в определенную область заносятся данные в ручную, вот а потом они будут использоваться уже в другой обработке ну и надо чтоб после повторного открытия они были видны те данные которые вводились

таблицу не предлогать
20 butterbean
 
28.03.13
08:36
(19) это форма обработки?? если да, то куда ты тогда записываешь своё хранилище??
21 SergeySergIT
 
28.03.13
08:37
это форма документа
22 butterbean
 
28.03.13
08:38
(21) а что такое Хранилище??
23 kosts
 
28.03.13
08:41
(0) ТабДок.Область("R3C1:R3C8") это ссылка, сохранив это в хранилище, ничего потом из него не получишь. Нужно сохранять конкретные данные.
24 SergeySergIT
 
28.03.13
08:41
некое место в базе где хранятся данные записанные в нее
25 kosts
 
28.03.13
08:42
ТабДок.Область("R3C1:R3C8") это ссылка - имею ввиду указатель.
26 butterbean
 
28.03.13
08:42
(24) это реквизит у документа такой Хранилище?? или еще какое-то место??
27 andreymongol82
 
28.03.13
08:42
(24) Это так про всю базу можно сказать
28 andreymongol82
 
28.03.13
08:43
(24) Хранилище, лучше делать реквизитом, а то потом совсем ничего не найдешь
29 Рэйв
 
28.03.13
08:53
(19)Лучше сохраняй введенные вручную данные, а область потом выведешь и заполнишь заново
30 SergeySergIT
 
28.03.13
08:55
(28) спасибо тогда и (7) и (1) не нужны все нормально работает