|
Структура | ☑ | ||
---|---|---|---|---|
0
mirror1982
02.04.13
✎
00:13
|
Описал структуру. Как сохранить ее в справочник, один из его реквизитов называется "сохраненныеСтруктуры". Какой тип должен быть у этого реквизита?
|
|||
1
Птица
02.04.13
✎
00:17
|
Похоже, двоичныеДанные. Но насколько это оправдано: ссылочная целостность таких реквизитов поддерживаться не будет.
в смысле, если в структур не примитивные типы, а ссылки |
|||
2
miron25
02.04.13
✎
00:17
|
Сохраняй в хранилищеЗначений...
|
|||
3
Lys
02.04.13
✎
00:19
|
(0) Как это сделать - уже написали.
Вот только непонятно, зачем... |
|||
4
mirror1982
02.04.13
✎
00:27
|
(3) сохраняю настройки СКД.
|
|||
5
mirror1982
02.04.13
✎
00:32
|
я сделал хранилище значений записал в справочник структуру моей настройки. При считывании из справочника не могу ее расшифровать.
|
|||
6
miron25
02.04.13
✎
00:45
|
записываемвспр=Новый ХранилищеЗначения(твояструктура, <АлгоритмСжатияДанных>).
твояструктура=записываемспр.получить() не? |
|||
7
mirror1982
02.04.13
✎
00:55
|
Сохранение:
СтруктураНастройки = Новый Структура; СтруктураНастройки.Вставить("ИмяОбъекта",Строка(ЭтотОбъект);СтруктураНастройки.Вставить("НаименованиеНастройки",Неопределено); СтруктураНастройки.Вставить("ИспользоватьПриОткрытии",Ложь); СтруктураНастройки.Вставить("СохранятьАвтоматически", Ложь); СтруктураНастройки.Вставить("Пользователь", глПользователь); СохраненнаяНастройка=Новый ХранилищеЗначения(КомпоновщикНастроек.ПолучитьНастройки()); СтруктураНастройки.Вставить("СохраненнаяНастройка", СохраненнаяНастройка); МояНастройка=Справочники.НастройкиОтчетов.СоздатьЭлемент(); МояНастройка.Наименование=Строка(ЭтотОбъект.Метаданные().СинМояНастройка.Настройка=СтруктураНастройки; МояНастройка.Записать(); |
|||
8
mirror1982
02.04.13
✎
00:56
|
Как теперь получить эту настройку из справочника?
|
|||
9
miron25
02.04.13
✎
01:26
|
Я вообщето не одинесник..Но вижу краем глаза,что фигня написана.
СтруктураНастройки = Новый Структура; СтруктураНастройки.Вставить("ИмяОбъекта",Строка(ЭтотОбъект);СтруктураНастройки.Вставить("НаименованиеНастройки",Неопределено); СтруктураНастройки.Вставить("ИспользоватьПриОткрытии",Ложь); СтруктураНастройки.Вставить("СохранятьАвтоматически", Ложь); СтруктураНастройки.Вставить("Пользователь", глПользователь); СохраненнаяНастройка=Новый ХранилищеЗначения (СтруктураНастройки); |
|||
10
miron25
02.04.13
✎
01:28
|
МояНастройка=Справочники.НастройкиОтчетов.СоздатьЭлемент();
МояНастройка.Наименование=СохраненнаяНастройка; Реквизит Справочники.НастройкиОтчетов.Наименование имеет тип хранилищезначений; |
|||
11
mirror1982
02.04.13
✎
01:29
|
Я просто неправильно скопировал ко, вот он целиком (сохранение):
Если мТекущаяНастройка<>Неопределено Тогда СтруктураНастройки=мТекущаяНастройка; Иначе СтруктураНастройки = Новый Структура; СтруктураНастройки.Вставить("ИмяОбъекта", Строка(ЭтотОбъект)); СтруктураНастройки.Вставить("НаименованиеНастройки", Неопределено); СтруктураНастройки.Вставить("ИспользоватьПриОткрытии", Ложь); СтруктураНастройки.Вставить("СохранятьАвтоматически", Ложь); КонецЕсли; СтруктураНастройки.Вставить("Пользователь", глПользователь); СохраненнаяНастройка=Новый ХранилищеЗначения(КомпоновщикНастроек.ПолучитьНастройки()); СтруктураНастройки.Вставить("СохраненнаяНастройка", СохраненнаяНастройка); МояНастройка=Справочники.НастройкиОтчетов.СоздатьЭлемент(); МояНастройка.Наименование=Строка(ЭтотОбъект.Метаданные().Синоним); СтрокаДоступа=МояНастройка.Доступ.Добавить(); СтрокаДоступа.Пользователь=глПользователь; СтрокаНастройки=МояНастройка.Настройки.Добавить(); СтрокаНастройки.Наименование="Основная настройка"; СтрокаНастройки.Настройка=СтруктураНастройки; МояНастройка.Записать(); мТекущаяНастройка=СтруктураНастройки; |
|||
12
miron25
02.04.13
✎
01:30
|
обратно получить
СохраненнаяНастройка=этотобъект.наименование; СтруктураНастройки=СохраненнаяНастройка.получить(); |
|||
13
mirror1982
02.04.13
✎
01:31
|
(12) Исходя из (11) как получить настройку?
|
|||
14
miron25
02.04.13
✎
01:34
|
МояНастройка.Наименование=Строка наименование --тип реквизита хранилищезначений
|
|||
15
miron25
02.04.13
✎
01:35
|
СохраненнаяНастройка=Новый ХранилищеЗначения(КомпоновщикНастроек.ПолучитьНастройки());
СтруктураНастройки.Вставить("СохраненнаяНастройка", СохраненнаяНастройка); зачем хранилище пихаешь в структуру? |
|||
16
miron25
02.04.13
✎
01:36
|
то есть изначально не понимаешь как сохранять
|
|||
17
miron25
02.04.13
✎
01:37
|
В хранилище сохраняешь структуру
и записываешь в реквизит номенклатура с типом хранилищезначений..а не строковой тип |
|||
18
miron25
02.04.13
✎
01:40
|
КомпоновщикНастроек.ПолучитьНастройки() а это где такое взяли?
может так КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки()? |
|||
19
Torquader
02.04.13
✎
01:51
|
Вопрос, конечно, риторический - но зачем структуру хранить в справочнике ?
|
|||
20
mirror1982
02.04.13
✎
01:53
|
Разобрался, всем спасибо!
|
|||
21
miron25
02.04.13
✎
01:57
|
(19)Ну наверно не дочитал,что существует Хранилища настроек..
|
|||
22
miron25
02.04.13
✎
01:58
|
а точнее ХранилищеПользовательскихНастроекОтчетов
|
|||
23
Torquader
02.04.13
✎
02:40
|
(21) Ну вот я об этом тоже подумал, хотя - смотрел книгу о программировании под восьмёрку - там этот вопрос не раскрыт.
Мне просто непонятно, как потом будет выбираться настройка - нужно же будет найти элемент справочника - хотя, если это справочник "Пользователи", то в этом что-то есть. P.S. на досуге писал перенос пользователей из одной базы в другую, так потом оказалось, что вся информация о пользователях живёт в одноимённом справочнике - вот это была засада - пользователь с паролем входит, а его данных - нету. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |