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

    −124

    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
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    //часть текста запроса
                                   |ИЗ
    		               |	ЭтапыОплатыИсходник КАК ЭтапыОплаты
    		       		   |//ТекстОтбора
    		               |{ГДЕ
    .................
    
    		//Добавляем поля если используется отбор
    		ТекстОтбора="ГДЕ ";
    		ТекстОтбора=ТекстОтбора+" ИСТИНА";		
    		НомерПеременнойОтбора=1;
    		Для каждого  СтрокаТекущегоОтбора Из ПостроительОтчета.Отбор Цикл
    
    			if НЕ СтрокаТекущегоОтбора.Использование then
    				continue;
    			endif;
    
    			СложноеИмяПоля=ПолучитьИмяПоляБезТочек(СтрокаТекущегоОтбора.ПутьКДанным);
    			Если  ПостроительОтчета.Отбор.Найти(СложноеИмяПоля)=Неопределено Тогда
    				Если СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.Больше Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" > &ПеременнаяОтбора"+НомерПеременнойОтбора;	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.БольшеИлиРавно Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" >= &ПеременнаяОтбора"+НомерПеременнойОтбора;	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВИерархии или 
    					СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВСписке или 
    					СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВСпискеПоИерархии Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В (&ПеременнаяОтбора"+НомерПеременнойОтбора+")";	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВИерархии Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В ИЕРАРХИИ(&ПеременнаяОтбора"+НомерПеременнойОтбора+")";	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.Меньше Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" < &ПеременнаяОтбора"+НомерПеременнойОтбора;	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.МеньшеИлиРавно Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" <= &ПеременнаяОтбора"+НомерПеременнойОтбора;	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеВСписке или 
    					СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеВСпискеПоИерархии Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И НЕ "+"ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В (&ПеременнаяОтбора"+НомерПеременнойОтбора+")";	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеВИерархии  Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И НЕ "+"ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В ИЕРАРХИИ(&ПеременнаяОтбора"+НомерПеременнойОтбора+")";	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеРавно Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" <> &ПеременнаяОтбора"+НомерПеременнойОтбора;	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.Равно Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" = &ПеременнаяОтбора"+НомерПеременнойОтбора;	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				КонецЕсли; 
    			КонецЕсли; 
    		КонецЦикла; 
    
    		Если НомерПеременнойОтбора>1 Тогда
    			Запрос.Текст=СтрЗаменить(Запрос.Текст,"//ТекстОтбора",ТекстОтбора);
    		КонецЕсли;

    При этом при всем, в отчете используется 2 построителя ( на одном не смог построить , одного видимо было было мало для стратегии заложенной в голове:) ) + между ними используется куча запросов , в которых выгружаются таблицы (РезультатЗапроса.Выполнить().Выгрузить( )) и передаются в следующие запросы как параметры.
    От себя добавлю: Добавлял элементарные вещи, чтобы вывести пару дополнительных колонок - убить 1 час , тоже самое, что ничего не сделать..... Да и к тому же отчет рисуется через "ТабДок.Присоеденить".

    Ba_Ka, 22 Декабря 2014

    Комментарии (9)
  2. 1C / Говнокод #17354

    −125

    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
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    //часть текста запроса
                                   |ИЗ
    		               |	ЭтапыОплатыИсходник КАК ЭтапыОплаты
    		       		   |//ТекстОтбора
    		               |{ГДЕ
    .................
    
    		//Добавляем поля если используется отбор
    		ТекстОтбора="ГДЕ ";
    		ТекстОтбора=ТекстОтбора+" ИСТИНА";		//NP002
    		НомерПеременнойОтбора=1;
    		Для каждого  СтрокаТекущегоОтбора Из ПостроительОтчета.Отбор Цикл
    
    			if НЕ СтрокаТекущегоОтбора.Использование then
    				continue;
    			endif;
    
    			СложноеИмяПоля=ПолучитьИмяПоляБезТочек(СтрокаТекущегоОтбора.ПутьКДанным);
    			Если  ПостроительОтчета.Отбор.Найти(СложноеИмяПоля)=Неопределено Тогда
    				Если СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.Больше Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" > &ПеременнаяОтбора"+НомерПеременнойОтбора;	//NP002
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.БольшеИлиРавно Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" >= &ПеременнаяОтбора"+НомерПеременнойОтбора;	//NP002
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВИерархии или 
    					СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВСписке или 
    					СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВСпискеПоИерархии Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В (&ПеременнаяОтбора"+НомерПеременнойОтбора+")";	//NP002
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВИерархии Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В ИЕРАРХИИ(&ПеременнаяОтбора"+НомерПеременнойОтбора+")";	//NP002
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.Меньше Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" < &ПеременнаяОтбора"+НомерПеременнойОтбора;	//NP002
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.МеньшеИлиРавно Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" <= &ПеременнаяОтбора"+НомерПеременнойОтбора;	//NP002
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеВСписке или 
    					СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеВСпискеПоИерархии Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И НЕ "+"ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В (&ПеременнаяОтбора"+НомерПеременнойОтбора+")";	//NP002
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеВИерархии  Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И НЕ "+"ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В ИЕРАРХИИ(&ПеременнаяОтбора"+НомерПеременнойОтбора+")";	//NP002
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеРавно Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" <> &ПеременнаяОтбора"+НомерПеременнойОтбора;	//NP002
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.Равно Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" = &ПеременнаяОтбора"+НомерПеременнойОтбора;	//NP002
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				КонецЕсли; 
    			КонецЕсли; 
    		КонецЦикла; 
    
    		Если НомерПеременнойОтбора>1 Тогда
    			Запрос.Текст=СтрЗаменить(Запрос.Текст,"//ТекстОтбора",ТекстОтбора);
    		КонецЕсли;

    При этом при всем, в отчете используется 2 построителя ( на одном не смог построить , одного видимо было было мало для стратегии заложенной в голове:) ) + между ними используется куча запросов , в которых выгружаются таблицы (РезультатЗапроса.Выполнить().Выгрузить( )) и передаются в следующие запросы как параметры.
    От себя добавлю: Добавлял элементарные вещи, чтобы вывести пару дополнительных колонок - убить 1 час , тоже самое, что ничего не сделать..... Да и к тому же отчет рисуется через "ТабДок.Присоеденить".

    Ba_Ka, 22 Декабря 2014

    Комментарии (0)
  3. Куча / Говнокод #17353

    +136

    1. 1
    2. 2
    Prelude> [(-1/0),1 .. 1]
    [-Infinity,1.0,Infinity,Infinity]

    Целых 2 бесконечности между единицей.

    Abbath, 22 Декабря 2014

    Комментарии (6)
  4. Си / Говнокод #17352

    +139

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    #ifndef STDC
    #  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
    #    define const       /* note: need a more gentle solution here */
    #  endif
    #endif

    Совместимость

    Ccik, 22 Декабря 2014

    Комментарии (1)
  5. JavaScript / Говнокод #17351

    +157

    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
    $('.file_work .left .content a.create').bind('click', function(){
            show.in_question(strings.question[2], {
                0:strings.question[2].buttons[0], 
                1:strings.question[2].buttons[1]
            }, function(action, string){
                if(action !='ok'){
                    return;
                }
                if(string.length<4){
                    show.error(strings.error[7], '');
                    return;
                }
                CreateTag(cache.current, string);
            });
        });

    хуита, 22 Декабря 2014

    Комментарии (11)
  6. C++ / Говнокод #17350

    +58

    1. 1
    int (o)(0);

    http://ideone.com/9JL6K4

    bormand, 22 Декабря 2014

    Комментарии (11)
  7. C++ / Говнокод #17349

    +50

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #include <iostream>
     
    void koko() { return throw "kook"; }
     
    int main() try {
    	koko();
    } catch(const char * e) {
    	std::cout << e;
    }

    когда никто не видит, throw возвращает void
    http://ideone.com/VDMPwE

    Xom94ok, 22 Декабря 2014

    Комментарии (1)
  8. JavaScript / Говнокод #17348

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    express_static = express.static(static_files.file_path)
        app.use('/files', (req, res, next) ->
            if Math.random() > app.failureProbability
                express_static.handle(req, res, next)
            else
                # server failure or timeout
                if Math.random() < 0.5
                    console.log('\x1B[31mRandom failure\x1B[0m')
                    res.send(500, 'Fuck you')
                else
                    console.log('\x1B[31mRandom timeout\x1B[0m')
        )

    а вот так мы тестируем сетевую нагрузку (нода, кофе)

    makc3d, 21 Декабря 2014

    Комментарии (4)
  9. JavaScript / Говнокод #17347

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    anim.object.strokeWidthEnd = _.distance((end.replace(/(#[0-9a-f]{6})|(#[0-9a-f]{3})|(rgba?\((\d{1,3})\,\s*(\d{1,3})\,\s*(\d{1,3})(\,\s*([0-9\.]{1,4}))?\))|(rgba?\((\d{1,3})\%?\,\s*(\d{1,3})\%?\,\s*(\d{1,3})\%?(\,\s*([0-9\.]{1,4}))?\))/, '').match(/(\d+|(\d+)?\.\d+)(em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|px|pt|pc)?/) || [])[0]);
    if(end.indexOf('transparent') > -1)
        anim.object.strokeColorEnd = [anim.object.strokeColor[0], anim.object.strokeColor[1], anim.object.strokeColor[2], 0];
    else
        anim.object.strokeColorEnd = _.color((end.match(/(#[0-9a-f]{6})|(#[0-9a-f]{3})|(rgba?\((\d{1,3})\,\s*(\d{1,3})\,\s*(\d{1,3})(\,\s*([0-9\.]{1,4}))?\))|(rgba?\((\d{1,3})\%?\,\s*(\d{1,3})\%?\,\s*(\d{1,3})\%?(\,\s*([0-9\.]{1,4}))?\))/) || end.match(new RegExp(Object.keys(_.colors).join('|'))) || [])[0]);

    одна-проблема-и-регулярка.jpg

    gost, 20 Декабря 2014

    Комментарии (0)
  10. Java / Говнокод #17346

    +78

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public static void create(String title, int width, int height) {
            if (isWindowCreated())
                throw new RuntimeException("Window created.");
            if (title == null)
                throw new NullPointerException("Window title == null.");
            if (width <= 0 || height <= 0)
                throw new IllegalArgumentException("Window size <= 0.");
            if ((window = GLFW.glfwCreateWindow(width, height, title, MemoryUtil.NULL, MemoryUtil.NULL)) == MemoryUtil.NULL)
                throw new RuntimeException("Failed to create the GLFW window.");
        }

    jangolare, 20 Декабря 2014

    Комментарии (9)