Кто может объяснить какие варианты сравнения возможны:
или такой вариант:
где ДанныеПечати.Контрагент.ЮрФизЛицо=ПеречислениеСсылка.ЮрФизЛицо
данное условие находится в Обработка.ПечатьОбщихФорм.МодульМенеджера
Если можно более развернутый ответ почему нельзя или можно!
Если ДанныеПечати.Контрагент.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ЮрЛицоНеРезидент Тогда
ПечатьКодТНВЭД=1;
КонецЕсли;
или такой вариант:
Если СокрЛП(ДанныеПечати.Контрагент.ЮрФизЛицо)="Юр. лицо, за пределами РФ" Тогда
ПечатьКодТНВЭД=1;
КонецЕсли;
где ДанныеПечати.Контрагент.ЮрФизЛицо=ПеречислениеСсылка.ЮрФизЛицо
данное условие находится в Обработка.ПечатьОбщихФорм.МодульМенеджера
Если можно более развернутый ответ почему нельзя или можно!
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Первый вариант - канонический (еще лучше - с использованием функции ПредопределенноеЗначение).
Второй хоть ничего смертельного в себе и не несет (вряд ли кто-то будет менять синоним элемента представления), но пованивает.
Потому что хороший код всегда сравнивает ссылки, а не наименования. Тем более непонятно почему так не делать, когда никакой проблемы это делать не составляет. Когда такое видишь, то к разработчику сразу возникают вопросы. Потому что у хорошего разработчика на такое рука в принципе "сбиться" не может.
Ну и как уже сказали, вероятность изменения синонима элемента перечисления все же остается. Лично мне бы даже в голову не пришло проверять при этом конфу на предмет вот таких вот перлов.
Второй хоть ничего смертельного в себе и не несет (вряд ли кто-то будет менять синоним элемента представления), но пованивает.
Потому что хороший код всегда сравнивает ссылки, а не наименования. Тем более непонятно почему так не делать, когда никакой проблемы это делать не составляет. Когда такое видишь, то к разработчику сразу возникают вопросы. Потому что у хорошего разработчика на такое рука в принципе "сбиться" не может.
Ну и как уже сказали, вероятность изменения синонима элемента перечисления все же остается. Лично мне бы даже в голову не пришло проверять при этом конфу на предмет вот таких вот перлов.
Все правильно выше написали. То есть главный критерий тут - устойчивость кода и ответственность за его работоспособность..
Такой вариант ломается в пользовательской части с помощью, в-общем-то, стандартного функционала, ничем не запрещенного. Ответственность за это на разработчике, который этот код писал.
Такой вариант тоже можно сломать. Но только в конфигураторе, поменяв само перечисление. Здесь уже ответственность на том, кто вносит изменения.
СокрЛП(ДанныеПечати.Контрагент.ЮрФизЛицо)="Юр. лицо, за пределами РФ"
Такой вариант ломается в пользовательской части с помощью, в-общем-то, стандартного функционала, ничем не запрещенного. Ответственность за это на разработчике, который этот код писал.
ДанныеПечати.Контрагент.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ЮрЛицоНеРезидент
Такой вариант тоже можно сломать. Но только в конфигураторе, поменяв само перечисление. Здесь уже ответственность на том, кто вносит изменения.
во всех случаях лучше выбрать ЮрФизЛицо контрагента запросом, (и любые реквизиты элемента) т.к. при таком написании весь элемент попадет в оперативную память.
на большом массиве это будет заметно, ведь у контрагента есть ещё табличные части, и они также почитаются.
добавить в данные печати и выбрать потом:
на большом массиве это будет заметно, ведь у контрагента есть ещё табличные части, и они также почитаются.
добавить в данные печати и выбрать потом:
ДанныеПечати.ЮрФизЛицоКонтрагента
(5) Ничего страшного в обращении через точку нет, если это происходит не в цикле. Узким местом это не станет никогда, а значит эту неоптимальность можно смело принести в жертву повышению лаконичности и читабельности кода, которая в мире энтерпрайз-разработки ценится гораздо выше.
(7) Потому что на практике если всем рекомендациям следовать, то получается, что на простейшую обработку на какое-нибудь групповое изменение учетных данных в базе нужно кучу времени убить.
А потом глядишь на примеры кода типовых конфигураций и понимаешь, что "запрос в цикле" - это не такая уже непогрешимая вещь.
А потом глядишь на примеры кода типовых конфигураций и понимаешь, что "запрос в цикле" - это не такая уже непогрешимая вещь.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот