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

    −137

    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
    Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    	
    	Если ЭтоНовый() Тогда
    		Запрос = Новый Запрос;
    		Запрос.УстановитьПараметр("Период", НачалоГода(ТекущаяДата()));
    		Запрос.Текст = "ВЫБРАТЬ
    		|	Максимум(ПлатежноеПоручение.Номер) КАК Номер
    		|ИЗ
    		|	Документ.ПлатежноеПоручение КАК ПлатежноеПоручение
    		|ГДЕ
    		|	ПлатежноеПоручение.Дата >= &Период";
    		Выборка = Запрос.Выполнить().Выбрать();
    		НомерМакс = 0;
    		Пока Выборка.Следующий() Цикл
    			Если НомерМакс < Число(Выборка.Номер) Тогда
    				НомерМакс = Число(Выборка.Номер);
    				Если СтрДлина(НомерМакс) = 1 И НомерМакс<9 Тогда
    					НомерДок ="0000000000" + Строка(Число(Число(Выборка.Номер) + 1));
    				ИначеЕсли (СтрДлина(НомерМакс) = 2 И НомерМакс<>99) Или НомерМакс=9 Тогда
    					НомерДок ="000000000" + Строка(Число(Число(Выборка.Номер) + 1));
    				ИначеЕсли (СтрДлина(НомерМакс) = 3 И НомерМакс<>999) Или НомерМакс<>99 Тогда
    					НомерДок ="00000000" + Строка(Число(Число(Выборка.Номер) + 1));
    				ИначеЕсли (СтрДлина(НомерМакс) = 4 И НомерМакс<>9999) Или НомерМакс<>999 Тогда
    					НомерДок ="0000000" + Строка(Число(Число(Выборка.Номер) + 1));
    				ИначеЕсли (СтрДлина(НомерМакс) = 5 И НомерМакс<>99999) Или НомерМакс<>9999 Тогда
    					НомерДок ="000000" + Строка(Число(Число(Выборка.Номер) + 1));
    				ИначеЕсли (СтрДлина(НомерМакс) = 6 И НомерМакс<>999999) Или НомерМакс<>99999 Тогда
    					НомерДок ="00000" + Строка(Число(Число(Выборка.Номер) + 1));
    				КонецЕсли;
    			КонецЕсли;
    		КонецЦикла;
    		ЭтотОбъект.Номер = НомерДок;
    	КонецЕсли;
    	
    КонецПроцедуры

    Мое творение, писАл на полном серьезе. В одном из документов БП пользователь отредактировал вручную номер документа, после этого сбилась нумерации. Документы с "неправильными" номерами удалили и добавили вновь - было поздно. Типового решения проблемы не нашлось и был написан этот код.
    Можно увидеть очень интересное: нахождение максимального значения в запросе и одновременный бесполезный прогон всего цикла, чтобы снова найти максимальное значение и много чего другого.

    ErrorEd88, 24 Февраля 2012

    Комментарии (6)
  2. PHP / Говнокод #9537

    +159

    1. 1
    2. 2
    define('ASC', 'ASC');
    define('DESC', 'DESC');

    *facepalm*

    codename, 24 Февраля 2012

    Комментарии (8)
  3. SQL / Говнокод #9536

    −123

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    SELECT keywords_ru AS keywords, title_ru AS title, description_ru AS description
    FROM alo_seo
    WHERE
    	( 1 AND city_id="348" AND cat_id=(SELECT id FROM alo_categories WHERE 1 AND path="peryferija" LIMIT 1) ) OR
    	( 1 AND city_id="348" AND cat_id=(SELECT id FROM alo_categories WHERE 1 AND path="komp-yuterna-tehnika" LIMIT 1) ) OR
    	( 1 AND cat_id=(SELECT id FROM alo_categories WHERE 1 AND path="peryferija" LIMIT 1) ) OR
    	( 1 AND cat_id=(SELECT id FROM alo_categories WHERE 1 AND path="komp-yuterna-tehnika" LIMIT 1) )
    LIMIT 1;

    andnix, 24 Февраля 2012

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

    +158

    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
    $PROPERTY_VALUE = array(
                    "payment_1_term" => $_POST["payment_1_term"], "payment_1_sum" => $_POST["payment_1_sum"],
                    "payment_2_term" => $_POST["payment_2_term"], "payment_2_sum" => $_POST["payment_2_sum"],
                    "payment_3_term" => $_POST["payment_3_term"], "payment_3_sum" => $_POST["payment_3_sum"],
                    "payment_4_term" => $_POST["payment_4_term"], "payment_4_sum" => $_POST["payment_4_sum"],
                    "payment_5_term" => $_POST["payment_5_term"], "payment_5_sum" => $_POST["payment_5_sum"],
                    "payment_6_term" => $_POST["payment_6_term"], "payment_6_sum" => $_POST["payment_6_sum"],
                    "payment_7_term" => $_POST["payment_7_term"], "payment_7_sum" => $_POST["payment_7_sum"],
                    "payment_8_term" => $_POST["payment_8_term"], "payment_8_sum" => $_POST["payment_8_sum"],
                    "payment_9_term" => $_POST["payment_9_term"], "payment_9_sum" => $_POST["payment_9_sum"],
                    "payment_10_term" => $_POST["payment_10_term"], "payment_10_sum" => $_POST["payment_10_sum"],
                    "payment_11_term" => $_POST["payment_11_term"], "payment_11_sum" => $_POST["payment_11_sum"],
                    "payment_12_term" => $_POST["payment_12_term"], "payment_12_sum" => $_POST["payment_12_sum"],
                    "payment_13_term" => $_POST["payment_13_term"], "payment_13_sum" => $_POST["payment_13_sum"],
                    "payment_14_term" => $_POST["payment_14_term"], "payment_14_sum" => $_POST["payment_14_sum"],
                    "payment_15_term" => $_POST["payment_15_term"], "payment_15_sum" => $_POST["payment_15_sum"],
                    "cost" => $_POST["cost"]
            );

    шлакоблок кода

    SuperChel, 24 Февраля 2012

    Комментарии (6)
  5. PHP / Говнокод #9534

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    ...
    </tr>
    </tbody>
    <?  if($color == "#ffffff") 
              $color = "#ffffff"; 
          else 
              $color = "#ffffff";  
    ?>
    </table>

    Гений блин... Правда так и не понятно что хотелось этим сказать...

    vahminator, 24 Февраля 2012

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

    −151

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Процедура ВводНаОсновании(ДокОснование) 
        // .....
        ДатаДок=РабочаяДата();
       // .....
    КонецПроцедуры

    Типовая торговля для Украины.
    Зачем то явно указывается рабочая дата. Причём ровно один раз.

    Xbrut, 24 Февраля 2012

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

    −146

    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
    Процедура ОбработкаНоменклатуры()
        
    НомерЛистаТипы = 1;
    Попытка ExcelТипы = СоздатьОбъект("Excel.Application");
     ФайлДанныхТипы = ExcelТипы.Workbooks.Open(НазваниеФайла);        
    Исключение
    КонецПопытки;
    //Лист = ФайлДанныхТипы.WorkSheets(НазваниеФайла);
     
    ЗагрузкаТипы = ФайлДанныхТипы.Worksheets(НомерЛистаТипы).UsedRange;    
    //КоличествоСтрокЭкселеТипы = Лист.Rows.Count;    
     
    КоличествоСтрокЭкселеТипы = ФайлДанныхТипы.Worksheets(НомерЛистаТипы).UsedRange.Rows.Count;
    ExcelТипы.Sheets(НомерЛистаТипы).Select();    
    
    Спр2 = СоздатьОбъект("Справочник.Номенклатура");
    СпрВидНом = СоздатьОбъект("Справочник.ВидыНоменклатуры");
    СпрНДС = СоздатьОбъект("Справочник.СтавкиНДС");
    СпрНП = СоздатьОбъект("Справочник.СтавкиНП");
    СпрЕд = СоздатьОбъект("Справочник.ЕдиницыИзмерений");
    
    Для СтрТипы = НачСтр+1 По КонСтр Цикл      
        
    Спр = СоздатьОбъект("Справочник.Номенклатура");
    Если Спр.НайтиПоНаименованию(Строка(СокрЛП(ExcelТипы.Cells(СтрТипы,1).Value))) =  1 Тогда
        Сообщить("Номенклатура найдена");
    Если ВидыЦен = 1 Тогда
        Спр.Себестоимость = Строка(СокрЛП(ExcelТипы.Cells(СтрТипы,4).Value));
    ИначеЕсли ВидыЦен = 2 Тогда
        Спр.Цена = Строка(СокрЛП(ExcelТипы.Cells(СтрТипы,4).Value));
    КонецЕсли;
    Спр.Записать(); 
    Иначе
    Спр.Новый(); 
    Спр.ИспользоватьДату('01.11.2011');
    Если Спр2.НайтиПоКоду("Сй111")=1 Тогда
    Спр.Родитель =Спр2.ТекущийЭлемент(); 
    Конецесли;
    Спр.Наименование = Строка(СокрЛП(ExcelТипы.Cells(СтрТипы,1).Value));  
    Сообщить("Создается номенклатура" + Спр.Наименование);
    Спр.ТипТовара = Перечисление.ТипыТоваров.Собственный; 
    Если СпрВидНом.НайтиПоНаименованию("Товар")=1 Тогда
    Спр.ВидНоменклатуры = СпрВидНом.ТекущийЭлемент();
    КонецЕсли;
    Спр.ПолнНаименование = Спр.Наименование;
    Если ВидыЦен = 1 Тогда
        Спр.Себестоимость = Строка(СокрЛП(ExcelТипы.Cells(СтрТипы,4).Value));
    ИначеЕсли ВидыЦен = 2 Тогда
        Спр.Цена = Строка(СокрЛП(ExcelТипы.Cells(СтрТипы,4).Value));
    КонецЕсли;
    Спр.СтранаПроисхожд = 1;   
    Если СпрНДС.НайтиПоКоду("3")=1 Тогда
    Спр.СтавкаНДС = СпрНДС.ТекущийЭлемент(); 
    КонецЕсли;
    Если СпрНП.НайтиПоКоду("1")=1 тогда
    Спр.СтавкаНП = СпрНП.ТекущийЭлемент(); 
    КонецЕсли;        
    Если СпрЕд.НайтиПоНаименованию("шт")=1 Тогда
    Спр.ЕдиницаИзмерения = СпрЕд.ТекущийЭлемент(); 
    КонецЕсли;
    Спр.Записать();
    КонецЕсли;     
    
    КонецЦикла;
    
    КонецПроцедуры

    В бух 7.7 нужно было загрузить определенный данные из экселя. С 7.7 не работаю - начал сочинять. В начале писал по аналогии с 8.х:
    Спр.СтавкаНДС = СпрНДС.НайтиПоКоду("3") и т.д.
    Потом на инфостарте и мисте подсказали как правильно сделать и посоветовали создать здесь эту запись)

    ErrorEd88, 24 Февраля 2012

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

    +155

    1. 1
    2. 2
    3. 3
    $pathToAction = str_replace("\\", "/", $pathToAction);
    while (substr($pathToAction, strlen($pathToAction) - 1, 1) == "/")
        $pathToAction = substr($pathToAction, 0, strlen($pathToAction) - 1);

    nikita2206, 24 Февраля 2012

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

    +82

    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
    private static final String QUERY = 
            new StringBuffer("SELECT p.id FROM policysummary p ") 
                .append(" WHERE p.currentRevisionInd     = 1 ") 
                .append("AND p.policyStatusCd          IN ('issued') ") 
                .append("AND p.timedPolicyStatusCd     IN ('inForce') ") 
                .append("AND p.txType                  IN ('policy','renewal','endorsement','reinstatement') ") 
                .append("AND p.expiration <= :requestDate ") 
                .append("AND :requestDate <= (p.expiration + :requestTo) ") 
                .append("AND NOT EXISTS ") 
                .append("  (SELECT prs.id ") 
                .append("  FROM PolicyReportStatus prs ") 
                .append("  WHERE prs.policyId  = p.id ") 
                .append("  AND prs.mvrOrderDt IS NOT NULL ") 
                .append("  )") 
                .toString();

    Недавно выдавили заграничные коллеги

    roman-kashitsyn, 24 Февраля 2012

    Комментарии (27)
  10. Куча / Говнокод #9529

    +120

    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
    Пришёл крешлог нашего приложения от пользователя
    
    Error Message:
    Segmentation fault
    
    Backtrace:
    
    <someapp>:0:in `0x00076d9f ht_handle_signal + 94'
    libsystem_c.dylib:1:in `0x37cb9539 _sigtramp + 48'
    JavaScriptCore:2:in `0x362d7aef WTFReportBacktrace + 146'
    JavaScriptCore:3:in `0x3621d173 _ZN3WTF12_GLOBAL__N_125ARC4RandomNumberGenerator12stirIfNeededEv + 26'
    JavaScriptCore:4:in `0x3621d0b3 _ZN3WTF29cryptographicallyRandomNumberEv + 102'
    JavaScriptCore:5:in `0x36227991 _ZN3WTF12randomNumberEv + 8'
    WebCore:6:in `0x32c3104b _ZN7WebCore17JSDOMGlobalObjectC2ERN3JSC12JSGlobalDataEPNS1_9StructureEN3WTF10PassRefPtrINS_15DOMWrapperWorldEEEPNS1_8JSObjectE + 138'
    <...>
    
    Внимательно смотрим лог, идём по ссылке
    http://trac.webkit.org/browser/releases/Apple/Safari%205.1/JavaScriptCore/wtf/Assertions.h
    и впечатляемся названиями переменных
    Краш, кстати, в генераторе случайных чисел, судя по логу...

    krypt, 24 Февраля 2012

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