Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Процедура Кнопка1Нажатие(Элемент)
// Вставить содержимое обработчика.
//орг=элементыформы.организация.Значение;
запрос1=новый запрос;
запрос1.текст=""выбрать * из регистрсведений.регионыорганизаций где регион=&регион"";
запрос1.УстановитьПараметр(""регион"",регион);
выборка=запрос1.Выполнить().Выбрать();
запрос2=новый запрос;
пока выборка.Следующий()цикл
орг=выборка.организация;
//Сообщить(выборка.Количество());
запрос2.Текст=""выбрать * из регистрсведений.сведенияосотруднике где организация=&орг и ""+
""должность=&должн"";
запрос2.УстановитьПараметр(""орг"", орг);
запрос2.УстановитьПараметр(""должн"",должность);
выборка2=запрос2.Выполнить().Выбрать();
если выборка2.Количество()>2 тогда
сообщить(строка(орг )+"" - ""+строка(выборка2.количество()));
конецесли;
конеццикла
КонецПроцедуры
Задание было такое
Написать интерфейс для выборки данных о количестве заместителей генерального директора в каждой организации, работающей в n-й области, где таковых заместителей более двух.
procedure pressButton(element)
firstQuery=new query;
firstQuery.text=""select * from dataregistry.organizationregions where region=®ion"";
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 за такое бьют по рукам
В том же 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) Ещё один запрос ко всей таблице
Так что "1С говно, потому что на русском языке" - фигня, а не доказательство.
минусня
CPPGovno^2
А для товарища гуэста выше - в православном 1С можно писать не только кирилицей
Этакий фигурный венчик над здоровенной кучей)
firstQuery=new query;
firstQuery.text=""select * from dataregistry.organizationregions where region=®ion"";
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 за такое бьют по рукам
>на уровне языка - никаких.
Зачем было говорить первую фразу? Зачем так не грамотно пытаться на уровне GUI возвысить почитателей java над delphi?
я всего лишь спросил принято так делать или нет. В рамках экосистемы каждого языка есть свои принципы и стандарты. В java, к примеру, MVC и модульность форсят со страшной силой. Навязывание mvc на уровне языка для языка общего назначения выглядит сомнительно.
Ну то, что принято в сообществе языка - это не значит, что так можно и нужно писать. Java'ист может лепить логику в обработчики событий GUI. А delphi'ист может использовать паттерны разделения логики программы от GUI.
И между прочим, для очень маленьких приложений - логику от GUI лучше не разделять. Быстрее получится.
А вот когда то я без проблем разбирался с такими... Сейчас каждая функция у нас 1 - 10 строк по кодекнвеншену. И с тех пор разбирать говнокод я напрочь разучился 🙁
Это писал непуганый новичок
На экзамене 1с Специалист, ему сразу, не сходя с места и не глядя остальное решение поставят 2 и расстреляют из реактивного говномёта потому что:
1) Запрос ко всей таблице регистра, без фильтрации и обход её целиком
2) Запрос в цикле - в 1С это смертный грех, за это ждёт ад
3) Ещё один запрос ко всей таблице