Имя: Пароль:
1C
 
НайтиПоИдентификатору() - правильно ли?
,
0 Tonik992
 
02.11.18
11:35
Правильно ли с методологической точки зрения в конфигурации использовать НайтиПоИдентификатору(УИД) для подстановки неких "константных" значений в алгоритмах (склад по умолчанию, учетная запись эл.почты для рассылки и т.д.)? Чем это плохо?
Вместо, например, использования объекта метаданных Константа или же РегистрСведений.
Не первый раз замечаю применение такого подхода в рабочих базах.. Своего рода обход запрета на НайтиПоНаименованию().
1 Cool_Profi
 
02.11.18
11:40
Лучше и предопределённые значения, или РС
2 Джинн
 
02.11.18
11:45
(0) В крайней военной ситуации допустимо. В качестве исключения, если есть гарантия, что элемент не удалят. И если другие способы невозможны.
3 jsmith82
 
02.11.18
11:46
а причём тут уид? это же метод для работы с коллекциями форм
4 Tonik992
 
02.11.18
11:47
(3)  Я ошибся.
ПолучитьСсылку()
5 Tonik992
 
02.11.18
11:48
(2) А можете пример тех случаев, когда "другие способы невозможны" ?
6 jsmith82
 
02.11.18
11:50
(5) например, нельзя курочить конфигурацию
7 RomanYS
 
02.11.18
11:50
(5) Например, нельзя менять конфигурацию
8 PR
 
02.11.18
11:57
(0) Нет
Плохо всем
Логика алгоритма становится непонятна, что-то из серии "Некогда объяснять, суй помидоры в жопу"
Завтра элемент заменили, опять же все перестало работать
Нужно заменить на другой элемент, вызывайте программиста
Чтобы понять, что отвалится, когда ты меняешь данные в базе, например переходишь на новую версию перегрузкой данных, нужно вообще отдельный квест пройти
9 PR
 
02.11.18
11:58
(6), (7) Что, даже нет никакого регистра каких-нить допсведений?
10 Джинн
 
02.11.18
12:00
(8) И что, предопределенный элемент спасет в такой ситуации? А они массово применяются везде.
11 PR
 
02.11.18
12:00
На самый крайняк, когда вообще труба, нужно не писать НайтиПоИдентификатору(УИД), а делать функцию типа ПолучитьОсновнойСклад(), а в ней уже писать НайтиПоИдентификатору(УИД), так хоть будет понятно, про что речь
12 ДНН
 
02.11.18
12:00
(0) Если нельзя изменять конфигурацию, то правильно.
13 leonidk
 
02.11.18
12:01
(0) Неправильно, если планируется многократное использование в течении длительного времени.
14 PR
 
02.11.18
12:01
(10) Это точно мне вопрос?
15 PR
 
02.11.18
12:02
(12) Нельзя менять конфигурацию?
Срочно! начинаем говнокодить!
16 jsmith82
 
02.11.18
12:04
(15) +100500
17 jsmith82
 
02.11.18
12:04
как правило, поддержка закрытой конфигурации обходится дороже, но клиенты этого не могут понять
ой. нам нельзя ничего менять
18 ДНН
 
02.11.18
12:05
(15) Почему это говнокод? А как лучше? Поиск по наименованию?
Даже когда можно изменять конфигурацию есть смысл поиска по УИДу. Например, у объекта есть куча дополнительных реквизитов. Чтобы их использовать в коде, правильней выполнять поиск по УИДу, а не создавать кучу констант.
19 PR
 
02.11.18
12:07
(18) Я понимаю, что это сложно, практически нереально, но все-таки попробуй прочитать всю ветку, а не последние два поста, там как бы есть ответ на твой вопрос
20 Джинн
 
02.11.18
12:07
(15) Если заказчик ставит такое условие, то посылать его на фиг? Или даже если не ставит, но задача какая-нибудь из разряда "одноразовых"? Я сам перфекционист, но все же признаю возможность исключений.
21 Tonik992
 
02.11.18
12:09
(12) Обратная сторона медали же тоже есть такого подхода?
Но я пока это не вижу, вот в (8) описал проблемы возможные. И я думаю, что неустойчивость кода возникает + увеличивает время на расследование проблемы, ну чисто гипотетически если вдруг на этом месте она будет..
(11) Одназначно -) ощущение, что ты уже не одну собаку на этом съел.
22 PR
 
02.11.18
12:09
(20) Ставит условие говнокодить? o_O

Одноразовая задача?
Срочно! начинаем говнокодить!
23 PR
 
02.11.18
12:10
(21) 18 лет программирую
24 1Сергей
 
02.11.18
12:12
Запрет на снятие с поддержки - он в головах одинесниках только. Заказчику глубоко нас..наплевать что и как там сделано, лишь бы работало
25 Tonik992
 
02.11.18
12:12
(20) А чем мотивируют такое условие?
26 jsmith82
 
02.11.18
12:12
(25) чтобы обновляться без программистов
27 Tonik992
 
02.11.18
12:14
(26) Так ведь ПолучитьСсылку() - это уже влез в код. Без программистов никак уже.
28 PR
 
02.11.18
12:15
(24) Рукалицо
Запрет как раз в голове заказчика, одинеснику пофиг
А заказчик считает, что если включили возможность менять, сразу все затопило говнокодом с конфу обновлять стало если и возможно, то за безумные деньги
Чем больше знакомлюсь с отдельными представителями профессии, тем больше соглашаюсь с такими заказчиками
29 Tonik992
 
