|
Кто где и как хранит настройки. | ☑ | ||
---|---|---|---|---|
0
Kuzen
27.06.11
✎
13:08
|
В процессе доработки возникает необходимость в каких то настройках, большинство прогов начинает при этом активно плодить в коде что то вроде НайтиПоКоду("000001") и.т.д.
Как думаете оптимальнее решить эту проблему: создать справочник настройки и в него пихать предопределенные элементы с реквизитами или вообще один элемент с кучей реквизитов? Или через регистр сведений или через план видов характеристик? |
|||
1
mikecool
27.06.11
✎
13:08
|
свой пвх и рс
|
|||
2
poligraf
27.06.11
✎
13:09
|
(0) смотря какие настройки...
Я в случаях НайтиПоКоду() - через предопределенные элементы спрвочника. |
|||
3
bodri
27.06.11
✎
13:09
|
В регистре неплохо
|
|||
4
Господин ПЖ
27.06.11
✎
13:10
|
>НайтиПоКоду("000001")
по яйкам с разбегу... от ситуации зависит. пока в ПВХ все сидит... и тип есть и значение задать можно предопределенное |
|||
5
ice777
27.06.11
✎
13:14
|
когда мне надо ТЗ настроек (например список элементов справочника), я их кладу в константу типа хранилища значения.
|
|||
6
ice777
27.06.11
✎
13:15
|
+(5) и не надо потом этого быдлячего НайтиПоКоду.
|
|||
7
Stepa86
27.06.11
✎
13:16
|
От настройки зависит
Можно на константах Можно на РС Можно на РС + ПВХ Можно на Справочнике Можно как предопределенные Можно создать обработку в которой есть нужные экспортные параметры, инициализировать их волшебными значениями и обращаться к ней Можно во внешнем файле, аля *.ini Можно выделить общий модуль, в котором будут методы доступа ... |
|||
8
Господин ПЖ
27.06.11
✎
13:16
|
не надо... надо потом сношаться и проверять ссылки на битость... так что не далеко уполз от "быдлячего"...
|
|||
9
ice777
27.06.11
✎
13:22
|
(8) настройки обычно не настолько велики.
а битость.. гм, не сталкиваюсь так часто, чтобы была проблема ) |
|||
10
ice777
27.06.11
✎
13:23
|
(7) да где хочешь, только чтоб я НайтиПоКоду не видел ;)
|
|||
11
Stepa86
27.06.11
✎
13:25
|
(10) когда в качестве настроек юзаю справочник, то идентификатором выступает как раз код и обращение инкапсулировано в какой нить метод. Аналог реестра виндового получается
|
|||
12
ice777
27.06.11
✎
13:27
|
(11) брр. не надо кодов! не надо.
лучше составного типа уже сделать, но хранить - ссылки. |
|||
13
Stepa86
27.06.11
✎
13:30
|
(12) не боись, я овладел кунгфу настолько, что знаю когда можно юзать НайтиПоКоду и НайтиПоНаименованию, а когда нельзя =)
|
|||
14
be-may
27.06.11
✎
13:31
|
:)
(0) буквально только что так написала.. пойду повешусь) |
|||
15
mikecool
27.06.11
✎
13:36
|
(14) не надо, ты нам еще пригодишься ;)
|
|||
16
be-may
27.06.11
✎
13:57
|
(15) :) /*вынимая голову из петли и слезая с табуретки..*/...
Мне кажется, что если это разовая акция, то ничего страшного нет в таком вот "костыле", а если входит в систему, настройки разрастаются, то надо что-то придумывать. Лично я обычно обхожусь константами, но я в основном на 7.7. пишу. |
|||
17
Stepa86
27.06.11
✎
14:05
|
(16) >>Мне кажется, что если это разовая акция, то ничего страшного нет в таком вот "костыле"
Тут включается теория разбитых окон... http://lurkmore.ru/Теория_разбитых_окон |
|||
18
artems
27.06.11
✎
14:13
|
У нас дофига всяких настроек используется...
Сделали 2 периодических регистра, один для значений для предприятия в целом, а второй для значений конкретных организаций. Очень удобно ) |
|||
19
Reaper_1c
27.06.11
✎
14:14
|
(1) +1
|
|||
20
kosts
27.06.11
✎
14:15
|
+ к (7)
Новый справочник с реквизитом типа "значение" и с предопределенными элементами на все случаи. в коде получается: в = Справочник.ПредопределенныеЭлементы.ВидМоегоДоговора; + можно использовать в запросах. Иногда в коде использую метод получить ссылку по уникальному идентификатору. Это хуже чем "Справочник.ПредопределенныеЭлементы", но лучше чем найти по коду и наименованию. |
|||
21
kosts
27.06.11
✎
14:16
|
+ к (20)
в = Справочник.ПредопределенныеЭлементы.ВидМоегоДоговора.Значение; |
|||
22
Fragster
гуру
27.06.11
✎
14:19
|
только что написал в разовой обработке заполнения инвентаризации:
Построитель.Параметры.Вставить("Склад",Объект.Склад); СписокНоменклатуры = Новый СписокЗначений; СписокНоменклатуры.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("c303acd2-3536-11dc-bed2-000423ccf644"))); СписокНоменклатуры.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("795a7f2e-66f7-11de-b97f-000423ccf644"))); СписокНоменклатуры.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("df9dee11-5e8c-11e0-b47b-000423ccf644"))); СписокНоменклатуры.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("74711c6e-0b52-11df-91da-000423ccf644"))); СписокНоменклатуры.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("8f80dd98-5a97-11e0-559d-003048de3b5e"))); СписокНоменклатуры.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("2f21ce4c-7c9e-11e0-b47b-000423ccf644"))); СписокНоменклатуры.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("75076446-dffe-11df-b69b-000423ccf644"))); СписокНоменклатуры.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("c303acd1-3536-11dc-bed2-000423ccf644"))); СписокНоменклатуры.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("6d55d231-167d-11dd-b618-000423cc82b2"))); СписокНоменклатуры.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("39cb2f20-59bc-11df-8832-000423ccf644"))); СписокНоменклатуры.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("39cb2f22-59bc-11df-8832-000423ccf644"))); СписокНоменклатуры.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("39cb2f24-59bc-11df-8832-000423ccf644"))); //КонецЦикла; ОтборПоНоменклатуре = Построитель.Отбор.Добавить("Номенклатура"); ОтборПоНоменклатуре.ВидСравнения = ВидСравнения.ВСписке; ОтборПоНоменклатуре.Использование = Истина; ОтборПоНоменклатуре.Значение = СписокНоменклатуры; Теперь я умру? |
|||
23
Stepa86
27.06.11
✎
14:33
|
(22) (4) уже разбегается
|
|||
24
Kuzen
27.06.11
✎
16:49
|
А вот если предопределенные элементы юзать, как кошернее к ним обращаться через запрос или через точку?
|
|||
25
artbear
27.06.11
✎
17:01
|
(24) смотря что дальше требуется.
если просто подставить ссылку в документ или РС, то пишешь через точку типа Справочник.Спр1.Главное а если нужно получать данные из этого элемента, то, как правило, лучше через запрос. |
|||
26
artbear
27.06.11
✎
17:02
|
(22) Умрешь, если это делал вручную, т.е. все ИД находил вручную.
а вот если через какой-нибудь генератор кода по запросу и его параметрам, тогда твоя карма вырастет :) |
|||
27
Лефмихалыч
27.06.11
✎
17:03
|
(0) надысь добавили в конфу справочник ИменованныеЗначения, состоящий целиком из предопределенных элементов с атрибутом Значение (тип - любаяСсылка). Но это продиктовано в основном убожеством конфы, нежели реальной необходимостью.
|
|||
28
Reaper_1c
27.06.11
✎
18:23
|
(24) Через функцию общего модуля с повторным использованием возвращаемых значений на время сеанса. Ты ей имя элемента, а она тебе ссылку.
|
|||
29
AlexNew
27.06.11
✎
18:48
|
(22)Ты думаешь тут нужны комментарии?
|
|||
30
Fragster
гуру
27.06.11
✎
19:33
|
(26) СКД с внешней функцией получения УИДа. табличку потом тупо скопипастил в код обработки
|
|||
31
Fragster
гуру
27.06.11
✎
19:35
|
(29) частичная инвентаризация, от введения доп. свойства, чтобы по нему заполнять - отказались (потому что разовая операция). а настройки должны быть вбиты - потому что при ручном вводе в список отбора 12 позиций возможны косяки (юзеры криворукие, да) и потому что настройки должны быть одинаковые в 60+ узлах.
|
|||
32
zzerro
27.06.11
✎
21:48
|
Я для таких случаев завел РС
Идентификатор - строковый произвольный идентификатор (измерение) Значение - сохраняемое значение, произвольного типа (ресурс) И написал одну процедурку по получению значения по идентификатору. Собственно и все. Пользуюсь, доволен. Удобно, когда нужно выделить какие-нибудь элементы справочников или запомнить какую-либо постоянную величину. Собственно получилились дополнительные произвольные константы. |
|||
33
Snovy
27.06.11
✎
21:55
|
(32) Почти точно также. Только для удобства работы - идентификаторы прошиты через макет, тип значения - там же. Удобно для универсальной формы редактирования этих настроек. Но это общие настройки (без привязки к пользователям), кстати которые еще и кэшируются. Для пользовательских настроек обычно используется встроенный в типовые регистр сведений, не помню - как тае его зовут - Сохраненные настройки?
|
|||
34
zzerro
27.06.11
✎
21:58
|
(33) Ага, я его тоже использую для сохранения пользовательских настроек в внешних отчетах и обработках, как индивидуальных, так и общих.
|
|||
35
ice777
27.06.11
✎
22:17
|
(32) выбор РС - единственно правильное. Это годится для периодических констант. А есть константы почти навсегда - например, список исключительных начислений для расчетов, которые не были предопределены и делать предопределенными их поздно. тогда логичней совать эти данные в константы.
|
|||
36
Stepa86
28.06.11
✎
08:01
|
(31) хоть бы в метод инкапсулировал такое сомнительное решение. Там и реализацию можно было б сменить при необходимости легче
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |