1. C++ / Говнокод #19530

    +2

    1. 1
    if ( LIKELY( _mode == normal ))

    _mode задается один раз в начале программы по конфигурационному файлу.

    govnokoderatata, 25 Февраля 2016

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

    +10

    1. 1
    2. 2
    3. 3
    4. 4
    public static string toFormat(string s, int u)
    {
        return "                                                                       ".Substring(0, u * 4) + s +"\r\n";
    }

    Функция используется для форматирования файла класса, созданного автоматически.

    deathguard771, 25 Февраля 2016

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

    −98

    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
    Процедура ОсновныеДействияФормыПароль(Кнопка)
    	Если ЭтотОбъект.Пароль = "база7" Тогда
    		ЭлементыФормы.РедактированиеСклада.Доступность = Истина;
    		ЭтотОбъект.Пароль = "";
    		Сообщить("Вы можете изменить галку 'Редактирование склада'");
    	ИначеЕсли ЭтотОбъект.Пароль = "разрешение" Тогда
    		ЭлементыФормы.ПривелигированныйПользователь.Доступность = Истина;
    		ЭтотОбъект.Пароль = "";
    		Сообщить("Вы можете изменить галку 'Привелигированный пользователь'");
    	Иначе
    		Сообщить("Вы ввели неверный пароль");
    	КонецЕсли;
    
    КонецПроцедуры

    Реализация ограничения прав на установку прав для пользователей ИБ.

    CMblCL, 25 Февраля 2016

    Комментарии (8)
  4. PHP / Говнокод #19522

    +1

    1. 1
    define('OKVED_TRY_BUILD_CHUNK_IF_IT_NOT_FOUND_IN_CHUNKCACHE', TRUE);

    Написал строчку и думаю - то ли я наговнокодил с названием, то ли соломки подстелил, так, что через месяц я ТОЧНО вспомню, зачем оно нужно...

    Arris, 24 Февраля 2016

    Комментарии (14)
  5. C# / Говнокод #19521

    +2

    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
    if (t.IsFaulted)
    {
        try
        {
            throw t.Exception.InnerException;
        }
        catch (ObjectDisposedException)
        {
            Dispose();
            return;
        }
        ...
    }

    cykablyad, 24 Февраля 2016

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

    −96

    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
    Запас=0; ВПутиУжеЗаказано=0;Остаток=0;Резерв=0;
    	
    	Для Каждого ВыбСклад из СписокСкладов Цикл
    		Скл=Справочники.Склады.НайтиПоНаименованию(СокрЛП(ВыбСклад.Ссылка.Наименование));
    		СтруктураОтбора = Новый Структура(); // для отбора остатков взаиморасчетов
    		СтруктураОтбора.Вставить("Номенклатура", Номенклатура);
    		СтруктураОтбора.Вставить("Склад", Скл);
    		Остаток =Остаток+ РегистрыНакопления.ТоварыНаСкладах.Остатки(КонецДня(КонДата),
    		СтруктураОтбора,"Номенклатура,Склад","Количество").Итог("Количество");
    		Резерв = Резерв+РегистрыНакопления.ТоварыВРезервеНаСкладах.Остатки(КонецДня(КонДата),
    		СтруктураОтбора,"Номенклатура,Склад","Количество").Итог("Количество");
    	КонецЦикла;
    		
    	СтрокаЗапаса=СокрЛП(Остаток);
    	СтрокаЗапаса=СтрЗаменить(СтрокаЗапаса," ","");
    	Запас=?(СтрокаЗапаса="",0,Число(СтрокаЗапаса));

    Лихие манипуляции со стоками. Следите за руками!

    saturn5, 24 Февраля 2016

    Комментарии (4)
  7. 1C / Говнокод #19519

    −95

    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
    Запрос = Новый Запрос;
    	Запрос.Текст = 
    	 "текст запроса не важен...";
    	Запрос.УстановитьПараметр("Заказ", Заказ);
    	Выборка = Запрос.Выполнить().Выбрать();
    	Пока Выборка.Следующий() Цикл
    		Если Выборка.Версия = 0 Тогда 
    			Версия = "0";
    		Иначе
    			Версия = Выборка.Версия;
    		КонецЕсли;
    		ИмяФайла = "\\eskoautomation\HotFolders\zakaz\" +Выборка.НомерЗаказа+"_"+Версия+".xml";
    		Файл = Новый ЗаписьXML;
    		Файл.ОткрытьФайл(ИмяФайла);
    		Файл.ЗаписатьНачалоЭлемента("Главный");
    			Файл.ЗаписатьНачалоЭлемента("НомерЗаказа");
    			ЗаписатьXML(Файл,Выборка.НомерЗаказа);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("Версия");
    			ЗаписатьXML(Файл,Выборка.Версия);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("Контрагент");
    			ЗаписатьXML(Файл,Выборка.Контрагент);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("ТипЗаказа");
    			ЗаписатьXML(Файл,Выборка.ТипЗаказа);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("ВидЗаказа");
    			ЗаписатьXML(Файл,Выборка.ВидЗаказа);
    			Файл.ЗаписатьКонецЭлемента();
    	        Файл.ЗаписатьНачалоЭлемента("ТипРЦ");
    			ЗаписатьXML(Файл,Выборка.ТипРЦ);
    			Файл.ЗаписатьКонецЭлемента();
    			РабочийЦентр = Выборка.РабочийЦентр;
    			Если Не ЗначениеЗаполнено(РабочийЦентр) Тогда
    				Отбор = Новый Структура;
    				Отбор.Вставить("НомерПроката", 1);
    				Отбор.Вставить("Номерварианта", Выборка.НомерВарианта);
    				строки = Выборка.Спецификация.ВидыРабот.НайтиСтроки(Отбор);
    				Если строки<>Неопределено Тогда 
    					РабочийЦентр = строки[0].рабочийЦентр.порядковыйномер;
    				КонецЕсли;
    			КонецЕсли;	
    	        Файл.ЗаписатьНачалоЭлемента("РабочийЦентр");
    			ЗаписатьXML(Файл,РабочийЦентр);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("ОсновнойМатериал");
    			ЗаписатьXML(Файл,Выборка.ОсновнойМатериал);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("Штамп");
    			ЗаписатьXML(Файл,Выборка.Штамп);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("ЭтикетокНаЛисте");
    			ЗаписатьXML(Файл,Выборка.ЭтикетокНаЛисте);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("Нарезка");
    			ЗаписатьXML(Файл,Выборка.Нарезка);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("Ручьи");
    			ЗаписатьXML(Файл,Выборка.Ручьи);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("Z");
    			ЗаписатьXML(Файл,Выборка.Z);
    			Файл.ЗаписатьКонецЭлемента();
    	        Файл.ЗаписатьНачалоЭлемента("ШагПечати");
    			ЗаписатьXML(Файл,Выборка.ШагПечати);
    			Файл.ЗаписатьКонецЭлемента();
    	        Файл.ЗаписатьНачалоЭлемента("ДлинаЭтикетки");
    			ЗаписатьXML(Файл,Выборка.ДлинаЭтикетки);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("ШиринаЭтикетки");
    			ЗаписатьXML(Файл,Выборка.ШиринаЭтикетки);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("ДлинаКонтрЭтикетки");
    			ЗаписатьXML(Файл,Выборка.ДлинаКонтрЭтикетки);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("ДлинаКольеретки");
    			ЗаписатьXML(Файл,Выборка.ДлинаКольеретки);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("ШиринаКонтрЭтикетки");
    			ЗаписатьXML(Файл,Выборка.ШиринаКонтрЭтикетки);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("ШиринаКольеретки");
    			ЗаписатьXML(Файл,Выборка.ШиринаКольеретки);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("ШиринаПоНожам");
    			ЗаписатьXML(Файл,Выборка.ШиринаПоНожам);
    			Файл.ЗаписатьКонецЭлемента();
    	        Файл.ЗаписатьНачалоЭлемента("ИнтервалМеждуРучьями");
    			ЗаписатьXML(Файл,Выборка.ИнтервалМеждуРучьями);
    			Файл.ЗаписатьКонецЭлемента();
    	        Файл.ЗаписатьНачалоЭлемента("ИнтервалМеждуЭтикетками");
    			ЗаписатьXML(Файл,Выборка.ИнтервалМеждуЭтикетками);
    			Файл.ЗаписатьКонецЭлемента();
    			Файл.ЗаписатьНачалоЭлемента("Комментарий");
    			ЗаписатьXML(Файл,Заказ.Комментарий);
    			Файл.ЗаписатьКонецЭлемента();

    А вот так мы выгружаем XML. Можно конечно было бы пройтись циклом по колонкам выборки или таблицы значений, но зачем?! Зачем, когда можно написать лишних 300 строчек. Я соду с ума.

    levxxx, 24 Февраля 2016

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

    −98

    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
    ВыборкаЗаказов = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    	Пока ВыборкаЗаказов.Следующий() Цикл
    
    		ВыборкаГрузополучателей = ВыборкаЗаказов.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    		Пока ВыборкаГрузополучателей.Следующий() Цикл
    
    			ВыборкаАдресовДоставки = ВыборкаГрузополучателей.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    			Пока ВыборкаАдресовДоставки.Следующий() Цикл
    
    				РезультатЗапроса = ВыборкаАдресовДоставки.Выбрать();
    				СтавкаНДС = ПолучитьСтавкуНДСдляДокументов(Переменные.ОргПроизводитель, РезультатЗапроса[0].Контрагент);
    				Если РезультатЗапроса.Количество() <> 0 Тогда
     
    					ТАблицаДАнных = ПреобразоватьВыборкуВТаблицуЗначение(РезультатЗапроса);
    
    Функция ПреобразоватьВыборкуВТаблицуЗначение(ИсходнаяВыборка)
    	
    	ТаблицаРЕзультат = Новый ТаблицаЗначений;
    	
    	Для каждого Колонка Из ИсходнаяВыборка.Колонки Цикл
    		ТаблицаРезультат.Колонки.Добавить(Колонка.Имя);	
    	КОнецЦикла;
    	
    	
    	Для каждого СтрокаВыборки из ИсходнаяВыборка Цикл
    		СтрокаРезультата = ТаблицаРЕзультат.Добавить();
    		ЗаполнитьЗначенияСвойств(СтрокаВыборки, СтрокаРезультата);
    	КонецЦикла;
    	
    	Возврат ТаблицаРЕзультат;
    КонецФункции

    Я допускаю, что это было написано в староглиняные времена, когда у РезультатЗапроса не было метода Выгрузить() но блин! Всей истории 1С я не знаю, и сомневаюсь, что такие времена когда-то были. А вообще что-то подсказывает что песатель просто не знал...

    levxxx, 24 Февраля 2016

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

    +3

    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
    __fastcall OpenArray(T arg0, T arg1, T arg2, T arg3, T arg4, T arg5, T arg6,
    				 T arg7, T arg8, T arg9, T arg10, T arg11, T arg12,
    				 T arg13, T arg14, T arg15, T arg16, T arg17, T arg18)
    	  {
    		Array = new T[Count = 19];
    		Array[0] = arg0;
    		Array[1] = arg1;
    		Array[2] = arg2;
    		Array[3] = arg3;
    		Array[4] = arg4;
    		Array[5] = arg5;
    		Array[6] = arg6;
    		Array[7] = arg7;
    		Array[8] = arg8;
    		Array[9] = arg9;
    		Array[10] = arg10;
    		Array[11] = arg11;
    		Array[12] = arg12;
    		Array[13] = arg13;
    		Array[14] = arg14;
    		Array[15] = arg15;
    		Array[16] = arg16;
    		Array[17] = arg17;
    		Array[18] = arg18;
    	  }

    Старый недобрый C++ Builder. Выше по коду еще 17 таких же конструкторов.

    Vindicar, 24 Февраля 2016

    Комментарии (121)
  10. PHP / Говнокод #19516

    +1

    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
    foreach ($child as $ch) {
                if ($ch->nodeName === 'w:style') {
                    $sum++;
                    if ($ch->hasAttributes()) {
                        /** @var DOMAttr $attribute */
                        foreach ($ch->attributes as $attribute) {
                            if ($attribute->name === 'styleId') {
                                if ($attribute->value == $sTempStyle) {
                                    /** @var DOMElement $styleNode */
                                    foreach ($ch->childNodes as $styleNode) {
                                        if (isset($styleNode->tagName) && $styleNode->tagName === 'w:basedOn') {
                                            $basedOn    = $styleNode->getAttribute('w:val');
                                            $properties = $this->wordStyle2Array($basedOn, $tagName, $properties);
                                        }
                                        if (isset($styleNode->tagName) && $styleNode->tagName === $tagName) {
                                            $elements = $styleNode->childNodes;
                                            /** @var DOMElement $element */
                                            foreach ($elements as $element) {
                                                if (isset($element->tagName)) {
                                                    switch ($element->tagName) {
                                                        case 'w:color':
                                                            if ($element->hasAttribute('w:val')) {
                                                                $properties['color']['hex'] = '#' . $element->getAttribute
                                                                    ('w:val');
                                                            }
                                                            break;
                                                        case 'w:rFonts':
                                                            if ($element->hasAttribute('w:ascii')) {
                                                                $properties['font_family'] = $element->getAttribute('w:ascii');
                                                            }
                                                            break;
                                                        //кейсы - бесконечные как осень в России
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

    Чувак, мы слышали ты любишь плодить уровни вложенности, поэтому мы написали switch в if в foreach в if в foreach в if в if в foreach в if в if в foreach, кажется.

    mad_money, 24 Февраля 2016

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