Насколько правильно Процедуры 8.2

1. KonecEsli 1 06.09.21 20:01 Сейчас в теме
Автор кода слишком умен или слишком глуп ?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. lmnlmn 69 06.09.21 20:22 Сейчас в теме
(1) Чтоб сделать умозаключение надо знать какую задачу автор решал.
3. user856012 13 06.09.21 21:36 Сейчас в теме
(2)
надо знать какую задачу автор решал
Можно угадать по крайней мере часть задачи: обеспечить в будущем гарантированную выгрузку адреса в XML еще на этапе его ввода.
4. lmnlmn 69 06.09.21 23:24 Сейчас в теме
(3) Не факт что цель такова, но видно намерение не пропустить "мусор" на этапе ручного ввода.
13. Sashares 34 07.09.21 16:08 Сейчас в теме
(1)Автор кода соблюдает стандарты разработки по которым у каждого элемента должен быть свой обработчик события.
5. KonecEsli 1 07.09.21 05:38 Сейчас в теме
Отфильтровать мусор на этапе создания документа при выгрузке из сайта. Но немного не пойму необходимость написания пяти процедур вместо одной.
6. comptr 31 07.09.21 06:44 Сейчас в теме
(5) Внутри этой "одной" процедуры будет либо куча "ИначеЕсли" для анализа того, какой элемент изменился, либо будут каждый раз очищаться от мусора все реквизиты, хоть и изменился один. Можно ещё получать имя изменённого реквизита из имени элемента, но надо быть уверенным, что правило именования элементов соблюдено для всех реквизитов.
7. KonecEsli 1 07.09.21 07:00 Сейчас в теме
(6) Значит, все-таки, как исполнено на скрине - оптимальнее.... Правильно понимаю ?
9. tolyan_ekb 104 07.09.21 12:06 Сейчас в теме
(7)Примера своего варианта кода не увидел. Надо написать свой вариант и сравнить с текущим по параметрам понятность, удобство сопровождения, количество строк кода и т.д.
Если свой код будет лучше, то произвести рефакторинг.
8. SlavaKron 07.09.21 07:16 Сейчас в теме
(6) Если мне не изменяет память, в обычных формах значение можно получить прямо из элемента.
DJ_Codebase; andy_zhav; vv2; +3 Ответить
11. DJ_Codebase 07.09.21 14:23 Сейчас в теме
Навесить на все эти 5 элементов один общий обработчик ЭлементПриИзменении(Элемент)
И в этом обработчике:
Элемент.Значение = УдалитьНедопустимыеСимволыXMLиКавычки(Элемент.Значение);
12. Sashares 34 07.09.21 16:07 Сейчас в теме
(11)Фу так делать.
Это противоречит стандартам.
У каждого элемента должен быть свой обработчик события.
14. DJ_Codebase 07.09.21 16:12 Сейчас в теме
(12) с чего это вдруг? однотипные операции выполняются. а по "стандартам" - это на скрине. красиво?
З.Ы. тут не стандартами надо пользоваться, а здравым смыслом
15. Sashares 34 07.09.21 16:46 Сейчас в теме
(14)Дело не в красоте, красота это субъективно.
Стандарты это соглашение между разработчиками по написанию кода, которые надо соблюдать, чтобы всем было хорошо, и не приходилось гадать, что же автор хотел этим сказать.
https://its.1c.ru/db/v8std#content:455:hdoc
Прикрепленные файлы:
KonecEsli; +1 Ответить
16. KonecEsli 1 07.09.21 17:28 Сейчас в теме
17. DJ_Codebase 07.09.21 17:50 Сейчас в теме
(15) Я всегда стараюсь придерживаться стандартов, если они не противоречат здравому смыслу. Тем более, что не все разработчики типовых придерживаются своих же стандартов. И мне интересно, сколько бы секунд кому то пришлось бы гадать в коде с этим некошерным подходом?
18. Sashares 34 07.09.21 17:56 Сейчас в теме
(17)
Я всегда стараюсь придерживаться стандартов, если они не противоречат здравому смыслу.

Аналогично. Но в данном случае считаю стандарт полезным.

Самый простой пример, почему один обработчик события для нескольких элементов это может быть проблемой.
Есть форма, на ней условно 5 элементов, которым назначен один и тот же обработчик события.
Со временем форма изменилась, и один элемент устарел, и его удалили. И удалили его обработчики.
Получили проблему на ровном месте.

Потому что тот факт, что эти обработчики использовались еще и в других элементах - это надо помнить.
19. DJ_Codebase 07.09.21 18:08 Сейчас в теме
(18)
один элемент устарел, и его удалили. И удалили его обработчики.
Получили проблему на ровном месте.

ну подобное может случиться и не только с элементом. чтобы что-то делать - нужно понимание, что ты делаешь. Обоснование надо бы этим писателям правил составлять. а то написали: вот так правильно, а так нет... сомнительное правило получается. Ведь разработчики платформы же не зря придумали выбор этих самых обработчиков из списка. А есть еще и методы типа ДобавитьОбработчик, УстановитьДействие.
20. Sashares 34 07.09.21 18:34 Сейчас в теме
(19)
чтобы что-то делать - нужно понимание, что ты делаешь.

Да кто спорит.
Просто если можно не создавать себе в будущем проблем на ровном месте, лучше их не создавать.
Тем более в данном случае соблюдение стандарта не требует каких-то особых усилий.
10. andy_zhav 197 07.09.21 13:39 Сейчас в теме
Можно переписать на один обработчик без кучи условий
например так:

ЭтотОбъект[Элемент.Имя] = УдалитьНедопустимыеСимволыXMLиКавычки(ЭтотОбъект[Элемент.Имя]);

Но надо отладить, в обычных формах давно не кодил. Может нужно обратиться не к имени элемента, а найти реквизит через путь к данным
Оставьте свое сообщение

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