Имя: Пароль:
1C
1С v8
Создание реквизита типа ХранилищеЗначений
0 DmitriyMaxion
 
20.09.13
16:37
Нужно создать реквизит в форме, типа хранилищеЗначений, не пойму как это сделать, помогите пожалуйста.
1 Лефмихалыч
 
20.09.13
16:38
надос ебя как-то заставить
2 Sabbath
 
20.09.13
16:39
(0) Тип значения - произвольный?
3 DmitriyMaxion
 
20.09.13
16:39
Нет в списке выбора, варианта ХранилищеЗначений....
4 Базис
 
naïve
20.09.13
16:41
Я тут Газельку доски 6000*50*150 разгрузил вдвоём - потом аж бежал к конфигуратору, только руки дрожали. Кирпич тоже мотивирует, но не так - дождя не боишься, не спешишь.
5 banco
 
20.09.13
16:41
(0) а что потом собираешься делать с этим реквизитом на форме?
6 almar
 
20.09.13
16:41
(0) На форме Хранилище разместить нельзя
7 DmitriyMaxion
 
20.09.13
16:43
Мне нужно сохранять туда значение, чтобы потом если что подгружать
8 Лефмихалыч
 
20.09.13
16:44
а зачем, кстати, он в реквизитах формы-то, если с данными не связан?
мсье не в курсе про то, что есть в языке переменные?
9 Defender aka LINN
 
20.09.13
16:45
(7) А, типа, если это будет не реквизит формы - то всему алгоритму хана?
10 Serginio1
 
20.09.13
16:46
Ну если хочется можешь через строку
Стр=XmlСтрока(Новый ХранилищеЗначения(Стр,Сжатие));
        
        
        СтрОриг=XMLЗначение(Тип("ХранилищеЗначения"), Стр).Получить();
11 DmitriyMaxion
 
20.09.13
16:48
Может быть я не так выразился...

Пользователь вводит определенные данные, чтобы он их постоянно не вводил, а один раз ввел и сохранил эти значения, потом эти значения восстанавливал.

А эти значения у меня хранятся в структуре. Вот и хотел структуру передавать в хранилище значения.
12 Лефмихалыч
 
20.09.13
16:49
/me живо представил себе пользователя, который в форму двоичные данные вводит
13 Defender aka LINN
 
20.09.13
16:50
(11) Cool story, bro. А при чем тут (0)?
14 DmitriyMaxion
 
20.09.13
16:55
Всмысле?
15 Defender aka LINN
 
20.09.13
16:56
(14) Ну, в прямом. Что тебе даст хранилище значений?
16 DmitriyMaxion
 
20.09.13
16:57
Как я могу хранить структуру, чтобы после закрытия формы мог ее восстановить?
17 Лефмихалыч
 
20.09.13
16:58
facepalm
18 Defender aka LINN
 
20.09.13
16:59
(16) Флаг "сохранять настройки" не предлагать?
19 DmitriyMaxion
 
20.09.13
16:59
что?
20 Лефмихалыч
 
20.09.13
17:00
(18) говори громче уже, чо ты шепчешь там? ВИдишь - человек не слышит
21 DmitriyMaxion
 
20.09.13
17:01
Я так и делаю, но после завершения сессии нечего восстанавливать...
22 IKSparrow
 
20.09.13
17:18
(21) УФ?
Реквизит делаешь не на форме. А в документе (ну или какой у тебя там объект).
Формируешь структуру и пишешь её в хранилище.
При открытии документа, читаешь из хранилища.
23 IKSparrow
 
20.09.13
17:19
(21) Работа с ХЗ проста до безобразия. Прочитать, записать, сжать. И вроде что-то там ещё. В синтаксис-помощнике всё есть.
24 IKSparrow
 
20.09.13
17:21
(21)

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Если ЭтоНовый() Тогда
        ВывестиМакет(ТД);
    Иначе
        ПолучитьМакет();
    КонецЕсли;
КонецПроцедуры


&НаСервере
Функция ЭтоНовый()
    Возврат НЕ ЗначениеЗаполнено(Объект.Ссылка);
КонецФункции

&НаСервере
Процедура ВывестиМакет(ТД)
    Макет = Документы.ЗаявлениеОРегистрацииККТ.ПолучитьМакет("Макет");
    ТД.Вывести(Макет);
КонецПроцедуры

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

&НаСервере
Процедура СохранитьМакет(ТД)
    РеквизитыОбъекта = РеквизитФормыВЗначение("Объект");
    ТД = РеквизитФормыВЗначение("Объект.ХранилищеТД");
    РеквизитыОбъекта.ХранилищеТД = Новый ХранилищеЗначения(ТД);
    ЗначениеВРеквизитФормы(РеквизитыОбъекта,"Объект");
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    ТекущийОбъект.ХранилищеТД = Новый ХранилищеЗначения(ТД);
КонецПроцедуры
25 DmitriyMaxion
 
20.09.13
17:38
Спасибо, разобрался! =)