fixin (fixin) wrote,
fixin
fixin

Парадокс: Читаемость кода за счет лишних прогонов

У меня был вот такой код, где выполнялось по выбору пользователя N обработок.

И в конце нужно было выдать пользователю подтверждение, какие обработки выполнены.

Сначала я написал код так, но это было неправильно:


Сообщение = "";
Для Каждого
Эл Из МассивОбрабатываемыхЭлементов
 Если НужнаОбработка1 Тогда
 
Сообщение = Сообщение + "Обработка 1" + Символы.ПС;
 
ВыполнитьОбработку1();
 КонецЕсли;
 Если
НужнаОбработка2 Тогда
 
Сообщение = Сообщение + "Обработка 2" + Символы.ПС;
 
ВыполнитьОбработку2();
 КонецЕсли;
 ...
 Если
НужнаОбработкаN Тогда
 
Сообщение = Сообщение + "Обработка N" + Символы.ПС;
 
ВыполнитьОбработкуN();
 КонецЕсли;
КонецЦикла;

Предупреждение("Над " + МассивОбрабатываемыхЭлементов.Количество() + " объектов выполнены обработки:" + Символы.ПС + Сообщение);

Потому что список выполненных обработок повторялся столько раз, сколько в массиве элементов.

Я решил не переписывать код, а вставить в начало цикла строку:


Сообщение = "";

Как вариант, облагородить код можно было бы и по другому:

Добавлять в сообщение строки только на первом прогоне цикла.

Сформировать строку сообщения отдельно от цикла.

Но тогда бы это было более громоздким, вот в чем парадокс. А как бы вы решили эту задачу?

Только не предлагайте все условия и ссылки на обработки загнать в массив. Это очевидное решение, но читается тоже так себе, потому что в 1с нет ссылки на функцию, есть только метод EVAL, выполняющий строку кода. Хотя вариант, конечно.

Tags: , Хороший стиль программирования
Subscribe

Posts from This Journal “1С” Tag

  • Visual Basic + 1С всё?

    Вот и верь после этого Одину Эссу!? Как-то, еще на работе в Максимусе, мне понадобилось написать внешнюю компоненту для управления сканером…

  • Вы всё еще кастрируете?

    Для отладки бизнес-процессов согласования договоров прежде, чем дело дойдет до утверждения, нужно пройти длинную цепочку согласований. Чтобы не…

  • Коварный ввод на основании в УФ

    На основании документа Х можно вводить два документа А и Б. Но конкретный вид документа зависит от содержимого документа Х (вида операции). Решили…

Buy for 40 tokens
Заядлые любители тренингов знают: лучше гор могут быть только горы - в смысле, новые тренинги, на которых еще не бывал. Я и сам такой же любитель поучиться – более того, как вы наверняка знаете, я абсолютно убежден в том, что без постоянного обучения никакого успеха в жизни человека не будет.…
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 31 comments