Бухгалтерия / Говнокод #7995 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
Процедура Кнопка1Нажатие(Элемент)
	// Вставить содержимое обработчика.
	//орг=элементыформы.организация.Значение;

запрос1=новый запрос;
запрос1.текст=""выбрать * из регистрсведений.регионыорганизаций где  регион=&регион"";
запрос1.УстановитьПараметр(""регион"",регион);
выборка=запрос1.Выполнить().Выбрать();
запрос2=новый запрос;
пока выборка.Следующий()цикл
	орг=выборка.организация;
	//Сообщить(выборка.Количество()); 
	запрос2.Текст=""выбрать * из регистрсведений.сведенияосотруднике где организация=&орг и ""+
""должность=&должн"";

запрос2.УстановитьПараметр(""орг"", орг);
запрос2.УстановитьПараметр(""должн"",должность);
выборка2=запрос2.Выполнить().Выбрать();
 если выборка2.Количество()>2 тогда
сообщить(строка(орг )+"" - ""+строка(выборка2.количество()));
конецесли;
конеццикла

КонецПроцедуры

Задание было такое
Написать интерфейс для выборки данных о количестве заместителей генерального директора в каждой организации, работающей в n-й области, где таковых заместителей более двух.

Авторское решение приведено в первозданном виде.

Запостил: glavdir glavdir, (Updated )

Комментарии (30) RSS

  • на 1с любой код = говнокод, ибо писать код кириллицей ужОс! не понимаю этого.
    Ответить
    • Мало того что в цикле)) Обратите внимание, он еще и создается на каждой итерации заново))
      Этакий фигурный венчик над здоровенной кучей)
      Ответить
  • Кодер видимо уверен что левое соединение придумали трусы и лентяи, которые не умеют писать циклы
    Ответить
  • Надо законодательно ввести запрет на программирование на русском.
    Ответить
  • procedure pressButton(element)
    firstQuery=new query;
    firstQuery.text=""select * from dataregistry.organizationregions where region=&region"";
    firstQuery.SetParameter(""region"",regio n);
    result=firstQuery.execute().select();
    secondQuery=new query;
    while result.next() loop
    org=result.orgанизация;
    //report(result.count());
    secondQuery.text= ""select * from dataregistry.employeersdata where organization=&org and ""+
    ""job=&job"";

    secondQuery.SetParameter(""org"", org);
    secondQuery.SetParameter(""job"",jobость );
    result2=secondQuery.execute().select();
    if result2.count()>2 than
    report(string(org )+"" - ""+string(result2.count()));
    endif;
    endLoop
    endProcedure
    Ответить
    • У дельфистов принято выносить логику приложения (в частности, создание и выполнение запросов) прямо в обработчики кнопок? в java за такое бьют по рукам
      Ответить
      • какие инструменты и способы воздействия имеет java для запретов писать логику программы в интерфейсе? по моему никаких.
        Ответить
        • на уровне языка - никаких. Ибо графический интерфейс не является чем-то, что имеет особое значение на уровне языка
          Ответить
          • В том же WPF или в GUI библиотеках с паттерном Model–view–controller есть попытка навязать разделение логики от интерфейса.


            >в java за такое бьют по рукам
            >на уровне языка - никаких.
            Зачем было говорить первую фразу? Зачем так не грамотно пытаться на уровне GUI возвысить почитателей java над delphi?
            Ответить
            • > возвысить
              я всего лишь спросил принято так делать или нет. В рамках экосистемы каждого языка есть свои принципы и стандарты. В java, к примеру, MVC и модульность форсят со страшной силой. Навязывание mvc на уровне языка для языка общего назначения выглядит сомнительно.
              Ответить
              • Извиняюсь. Не заметил знака вопроса.
                Ну то, что принято в сообществе языка - это не значит, что так можно и нужно писать. Java'ист может лепить логику в обработчики событий GUI. А delphi'ист может использовать паттерны разделения логики программы от GUI.

                И между прочим, для очень маленьких приложений - логику от GUI лучше не разделять. Быстрее получится.
                Ответить
                • Согласен. Скурпулёзная модульность нужна не всегда. Джависты в последнее время слишком часто помешаны на паттернах. А если трезво рассудить, пользы от них в небольших проектах может быть нуль. Тем не менее, когда файл исходника длиннее 300 строк, я впадаю в апатию....
                  Ответить
                  • >Тем не менее, когда файл исходника длиннее 300 строк, я впадаю в апатию....
                    А вот когда то я без проблем разбирался с такими... Сейчас каждая функция у нас 1 - 10 строк по кодекнвеншену. И с тех пор разбирать говнокод я напрочь разучился 🙁
                    Ответить
  • Ковычки лишние

    Это писал непуганый новичок
    На экзамене 1с Специалист, ему сразу, не сходя с места и не глядя остальное решение поставят 2 и расстреляют из реактивного говномёта потому что:
    1) Запрос ко всей таблице регистра, без фильтрации и обход её целиком
    2) Запрос в цикле - в 1С это смертный грех, за это ждёт ад
    3) Ещё один запрос ко всей таблице
    Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8