Имя: Пароль:
1C
1С v8
Вопрос по проектированию
0 ligatr
 
29.10.18
17:39
Возник вопрос как правильно сделать в следующей ситуации.
Есть определенный набор услуг который оказывает организация.
Набор не большой (5-6 элементов) и заранее предопределен.
Исходя из этого вроде как надо делать перечисление, чтобы из программного кода ссылать на определенный элемент перечисления. Но хотелось бы подвесить к элементам дополнительные поля (например написание в различных отчетных формах и т.д.) и возможность дополнять элементы пользователями. и получается это уже справочник.
Приоритет конечно в обращение из программного кода к определенному элементу справочника. Сейчас использую для этого - Справочники.ВидУслу.НайтиПоКоду("000001")
Как правильно сделать?
1 Valkyrie
 
29.10.18
17:41
Сделать элементы справочника предопределенными?
2 Fragster
 
гуру
29.10.18
17:41
правильно понять, зачем нужно это обращение? для определения конечного набора правил? тогда справочник, одним из реквизитов которого является перечисление. для чего-то еще? очень неплохо потыкать в типовые блоки ценообразования в УТ
3 РусКомп
 
29.10.18
17:41
(0) Предопределнные элементы справочника
4 Fragster
 
гуру
29.10.18
17:41
(1) я чую, что это неправильно здесь
5 РусКомп
 
29.10.18
17:42
(0) Подробнее лучше описать. Возможно тут речь вообще о Бизнес-процессах.
6 Джинн
 
29.10.18
17:47
(4) Я чую что задача вообще безумная :) Ну или понимание ее ТС безумное.
7 ligatr
 
29.10.18
17:48
(1) (2) Предопределенные значения справочника нужны для следующих нужд, например:
1) есть услуга "электроснабжение" ... для это услуги есть определенный набор отчетных форм с заранее настроенными полями которые в других услугах не применяется.
2) у той же услуги электроснабжение особый алгоритм расчета различных показателей ну и т.д.
8 ligatr
 
29.10.18
17:51
3) данные по показаниям счетчиков для всех услуг вводятся в одну и туже форму документа, а при помощи справочника регулируется отображения полей, макеты для печати и т.д.
9 gantonio
 
29.10.18
17:53
У меня на номенклатуре справочник виды услуг. Тоже начинал с 5 .. сейчас их штук 15. В общем справочник и никаких перечислений.
Но если конфа специальная то и такого справочниа быть не должно.
10 РусКомп
 
29.10.18
17:53
(7) Сочинять ты можешь, что угодно. Можно и перечисления а значения доп реквизитов хранить в регистре сведений.

Вопрос как это пересекается с типовыми механизмами.

Надо ли смотреть выручку, рентабельность в типовых отчетах?
11 РусКомп
 
29.10.18
17:54
(8) (7) Может просто взять конфу ТСЖ и посмотреть?
12 ligatr
 
29.10.18
17:55
(6) запросу возможно безумная, но таковы задачи, ну и желание не плодить кучу различных форм, отчетов под каждый вид улсуг.
13 ligatr
 
29.10.18
17:55
конфа в принципе работает, просто хотелось понять как правильно
14 gantonio
 
29.10.18
17:55
Вообще для услуг хватает номенклатуры, но вот далее начинаются нюансы когда надо агрегирующий признак, причем иногда не связанный с номенклатурой какой-то устойчивой связью. И тут вот помогает отдельный справочник. Но та очень тонка граница.
15 ligatr
 
29.10.18
17:58
Так как все же обратиться к предопределенному элементу справочника? Через НайтиПоКоду() или есть готовый механизм?
16 ligatr
 
29.10.18
18:00
(14) На мой взгляд у меня все же это явно не номенклатура и именно вид/тип услуг.
17 Garykom
 
гуру
29.10.18
18:02
(0) Не трогая конфу просто вынеси (сохрани) эти свои элементы справочника услуг (ссылки на них) куда то с именами для поиска.

И затем в коде просто используй самописную функцию ПолучитьУслугу("ИмяУслуги").

Если менять конфу можно то да предопределенные элементы справочника.
18 azernot
 
29.10.18
18:03
Почему не оставить как есть? Работает же.

А вообще вариантов может быть масса:
Самый простой, если это одна организация - завести 5-6 констант.

Если много организаций, и у каждой свой набор - завести регистр сведений с Измерением - "Тип услуги" (можно перечисление, можно строку) и Организация, ресурс - ВидУслуги.
Соответственно, в любой момент из регистра можно по типу получить нужный вид услуги для организации.
19 gantonio
 
29.10.18
18:03
У него есть имя. При программировании вы его будете видеть при написании кода.
Я понимаю, что это некая типизация, но хочу сказать, что если она не определена в момент проектирования, то она так и останется не конкретной, т.е. границы ее использования будут не четкие. А вот если они четкие, то практически всегда лучше использовать перечисление.
20 gantonio
 
29.10.18
18:04
Для ТСЖ я не очень понимаю зачем там лезть вне списка номенклатуры. Вы ведь не можете продать больше чем вам разрешено. У вас должен быть фиксированный справочник , с каким то перечнем расчетов. (я уже таким давно занимался)
21 Джинн
 
29.10.18
18:07
(12) > вид услуг

Вот и ответ на Ваш вопрос :)
22 Fragster
 
гуру
29.10.18
18:12
в типовых, вроде, номенклатура -> вид номенклатуры (справочник) -> тип номенклатуры (перечисление), не?
23 Fragster
 
гуру
29.10.18
18:13
хотя в БП только номенклатура -> вид есть
24 ligatr
 
29.10.18
18:15
так как у меня нетиповая, то в принципе без разницы как назвать это справочник, если делать его именно справочником, а не перечислением.
25 Сияющий в темноте
 
29.10.18
18:34
Справочник хорош тем,что в него потом можно добавить новые элементы.
Еслм услуги имеют какие то спец поля и т.п.то нужно прежде всего подумать,как этр хранится в документе,а если спецполя,только характеристики услуг,то дополнительные реквизиты вам в помощь.
перечисление имеет смысл только тогда,когда его содержимое явно определено и не прменяется с изменением бизнес процессов,например,ставки ндс фиксированы,поэтому заданы как перечисления.
типы номенклатуры тоже фиксиррваны,т.к.ничего другого быть не может.
а видов может быть много,поэтому и справочник.
предопределенные элементы при обращении как перечисления по имени
26 Ник080808
 
29.10.18
18:36
(25) "ставки ндс фиксированы" - совсем не смешно
27 unregistered
 
29.10.18
19:16
Что касается методической части вопроса, то без знания конкретной конфигурации все рассуждения - не более чем личная фантазия высказывающихся о сферическом коне в вакууме.

Что касается технической стороны вопроса (15) "Так как все же обратиться к предопределенному элементу справочника?"
Ответ: по имени, как этот элемент назван в конфигураторе.
[МенеджерСправочников].[МенеджерСправочника].[ИмяПредопределенногоЭлемента]

Например, в конфигурации есть справочник Номенклатура, в котором создан предопределенный элемент с именем ГвоздьДесятка. Тогда обратиться к нему можно будет так.

СсылкаНаЭлементГвоздь = Справочники.Номенклатура.ГвоздьДесятка;
28 Лефмихалыч
 
29.10.18
20:44
(0) надо перестать хотеть обращаться к конкретным товарам из кода
29 Ник080808
 
29.10.18
21:08
(28) +100500
30 Остап Сулейманович
 
29.10.18
21:41
(0) Я такую задачу тоже начинал на справочнике и искал по коду. Для теплосети. Осознал, что это гемор. Переделал на предопределенные. Тоже сомневался правильно или нет. Посмотрел на типовые план счетов, справочник статей расходов... И успокоился. Очень удобно в сопровождении. Это не торговля, где номенклатура может достигать сотен тысяч. Четыре...шесть услуг. Все. Причем расчет допустим "тепловая энергия" и "технические услуги" абсолютно разные. А выполнены должны быть в одном документе, где тысячи абонентов.
31 Остап Сулейманович
 
29.10.18
21:44
+ (30) Или взять для примера виды расчетов в ЗУП. Тысячи их предопределенных. Ситуация с услугами примерно та же. Те же графики подачи, снятые счетчики на госповерку (и расчет расчетным путем), температурные графики... Так почему нужно быть умнее разработчиков ЗУП-а?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший