Вход | Регистрация



НайтиПоИдентификатору() - правильно ли?

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

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

20 видов оплаты, и если на каждый вид оплаты выполнять ПолучитьСсылку() под свое предназначение.. И все-таки за такими конструкция возникает дополнительная ответственность у программиста, если изменится бизнес-правило.
   Tonik992
 
49 - 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) от той проблемы которую ты описал расширение не спасет
   ptiz
 
54 - 02.11.18 - 12:58
(52) "кроме корректировки ОбщихМодулей.." - почему?


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует