Имя: Пароль:
1C
1С v8
Универсальное хранилище - как лучше реализовать.
,
0 mvgfirst
 
08.04.13
20:28
Есть произвольное количество обработок, выполняющих разный функционал. Хранение настроек этих обработок хотелось бы реализовать в специальном справочнике.
Т.е. каждый элемент справочника предназначен для хранения настроек одной  обработки.
У справочника есть табличная часть с двумя реквизитами
"ИмяПараметра" и "ЗначениеПараметра"

Вопрос о том какой тип назначить реквизиту "ЗначениеПараметра".
"ХранилищеЗначения" - использовать нехочу, т.к. потеряется контроль ссылочной целостности. Банально объект использованный в настройке могут удалить - и при запуске обработки может случится "казус"

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

Пока прошелся и поставил в составном типе все возможные "галочки"... но что-то мне ненравится такой способ реализации. При добавлении новых объектов в конфигураторе, нужно будет "доставить" галочки - иначе, опять же, будет ругаться.

Прошу совета, как правильно реализовать такое хранение, что бы не потерять ссылочную целостность на объекты используемые в качестве значения параметров.
1 Волшебник
 
08.04.13
22:04
ХранилищеЗнаения
при запуске обработки добавь Попытка...Исключение
2 Волшебник
 
08.04.13
22:04
(1)+ проверку на битые ссылки
3 Лефмихалыч
 
08.04.13
22:29
(0) ты изобрел типовой справочник СохраненныеНастройки
4 Defender aka LINN
 
08.04.13
22:34
(3) Нет. Типовой умеет еще и табличные части сохранять и реквизиты типа "Список значений" и дохрена чего еще.
5 zladenuw
 
08.04.13
22:38
(0) а если Хранилища настроек ? или не взлетит
6 Зойч
 
08.04.13
22:39
(3) типовой не гарантирует ссылочной целостности
7 mvgfirst
 
08.04.13
22:43
Проверки это хорошо, но хочется иметь возможность не удалить объект.
Полез на ИТС почитать о Хранилище и вычли там инжтереснуъ фразу от то м что к хранилищу нельзя обращаться из запросов. Не то что бы это было первой необходимостью но все таки отбирать запросом определенные параметры может оказаться весьма важным аспектом.
8 zladenuw
 
08.04.13
22:46
(7) тогда регистр сведения. если нужны запросы.
9 Лефмихалыч
 
08.04.13
22:49
(4) ну да, а еще там индивидуальные и общие настройки.

Автор, твое поделие уникально и аутентично, типового в нем ни чего нет, живи с этим
10 mvgfirst
 
09.04.13
10:18
(9) Я, собственно, и не утверждал что претендую на универсальность в то смысле - что этот механизм должен быть типовым.
Я хотел услышать варианты, понять один ли я обеспокоен вопросами сохранения ссылочной целостности, или и мне нужно забить на нее... и воспользоваться ХранилищемЗначения
11 mvgfirst
 
09.04.13
10:19
(8) Регистр сведений или же справочник, большой разницы не имеет... мой вопрос касается того как сделать универсальным поле для хранения значения параметра (хоть бы и в регистре)
12 mvgfirst
 
09.04.13
10:49
(3) Специально поставил себе УТ11, дабы найти там, типовой (судя по Вашим словам) справочник "СохраненныеНастройки".

Сам вот, "ковыряюсь" в УТ10.3.

Итого: имеем две достаточно "типовых" конфигурации, и ни в одной из них нет справочника "СохраненныеНастройки".

Где же на него можно взглянуть?
13 cw014
 
09.04.13
10:49
Может тебе планы видов характеристик для этого помогут?
14 tdm
 
09.04.13
10:52
(12) есть конфижка - стандартные подсистемы, там одна из них кокраз то что требуется
15 cw014
 
09.04.13
11:00
В УТ 11 есть такой справочник "ДополнительныеОтчетыИОбработки" в нем настройки все внутри хранятся
16 mvgfirst
 
09.04.13
11:27
(13) Как только прочитал рекомендацию использовать регистры сведений, признаюсь мелькнула мысль посмотреть в сторону ПланВидовХарактеристик...

Чем сейчас и займусь. Но не уверен до конца что именно он...
17 Зойч
 
09.04.13
11:32
а как ты будешь хранить данные, которые не хранятся в БД? например вид сравнения?
18 mvgfirst
 
09.04.13
11:33
Нет, с планом видов характеристик, тоже что и просто с составным типом данных. Т.е. для определения типа значения характеристики нужно указать что это будет составной тип, и опять же нужно установить флажки на все типы.... как следствие в случае последующего добавления типов данных в конфигурацию - состав нужно будет обновить иначе не все данные будут сохранены.
19 Зойч
 
09.04.13
11:35
любаяссылка есть тип
20 mvgfirst
 
09.04.13
11:35
(17) Вид сравнения это список из "Больше, Менше, Равно.... и т.п."?
Ну т.к. это просто список, и более того список простых типов днных - по ним не нужно контролировать ссылочную целостность, а значит можно использовать ХранилищеЗначенения. А такой тип данных будет одним из составных типов значения.
21 mvgfirst
 
09.04.13
11:37
(19) Я ставил у себя в составном типе данных "Любая ссылка", в результате при попытке записать в поле значение конкретного элемента справочника, получил ошибку "Неверный тип данных". Возможно я что-то не так сделал... но когда в составном типе добавил флажок напротив этого конкретного справочника - ошибка не возникала, данные сохранились.
22 Зойч
 
09.04.13
11:40
(21) 1с вообще не дает таких ошибок при записи левых данных. Просто неопределено записывается и все
23 mvgfirst
 
09.04.13
11:45
(22) Ок, сейчас прям занят воспроизводством этого сценария. Если ошибок не будет - супер! Буду использовать этот подход.
Если же ошибка будет - продолжим беседу...
24 mvgfirst
 
09.04.13
12:03
(23) Что же, признаю, поднял бучу до конца не разобравшись. Любая ссылка пригодна для использования в моих целях.

Есть конечно в моем подходе "узкие места". Например ХранилищеЗначения, УникальныйИдентификатор, Неограниченная строка и др. некоторые типы - не могут быть в составе составного типа, и видимо для них нужно будет заводить специальные поля в таблице параметров... но это уже ньюансы