02.11.18
12:15
(26) Хотя если это внешняя обработка...
30 НоваяВолна
 
02.11.18
12:17
(15) а расширения не предлагать?
31 PR
 
02.11.18
12:18
(30) Ну почему же, можно предлагать, особенно на свежих-то конфах
32 ptiz
 
02.11.18
12:19
(30) А вот интересно, если добавить расширение со "справочником констант", то как юзерам дать доступ к этому справочнику? Захватывать роли в расширение? Или добавлять свою роль и иметь гемор с обновлением профилей доступа? Или работать с этими объектами только под полными правами?
33 PR
 
02.11.18
12:21
(32) Конечно свою, без всякого геморроя
Но вообще обычно такие вещи редактируются только под полными правами, а программно читаются в привилегированном режиме без всяких прав
34 НоваяВолна
 
02.11.18
12:23
(32) с константами проблематично, но если очень хочется, то можно создать список констант в расширении и брать их оттуда
35 jsmith82
 
02.11.18
12:24
до сих пор были проблемы с расширениями данных
режим совместимости..
36 Вафель
 
02.11.18
12:25
тогду уж лучше предопределенный создать и ему уид назначить
37 ptiz
 
02.11.18
12:28
(33) Новая роль "без всякого геморроя" и последние типовые - несовместимые вещи :)
38 PR
 
02.11.18
12:29
(37) Ну, кому-то и ложкой в рот попасть, когда суп ешь, тяжело
39 ptiz
 
02.11.18
12:30
(34) "создать список констант в расширении и брать их оттуда" - про это и речь, этот список можно создать в виде нового объекта метаданных, но к нему надо дать всем доступ на чтение.
Как этот доступ делается? Я с расширениями пока не работал, поэтому интересуюсь.
40 НоваяВолна
 
02.11.18
12:31
(36) ходили, знаем.... создали в УТ свои предопределенные виды оплаты .... В через месяц пришлось менять им коды во всех 20 магазинах, потому как в новом релизе 1С ввела еще несколько предопределенных видов оплат
41 НоваяВолна
 
02.11.18
12:34
(39) Методы разные. Можно и роли создать в расширении, которые дают доступ к определенному набору констант. По идее в расширении все равно роли потребуются, если это конечно не мелкая дописка к основной
42 Вафель
 
02.11.18
12:36
(40) вы доработки не префиксируете?
43 Tonik992
 
02.11.18
12:39
(40) Че-то я малость не понял.
Как новые предопределенные виды оплаты повлияли на УИДы имеющихся?
44 НоваяВолна
 
02.11.18
12:39
(42) есть смысл? вообще сейчас ведем все доработки в расширениях, но что бы, то было
45 dmt
 
02.11.18
12:39
(42) На фикси сначала лень и незачем, а потом (40)
46 НоваяВолна
 
02.11.18
12:42
(43) не в уид дело ... там ВПФ-ки подхватывали эти виды оплаты по коду
(45) не мной это было сделано. Наоборот я все доработки до меня сделанные вынес в расширения, чтобы дальше гемора не было
47 НоваяВолна
 
02.11.18
12:46
(46)+  Единственное с чем не смог справиться - это с правильной печатью чеков на фискальнике... Пришлось ковырять ОбщийМодуль..... потому как на эту проблему 1С забило... хоть проблема висит ещё с начала года. Релиз за релизом выходит и баг тот же
48 Tonik992
 
02.11.18
12:47
(46) все равно не понимаю, ведь они предопределенные - зачем их искать по коду? -)
Вот, получается в данном случае ПолучитьСсылку() выглядит более устойчивым вариантом в сравнении с НайтиПоКоду()

20 видов оплаты, и если на каждый вид оплаты выполнять ПолучитьСсылку() под свое предназначение.. И все-таки за такими конструкция возникает дополнительная ответственность у программиста, если изменится бизнес-правило.
49 Tonik992
 
02.11.18
12:52
(23) Поделись опытом.. Есть подобные проблемы в других языках программирования? Там наверное похлеще все, т.к. больше места для фантазии с кодом..

А если сопоставить временные затраты на такой маленький "говнокодик" с трудозатратами на полноценную разработку (через расширение, роли, константы/ р/с) - окупится ли это? Ну возникнет раз в год ошибка, поправится за часик другой...
50 Вафель
 
02.11.18
12:52
(46) расширение никак не спасает
51 НоваяВолна
 
02.11.18
12:54
(48) Непонятное - понять сложно. Сам не понял смысла в работе предыдущего программиста. Вроде сильного говнокода нет, но некоторые моменты настораживают до сих пор. К примеру потерял два рабочих дня на изменение ВПФ для печати трудовых договоров. У нас решили внести изменения всем работникам и соответственно пакетно их распечатать. Вроде просто переделать ту ВПФ... а на самом деле... Там несколько разных макетов, размером с хороший рулон бумаги, и области макетов выводятся по разным условиям. При этом надо учитывать все кадровые перемещения, изменение должности и оклада, да и много чего ещё.
52 НоваяВолна
 
02.11.18
12:56
(50) пока что проблем с расширениями у меня не было.... Конечно не так просто, но можно практически всё, кроме корректировки ОбщихМодулей..
53 Вафель
 
02.11.18
12:57
(52) от той проблемы которую ты описал расширение не спасет
54 ptiz
 
02.11.18
12:58
(52) "кроме корректировки ОбщихМодулей.." - почему?
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший