1. PHP / Говнокод #17359

    +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
    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
    class number {
        //put your code here
        protected $digits;/*массив цифр числа. 0й эл-т - самый правый разряд*/ 
        protected $sign;/*знак числа*/
        public function __construct($number) {
            if(($number>=-9999999)&($number<=9999999)) {
                if(intval($number)<0) {
                    $this->sign=-1;   
                }
                else {
                    $this->sign=1;
                }
                $this->digits=  preg_split("//", $number*$this->sign, -1, 
                        PREG_SPLIT_NO_EMPTY);//преобразовываем число в массив цифр
                $this->digits=array_reverse($this->digits);/*переворачиваем массив, 
                 * чтобы индексы соответствовали степеням числа 10*/
            }
            else {
                exit("Введено число вне диапазона или неверного типа!<br>".
                        "The number from non-essential range or type!<br>");
            }
        }
        public function isNegative() {
            if($this->sign==-1) return true;
            else return false;
        }
        public function isPositive() {
            if($this->sign==-1) return false;
            else return true;
        }
        public function getSign() {return $this->sign;}
        public function getDigits() {return $this->digits;}
        public function getDigit($cn) {
            if(($cn>=0)&($cn<=7)) return $this->digits[$cn];
            else return 0;
        }
    }

    Часть программы, которая преобразовывает целое число из промежутка [-9999999; 9999999] в текст (разговорный) на трех языках (Russian, Ukrainian, English). Состоит из трех классов. Это класс number , основное назначение которого - преобразовать число в массив цифр, номера цифр в котором соответствуют степерям числа 10.

    ppd, 23 Декабря 2014

    Комментарии (0)
  2. JavaScript / Говнокод #17358

    +156

    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
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    jQuery(document).ready(function(){ 
    jQuery("a.m1_show").click(function(){ 
    jQuery('div#emul_1').addClass('mshow').show();
    jQuery('div#emul_2').addClass('minvis').hide();
    jQuery('div#emul_3').addClass('minvis').hide();
    jQuery('div#emul_4').addClass('minvis').hide();
    jQuery('div#emul_5').addClass('minvis').hide();
    //jQuery('li#emul_6').addClass('minvis').hide();
    });
    });
    
    jQuery(document).ready(function(){ 
    jQuery("a.m2_show").click(function(){ 
    jQuery('div#emul_2').addClass('mshow').show();
    jQuery('div#emul_1').addClass('minvis').hide();
    jQuery('div#emul_3').addClass('minvis').hide();
    jQuery('div#emul_4').addClass('minvis').hide();
    jQuery('div#emul_5').addClass('minvis').hide();
    //jQuery('li#emul_6').addClass('minvis').hide();
    });
    });
    
    jQuery(document).ready(function(){ 
    jQuery("a.m3_show").click(function(){ 
    jQuery('div#emul_3').addClass('mshow').show();
    jQuery('div#emul_1').addClass('minvis').hide();
    jQuery('div#emul_2').addClass('minvis').hide();
    jQuery('div#emul_4').addClass('minvis').hide();
    jQuery('div#emul_5').addClass('minvis').hide();
    //jQuery('li#emul_6').addClass('minvis').hide();
    });
    });
    
    jQuery(document).ready(function(){ 
    jQuery("a.m4_show").click(function(){ 
    jQuery('div#emul_4').addClass('mshow').show();
    jQuery('div#emul_1').addClass('minvis').hide();
    jQuery('div#emul_3').addClass('minvis').hide();
    jQuery('div#emul_2').addClass('minvis').hide();
    jQuery('div#emul_5').addClass('minvis').hide();
    //jQuery('li#emul_6').addClass('minvis').hide();
    });
    });
    
    jQuery(document).ready(function(){ 
    jQuery("a.m5_show").click(function(){ 
    jQuery('div#emul_5').addClass('mshow').show();
    jQuery('div#emul_1').addClass('minvis').hide();
    jQuery('div#emul_3').addClass('minvis').hide();
    jQuery('div#emul_2').addClass('minvis').hide();
    jQuery('div#emul_4').addClass('minvis').hide();
    //jQuery('li#emul_6').addClass('minvis').hide();
    });
    });
    
    function but_1 () {
    jQuery('span#emul_img_1').addClass('img_none').hide();
    jQuery('span#emul_img_2').addClass('img_inline').show();
    jQuery('span#emul_img_3').addClass('img_inline').show();
    jQuery('span#emul_img_4').addClass('img_inline').show();
    jQuery('span#emul_img_5').addClass('img_inline').show();
    
    
    jQuery('span#emul_img_none_1').addClass('img_inline').show();
    jQuery('span#emul_img_none_1').addClass('current_tab').show();
    
    jQuery('span#emul_img_none_2').addClass('img_none').hide();
    jQuery('span#emul_img_none_3').addClass('img_none').hide();
    jQuery('span#emul_img_none_4').addClass('img_none').hide();
    jQuery('span#emul_img_none_5').addClass('img_none').hide();
    }
    
    function but_2 () {
    jQuery('span#emul_img_2').addClass('img_none').hide();
    jQuery('span#emul_img_1').addClass('img_inline').show();
    jQuery('span#emul_img_3').addClass('img_inline').show();
    jQuery('span#emul_img_4').addClass('img_inline').show();
    jQuery('span#emul_img_5').addClass('img_inline').show();
    
    jQuery('span#emul_img_none_2').addClass('img_inline').show();
    jQuery('span#emul_img_none_2').addClass('current_tab').show();
    
    jQuery('span#emul_img_none_1').addClass('img_none').hide();
    jQuery('span#emul_img_none_3').addClass('img_none').hide();
    jQuery('span#emul_img_none_4').addClass('img_none').hide();
    jQuery('span#emul_img_none_5').addClass('img_none').hide();
    
    }
    
    function but_3 () {
    jQuery('span#emul_img_3').addClass('img_none').hide();
    jQuery('span#emul_img_2').addClass('img_inline').show();
    jQuery('span#emul_img_1').addClass('img_inline').show();
    jQuery('span#emul_img_4').addClass('img_inline').show();
    jQuery('span#emul_img_5').addClass('img_inline').show();
    
    jQuery('span#emul_img_none_3').addClass('img_inline').show();
    jQuery('span#emul_img_none_3').addClass('current_tab').show();

    Сегодня наткнулся на такой вот скрипт для табов. Кому нужен - воруйте. Скрипт лаконичный. Работает шустро.

    Serj, 23 Декабря 2014

    Комментарии (3)
  3. Objective C / Говнокод #17356

    −404

    1. 1
    UIImageView *footerWhite1PxLineThatOnlyAndersWillNotice = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"sidebar_line_white"]];

    ох уж этот Андерс!

    besprincypniycentner, 23 Декабря 2014

    Комментарии (4)
  4. 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)
  5. 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)
  6. Куча / Говнокод #17353

    +136

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

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

    Abbath, 22 Декабря 2014

    Комментарии (6)
  7. Си / Говнокод #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)
  8. 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)
  9. C++ / Говнокод #17350

    +58

    1. 1
    int (o)(0);

    http://ideone.com/9JL6K4

    bormand, 22 Декабря 2014

    Комментарии (11)
  10. 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)