Выводить на форму реквизит через точку нормально?

1. AndrewM 10.04.21 13:19 Сейчас в теме
То, что получать реквизит через точку не хорошо, - это знают уже, наверное, многие. Но как правильно ВЫВОДИТЬ реквизит на форму, можно ли это делать через точку (см. скриншот во вложении)? Как в этом случае поведёт себя система? Нормально ли так выводить реквизиты прямо на форму? Ведь это тоже обращение через точку, которое не ok.
Нигде в статьях не нахожу разбор, можно или нельзя так.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. UtSpar 134 10.04.21 14:32 Сейчас в теме
(1) Насчет производительности не скажу, и как правильно то же, но часто тоже делаем так чтобы показать некоторые реквизиты документа основания.

одно скажу точно: удобно, ни тебе реквизит новый, ни заполнение его ни добавление.

Если при таком способе при изменении контрагента ННН меняется, невооруженным глазом не видно просадки - то почему бы и нет. работать работает!)
3. AndrewM 10.04.21 15:11 Сейчас в теме
(2) удобно-то да. Так и реквизит через точку получать тоже удобно: одна строчка кода и никакого тебе запроса) А вот что с производительностью, интересно...
4. UtSpar 134 10.04.21 15:13 Сейчас в теме
(3) Да интересно, потому что несколько лет назад у нас такой же вопрос в отделе возник(конфигурация с множеством создаваемых на основании документов), так и не нашли ответ) все работает и по сей день, а в каждом документе по 3-4 выведенных вашим способом реквизита. все работает. 100+ пользователей. Проблемы с нагрузкой много только в динамических списках с полнотекстовым поиском) там все висит)
8. Fox-trot 158 11.04.21 19:38 Сейчас в теме
(1) а что мешает отказаться от такой практики?
тут же важно понимать, что платформа будет каждый раз генерировать запросы к серверу и только
9. AndrewM 11.04.21 22:14 Сейчас в теме
(8) мешает тот факт, что это намного удобнее, чем создавать отдельные реквизиты формы, писать запрос, а потом заполнять реквизиты из запроса. Я хочу понимать, то, как я показал, будет медленнее или нет. Интересно, измерял ли это кто-нибудь уже.
10. @Fancy 12.04.21 09:05 Сейчас в теме
(8)
что мешает отказаться от такой практики?

а какой другой вариант? Если заполнять реквизит формы вручную, то будет также запрос к базе. В чем разница?
11. AndrewM 12.04.21 09:20 Сейчас в теме
(10) Если получать реквизит реквизита через точку в программном коде, платформа построит большой запрос ко всему объекту, включая все его реквизиты и все его табличные части. Поэтому в программном коде рекомендуется не обращаться через точку, а получать нужный реквизит запросом (или стандартными процедурами БСП). А вот ведёт ли себя так же платформа, если разместить реквизит реквизита через точку прямо на форме, этого я не знаю.
14. @Fancy 12.04.21 10:13 Сейчас в теме
(11) спасибо за разъяснения. Чтобы понять, как работает в реквизите, хорошо бы посмотреть профайлер. Но у меня сейчас нет такой возможности.
12. Fox-trot 158 12.04.21 09:41 Сейчас в теме
(10) заполнять нужно одним запросом-обращением к серверу, а не дергать стопицот раз
а то что удобнее программисту, не совсем удобно пользователю
тут ведь еще момент такой = программа пишется один раз, а выполняется стопицот, так неужели нельзя один раз написать нормально? что мешает? лень? приятнее на форуме голову морочить себе и народу? ахаха, тады все нормально
19. UtSpar 134 12.04.21 12:53 Сейчас в теме
(12) Ошибка, или зависание при открытии формы в программе в которой 50 пользователей и 100 документов в день это потеря 5000 секунд в день или почти полтора часа в день, есть если данные увеличить в 6 раз мы потеряем в день одного сотрудника на зависаниях)

поэтому согласен
(12)
так неужели нельзя один раз написать нормально? что мешает? лень?
20. Sashares 34 12.04.21 13:00 Сейчас в теме
(19)Да с чего вы решили, что это зависание есть?
21. UtSpar 134 12.04.21 13:01 Сейчас в теме
(20) да предположил просто и привел пример чем черевато зависание в 1 секунду.
22. Sashares 34 12.04.21 13:06 Сейчас в теме
(21)Так я про это же - если разница есть, и она существенна, то можно сделать запросом.
Если же разницы нет, то усложнять на пустом месте - условно, при выборе контрагента заполнять запросом отдельно его ИНН - ну спорно, что это даст хоть какой-то заметный прирост. Скорее будет разница на уровне погрешности.
А писать код только ради того чтобы написать код...
23. UtSpar 134 12.04.21 13:08 Сейчас в теме
(22) Да, согласен, и даже выше писал что и сами так делаем, зачем сильно заморачиваться по такой мелочи и даже не будучи уверенным действительно как же правильно.

Поэтому с вами не спорю - но вообще согласился выше с выражением в целом про "делать сразу правильно".
24. papami 55 12.04.21 15:32 Сейчас в теме
(19)
Поддерживаю.
Но, как только найдется сотрудник, который терялся на зависаниях, можно начинать искать сотрудников, которые теряются в мессенджерах, инсте и ютубе.
Это если про потерю производительного времени)
25. UtSpar 134 12.04.21 15:35 Сейчас в теме
(24) Ахахах)))) Замерял таймером на телефоне каждый раз когда я отвлекался от работы(в курилку, в уборную, налить чай, ответить в месенджерах) - два часа в день! это ужас.
29. пользователь 27.02.24 10:10
Сообщение было скрыто модератором.
...
5. DenisCh 10.04.21 15:24 Сейчас в теме
Через точку "нехорошо" получать, когда ты 100500 документов (объектов) в секунду обрабатываешь.

Не надо пытаться быть святее Папы Римского и держаться устава "яко стенки"...
Sashares; +1 Ответить
6. Alfn 59 11.04.21 16:22 Сейчас в теме
Из таких вот мелких допущений и складывается потом «ой, а чего это 100% проц нагружен?»
Есть же в бсп ЗначениеРеквизитаОбъекта(), почему не использовать?
7. AndrewM 11.04.21 19:13 Сейчас в теме
(6) есть, но вопрос в том, будет ли вариант с картинки действительно медленнее
16. Sashares 34 12.04.21 10:51 Сейчас в теме
(7)Медленнее чем что?
Если требуется вывести 1-2 связанных реквизита на форму, в шапку, а не в табличную часть, то никаких отличий в скорости вы не заметите.
17. AndrewM 12.04.21 11:18 Сейчас в теме
(16) 1 вариант - то, как я показал на скриншоте (причём в боевой задаче мне надо вот так через две точки вывести не один только ИНН, а несколько реквизитов документа-основания на форму, штуки 4-5)
2 вариант - создать под каждый выводимый реквизит документа-основания свой реквизит формы, и ПриСозданииНаСервере или ПриИзменении документа-основания собирать нужные мне реквизиты одним запросом и выводить содержимое в созданные реквизиты формы.
Какой из этих вариантов будет работать оптимальнее? Или разницы не будет?
18. Sashares 34 12.04.21 11:37 Сейчас в теме
(17)Выводить реквизиты на форму через точку - это стандартные возможности платформы.
Даже пользователь в режиме Предприятия может через Изменить форму сам добавить реквизиты, если ему чего-то не хватает.
Поэтому ИМХО, не вижу проблемы добавить пару реквизитов, там где это надо.
Если реквизитов не много, и они не в табличную часть добавлены, то обычно разницу вы не заметите.
Если реквизитов много, то лучше создать отдельные реквизиты и их заполнить.
27. UtSpar 134 12.04.21 21:55 Сейчас в теме
(18) Логично подтметили про

пользователь в режиме Предприятия может через Изменить форму сам добавить реквизит


Если так могут делать пользователи ничего страшного если для нескольких реквизитов это сделают предопределенно в форме.
13. FetisovAN 12.04.21 09:55 Сейчас в теме
(6) Вы этого пациента не убедите :)
28. UtSpar 134 12.04.21 21:56 Сейчас в теме
(13)

Да это чисто академически так неправильно может, а в реале очень даже удобно и правильно.

в комментарии (18) логично сказали что это же стандартный механимз платформы которым пользуются и пользователи.
15. Sashares 34 12.04.21 10:49 Сейчас в теме
(6)Вы вот серьезно это предлагаете для озвученного примера?
26. UtSpar 134 12.04.21 21:53 Сейчас в теме
(6) При бсп ЗначениеРеквизитаОбъекта() надо для каждого реквизита объекта создавать реквизит формы ставить его только на просмотр и заполнять при изменении или создании формы.

При 1-2 реквизитах наверное еще вреднее будет отрисовывать и заполнять реквизиты формы, но чисто предположение.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот