1. 1C / Говнокод #7995

    −140

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 27 Сентября 2011

    Комментарии (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) Ещё один запрос ко всей таблице
      Ответить

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