1. Лучший говнокод

    В номинации:
    За время:
  2. 1C / Говнокод #28173

    −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
    Функция ПолучитьСеб (Номенклатура,ДатаОстатков) Экспорт
    		
    		Запрос = Новый Запрос;
    		Запрос.Текст = 
    		"ВЫБРАТЬ ПЕРВЫЕ 1
    		|	УчетПартийОстатки.Номенклатура,
    		|	УчетПартийОстатки.Партия КАК Партия,
    		|	УчетПартийОстатки.СуммаБезНДСОстаток / УчетПартийОстатки.КоличествоОстаток КАК бухСС
    		|ИЗ
    		|	РегистрНакопления.УчетПартий.Остатки(&ДатаОстатков, Номенклатура В (&Номенклатура)) КАК УчетПартийОстатки
    		|		ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииНоменклатуры.Остатки(&ДатаОстатков, Номенклатура В (&Номенклатура)) КАК ПартииНоменклатурыОстатки
    		|		ПО УчетПартийОстатки.Характеристика = ПартииНоменклатурыОстатки.Характеристика
    		|			И УчетПартийОстатки.МестоХранения = ПартииНоменклатурыОстатки.МестоХранения
    		|			И УчетПартийОстатки.Статус = ПартииНоменклатурыОстатки.Статус
    		|			И УчетПартийОстатки.Номенклатура = ПартииНоменклатурыОстатки.Номенклатура
    		|			И УчетПартийОстатки.Партия = ПартииНоменклатурыОстатки.Партия
    		|ГДЕ
    		|	УчетПартийОстатки.КоличествоОстаток > 0
    		|
    		|УПОРЯДОЧИТЬ ПО
    		|	Партия";
    		
    		Запрос.УстановитьПараметр("ДатаОстатков", ДатаОстатков);
    		Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    		
    		РезультатЗапроса = Запрос.Выполнить();
    		
    		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    		
    		Если ВыборкаДетальныеЗаписи.Следующий() Тогда
    			Возврат ВыборкаДетальныеЗаписи.бухсс;
    		КонецЕсли;
    		
    	КонецФункции

    Нашёл сие поделие в базе одного клиента, придраться хочется ко всему, начиная с лютого нэйминга - имя функции ПолучитьСеб(), не намного лучше чем Функция1(), имя переменной в запросе бухСС тоже так себе.
    Задача функции вернуть себестоимость единицы товара, при этом число она возвращает только если в запросе что-то есть, понятно что в остальных случаях вернет Неопределено, но себестоимость это всегда число, никаких Неопределено быть не должно.
    Если посмотреть текст запроса, то видно, что поля выборки на 100% беруться из одной таблицы, зачем там ещё одну прилепили, да ещё и с полным соединением - теряюсь в догадках.
    Упорядочивание по полю Партия вообще смысла не имеет, если уж речь идёт о получении себестоимости, то скорей автор хотел получить её из первой партии, что косвенно подвтерждается выражением "ПЕРВЫЕ 1", но дело в том, что упорядочивание по ссылке (Партия - это элемент справочника Партии) не имеет никакой привязки к дате, т.е. нужно было писать так: "Упорядочить По Партия.ДатаПартии".
    Здесь не видно, но функция вызывается только в двух местах модуля и всегда с конкретным значением номенклатуры, т.е. условие виртуальной таблицы может быть оптимизировано до "Номенклатура = &Номенклатура".
    Ну и на последок - в данном случае полное соединение конечно нужно ликвидировать, но если бы оно действительно было нужно, то виртуальные таблицы не стоит связывать между собой, предварительно их нужно помещать во временные таблицы и индексировать по полям условий соединения.

    VladC, 17 Мая 2022

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

    +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
    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
    $ss_n = 0;
    			$ss_nf = 0;
    			$ss_f = 0;
    			$ss_n_pl = 0;
    			$ss_nf_pl = 0;
    			$ss_f_pl = 0;
    			$ids_count = count($ids);
    		for ($i=0;$i < $ids_count;$i++) {
    			$key = $w_dates[$z]."|1|".$ids[$i];
    			$ss_n += $w_n_s[$key]*1;
    			$ss_nf += $w_nf_s[$key]*1;
    			$ss_f += $w_f_s[$key]*1;
    			$key = $w_dates[$z]."|2|".$ids[$i];
    			$ss_n += $w_n_s[$key]*1;
    			$ss_nf += $w_nf_s[$key]*1;
    			$ss_f += $w_f_s[$key]*1;
    			$key = $w_dates[$z]."|3|".$ids[$i];
    			$ss_n += $w_n_s[$key]*1;
    			$ss_nf += $w_nf_s[$key]*1;
    			$ss_f += $w_f_s[$key]*1;
    		}
    		$ids_count = count($ids);
    		for ($i=0;$i < $ids_count;$i++) {
    			$key = $w_dates[$z]."|1|".$ids[$i];
    			$ss_n_pl = $ss_n_pl + $w_n_s_pl[$key]*1;
    			$ss_nf_pl = $ss_nf_pl + $w_nf_s_pl[$key]*1;
    			$ss_f_pl = $ss_f_pl + $w_f_s_pl[$key]*1;
    			$key = $w_dates[$z]."|2|".$ids[$i];
    			$ss_n_pl = $ss_n_pl + $w_n_s_pl[$key]*1;
    			$ss_nf_pl = $ss_nf_pl + $w_nf_s_pl[$key]*1;
    			$ss_f_pl = $ss_f_pl + $w_f_s_pl[$key]*1;
    			$key = $w_dates[$z]."|3|".$ids[$i];
    			$ss_n_pl = $ss_n_pl + $w_n_s_pl[$key]*1;
    			$ss_nf_pl = $ss_nf_pl + $w_nf_s_pl[$key]*1;
    			$ss_f_pl = $ss_f_pl + $w_f_s_pl[$key]*1;
    		}
    
    		echo "<td class='Field' rowspan='3' style='vertical-align: middle;'><b>".OutNF($ss_n,$ss_nf,$ss_f)."</b></td>\n";
    		echo "<td class='Field' rowspan='3' style='vertical-align: middle;'><b style='color:#aa0000;'>".OutNF($ss_n_pl,$ss_nf_pl,$ss_f_pl)."</b></td>\n";
    
    		echo "</tr><tr>";
    
    		////////////////////////////////////////////////////////////
    		echo "<td class='Field' width='40' style='vertical-align: middle;'><b>II</b></td>\n";
    			$s_n = 0;
    			$s_nf = 0;
    			$s_f = 0;
    			$s_n_pl = 0;
    			$s_nf_pl = 0;
    			$s_f_pl = 0;
    		for ($i=0;$i < count($ids);$i++) {
    			$key = $w_dates[$z]."|2|".$ids[$i];
    			$s_n = $s_n + $w_n_s[$key]*1;
    			$s_nf = $s_nf + $w_nf_s[$key]*1;
    			$s_f = $s_f + $w_f_s[$key]*1;
    			$s_n_pl = $s_n_pl + $w_n_s_pl[$key]*1;
    			$s_nf_pl = $s_nf_pl + $w_nf_s_pl[$key]*1;
    			$s_f_pl = $s_f_pl + $w_f_s_pl[$key]*1;
    			if ($edti_stat[$key]==1){
    				echo "<td class='Field'>".OutNF($w_n_s[$key],$w_nf_s[$key],$w_f_s[$key])."</td>\n";
    			}
    			if ($edti_stat[$key]==0){
    				$link_dat = explode("|", $key);
    				$link_dat2 = $link_dat[0];
    				$link_dat3 = $link_dat[1];
    				echo "<td class='Field'><a target='_bland' href='index.php?do=show&formid=64&p0=".$link_dat2."&p1=".$link_dat3."'><b style='color:#aa0000;'>".OutNF($w_n_s_pl[$key],$w_nf_s_pl[$key],$w_f_s_pl[$key])."</b></a></td>\n";
    			}
    		}
    		echo "<td class='Field'></td>\n";
    		echo "<td class='Field'><b>".OutNF($s_n,$s_nf,$s_f)."</b></td>\n";
    		echo "<td class='Field'></td>\n";
    		echo "<td class='Field'></td>\n";
    		echo "<td class='Field'><b style='color:#aa0000;'>".OutNF($s_n_pl,$s_nf_pl,$s_f_pl)."</b></td>\n";
    		echo "<td class='Field'></td>\n";
    		////////////////////////////////////////////////////////////

    kib0rg, 22 Апреля 2022

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

    0

    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
    if ($arr_tbl_1[$key_1] !== $cur_vid){
    		$cur_vid_key = $key_1;
    		$cur_vid_w = $arr_tbl_1[$key_1];
    		$cur_v_ind = $cur_v_ind + 1;
    		while ($arr_tbl_1[$cur_vid_key] == $cur_vid_w){
    			$sum_cur_v_6 += (float)$arr_tbl_6[$cur_vid_key];
    			$sum_cur_v_7 += (float)$arr_tbl_7[$cur_vid_key];
    			$sum_cur_v_10 += (float)$arr_tbl_10[$cur_vid_key];
    			$cur_vid_key += 1;
    		}
    		if ($sum_cur_v_6==0) { $sum_cur_v_6_0 = 1;}else{ $sum_cur_v_6_0 = $sum_cur_v_6;}
    		if ($sum_cur_v_7==0) { $sum_cur_v_7_0 = 1;}else{ $sum_cur_v_7_0 = $sum_cur_v_7;}
    		if (strlen(substr(strstr($sum_cur_v_6, "."), 1))==0) { $tbl_1_6 = $sum_cur_v_6.".00";}
    		if (strlen(substr(strstr($sum_cur_v_6, "."), 1))==1) { $tbl_1_6 = $sum_cur_v_6."0";}
    		if (strlen(substr(strstr($sum_cur_v_6, "."), 1))==2) { $tbl_1_6 = $sum_cur_v_6;}
    		if (strlen(substr(strstr($sum_cur_v_6, "."), 1))>2) { $tbl_1_6 = number_format($sum_cur_v_6, 2, '.', '');}
    		if (strlen(substr(strstr($sum_cur_v_7, "."), 1))==0) { $tbl_1_7 = $sum_cur_v_7.".00";}
    		if (strlen(substr(strstr($sum_cur_v_7, "."), 1))==1) { $tbl_1_7 = $sum_cur_v_7."0";}
    		if (strlen(substr(strstr($sum_cur_v_7, "."), 1))==2) { $tbl_1_7 = $sum_cur_v_7;}
    		if (strlen(substr(strstr($sum_cur_v_7, "."), 1))>2) { $tbl_1_7 = number_format($sum_cur_v_7, 2, '.', '');}
    		if (strlen(substr(strstr(($sum_cur_v_6-$sum_cur_v_7), "."), 1))==0) { $tbl_1_8 = ($sum_cur_v_6-$sum_cur_v_7).".00";}
    		if (strlen(substr(strstr(($sum_cur_v_6-$sum_cur_v_7), "."), 1))==1) { $tbl_1_8 = ($sum_cur_v_6-$sum_cur_v_7)."0";}
    		if (strlen(substr(strstr(($sum_cur_v_6-$sum_cur_v_7), "."), 1))==2) { $tbl_1_8 = ($sum_cur_v_6-$sum_cur_v_7);}
    		if (strlen(substr(strstr(($sum_cur_v_6-$sum_cur_v_7), "."), 1))>2) { $tbl_1_8 = number_format(($sum_cur_v_6-$sum_cur_v_7), 2, '.', '');}
    		if (strlen(substr(strstr(($sum_cur_v_7/$sum_cur_v_6_0*100), "."), 1))==0) { $tbl_1_9 = ($sum_cur_v_7/$sum_cur_v_6_0*100).".00";}
    		if (strlen(substr(strstr(($sum_cur_v_7/$sum_cur_v_6_0*100), "."), 1))==1) { $tbl_1_9 = ($sum_cur_v_7/$sum_cur_v_6_0*100)."0";}
    		if (strlen(substr(strstr(($sum_cur_v_7/$sum_cur_v_6_0*100), "."), 1))==2) { $tbl_1_9 = ($sum_cur_v_7/$sum_cur_v_6_0*100);}
    		if (strlen(substr(strstr(($sum_cur_v_7/$sum_cur_v_6_0*100), "."), 1))>2) { $tbl_1_9 = number_format(($sum_cur_v_7/$sum_cur_v_6_0*100), 2, '.', '');}
    		if (strlen(substr(strstr($sum_cur_v_10, "."), 1))==0) { $tbl_1_10 = $sum_cur_v_10.".00";}
    		if (strlen(substr(strstr($sum_cur_v_10, "."), 1))==1) { $tbl_1_10 = $sum_cur_v_10."0";}
    		if (strlen(substr(strstr($sum_cur_v_10, "."), 1))==2) { $tbl_1_10 = $sum_cur_v_10;}
    		if (strlen(substr(strstr($sum_cur_v_10, "."), 1))>2) { $tbl_1_10 = number_format($sum_cur_v_10, 2, '.', '');}
    		if (strlen(substr(strstr(($sum_cur_v_10/$sum_cur_v_7_0), "."), 1))==0) { $tbl_1_11 = ($sum_cur_v_10/$sum_cur_v_7_0).".00";}
    		if (strlen(substr(strstr(($sum_cur_v_10/$sum_cur_v_7_0), "."), 1))==1) { $tbl_1_11 = ($sum_cur_v_10/$sum_cur_v_7_0)."0";}
    		if (strlen(substr(strstr(($sum_cur_v_10/$sum_cur_v_7_0), "."), 1))==2) { $tbl_1_11 = ($sum_cur_v_10/$sum_cur_v_7_0);}
    		if (strlen(substr(strstr(($sum_cur_v_10/$sum_cur_v_7_0), "."), 1))>2) { $tbl_1_11 = number_format(($sum_cur_v_10/$sum_cur_v_7_0), 2, '.', '');}
    		echo "<tr>
    		<td class='field' style='background:#CBDEF4;' colspan='5'><b class='not_tr' name='arr_tbl_1_".$cur_v_ind."' style='cursor:pointer; border:1px solid #000; border-radius:6px;' onclick='show_tr_1(this.getAttribute(\"name\"), this.getAttribute(\"class\"), this);'> + </b><b class='not_tr' name='arr_tbl_1_".$cur_v_ind."' style='display:none; cursor:pointer; border:1px solid #000; border-radius:6px;' onclick='show_tr_2(this.getAttribute(\"name\"), this.getAttribute(\"class\"), this);'> -  </b> ".$arr_tbl_1[$key_1]."</td>
    		<td name='max_numb_6' class='field' style='text-align:right; background:#CBDEF4;'>".$tbl_1_6."</td>
    		<td name='max_numb_7' class='field' style='text-align:right; background:#CBDEF4;'>".$tbl_1_7."</td>
    		<td name='max_numb_8' class='field' style='text-align:right; background:#CBDEF4;'>".$tbl_1_8."</td>
    		<td name='max_numb_9' class='field' style='text-align:right; background:#CBDEF4;'>".$tbl_1_9."</td>
    		<td name='max_numb_10' class='field' style='text-align:right; background:#CBDEF4;'>".$tbl_1_10."</td>
    		<td name='max_numb_11' class='field' style='text-align:right; background:#CBDEF4;'>".$tbl_1_11."</td>
    		</tr>";
    		$itog_sum_6 += $sum_cur_v_6;
    		$itog_sum_7 += $sum_cur_v_7;
    		$itog_sum_10 += $sum_cur_v_10;
    		
    		$tbl_1_6 = "";
    		$tbl_1_7 = "";
    		$tbl_1_8 = "";
    		$tbl_1_9 = "";
    		$tbl_1_10 = "";
    		$tbl_1_11 = "";
    		$sum_cur_v_6 = 0;
    		$sum_cur_v_7 = 0;
    		$sum_cur_v_10 = 0;
    	}

    kib0rg, 22 Апреля 2022

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

    0

    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
    <?php
    public function submit()
    {
    	$requestUri = 'http://127.0.0.1:8000/test/hs/Services/GetShedule';
    	$response = $this->doPostCall($requestUri . '?' . $this->prepareParams(), null);
    	$temp_str = json_encode(mb_convert_encoding($response, 'UTF-8'));
    	$temp_str = str_replace('\ufeff', '', $temp_str);
    	$temp_str = str_replace('\r', '', $temp_str);
    	$temp_str = str_replace('\n', '', $temp_str);
    	$temp_str = str_replace('\"', '"', $temp_str);
    	$temp_str = mb_strcut($temp_str, 1, -1);
    	$temp_arr = json_decode($temp_str, true);
    
    	$post_main_data = [];
    	$post_sub_data = [];
    	
    	foreach($temp_arr as $main_unit_key => $main_unit_value) {
    		foreach($main_unit_value as $main_unit_feature_key => $main_unit_feature_value) {
    			foreach ($main_unit_feature_value as $sub_unit_key => $sub_unit_value) {
    				foreach($sub_unit_value as $sub_unit_feature_key => $sub_unit_feature_value) {
    					unset($sub_unit_value['Расписание']);
    					$post_sub_data[$main_unit_key][$main_unit_feature_key][$sub_unit_key] = $sub_unit_value;
    				}
    			}
    		}
    	}
    
    	$raw_data = $temp_arr;
    	$filter = array('Посты');
    	$raw_data_length = count($raw_data);
    	for ($row = 0; $row < $raw_data_length; $row++) {
    		$post_main_data[] = array_diff_key($raw_data[$row], array_flip($filter));
    	}
    
    	foreach($post_main_data as $pmd_key => $pmd_value) {
    		$post_main_data[$pmd_key][key($post_sub_data[$pmd_key])] = array_values(array_values($post_sub_data[$pmd_key])[0]);
    	}
    
    	header_remove();
    	header("Content-Type: application/json");
    	http_response_code(200);
    	exit();
    }
    ?>

    JohnDoe, 04 Апреля 2022

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

    0

    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
    procedure TF_dvij.rg_sortClick(Sender: TObject);
    var k :Integer;
        s,str1,str2 :string;
        fl :boolean;
    begin
    if G.Columns[9].Visible then
    begin
      fl := Q_dvij.Active ;
      with Q_dvij do
      begin
        if fl then k := RecNo;
        if rg_sort.ItemIndex=0 then s:='order by obd,gr,exped,grot'
        else
        if rg_sort.ItemIndex=1 then s:='order by exped,gr,obd,grot'
        else
        if rg_sort.ItemIndex=2 then s:='order by gr,vp,exped,obd,grot'
        else
        if rg_sort.ItemIndex=3 then s:='order by id_korr,exped,obd,gr,grot'
        else
        if rg_sort.ItemIndex=4 then s:='order by grot,gr,exped,obd'
        else
          s:='order by strn,obd,gr,exped,grot';
          
        if rg_sort.ItemIndex=3 then
          begin
            str1 := 'select vp, id_korr,' ;           //100
            str2 := 'group by 1,2,3,4,5,6,7,8'          //192
          end
        else
          begin
            str1 := 'select vp, max(id_korr) as id_korr,' ;
            str2 := 'group by 1,3,4,5,6,7,8'
          end  ;
    
        Active:=false;
        SQL.Delete(100);
        SQL.Insert(100, str1 );
        SQL.Delete(192);
        SQL.Insert(192, str2 );
        SQL.Delete(262);
        SQL.Insert(262, s);
        Active:= fl;
        if fl then RecNo := k;
        G.Refresh;
      end;
    end;

    сортировОЧКА

    Baiumka, 29 Марта 2022

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

    0

    1. 1
    console.log('Hello from GovnoKod!');

    aivanov-ru, 28 Марта 2022

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

    0

    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
    Писать однострочный код это плохо? А если в одном файле совместить серверную и клиентскую часть? Пример аддона из Garry's Mod https://steamcommunity.com/sharedfiles/filedetails/?id=2754127067
    AddCSLua("cl_init.lua")
    if istable( xdestore ) then if xdestore.Menu then xdestore.Menu:Remove() end  if xdestore.Unlock then xdestore.Unlock:Remove() end
    if xdestore.Namer then xdestore.Namer:Remove() end  if xdestore.Lock then xdestore.Lock:Remove() end end xdestore = {} xdestore.Players = {}
    
    	util.AddNetworkString( "XDEST_MenuS2COpen" ) util.AddNetworkString( "XDEST_MenuS2CClose" ) util.AddNetworkString( "XDEST_SendRes" )
    	util.AddNetworkString( "XDEST_MenuS2CUpdate" ) util.AddNetworkString( "XDEST_MenuS2CResult" ) util.AddNetworkString( "XDEST_MenuC2SClose" )
    	util.AddNetworkString( "XDEST_LockReset" ) util.AddNetworkString( "XDEST_MenuC2SAction" ) util.AddNetworkString( "XDEST_SendSnd" ) util.AddNetworkString( "XDEST_SendHint" )
    
    xdestore.AmmoMdl = {
    	[ "AR2" ] = "models/items/combine_rifle_cartridge01.mdl",
    	[ "AR2AltFire" ] = "models/items/combine_rifle_ammo01.mdl",
    	[ "Pistol" ] = "models/items/boxsrounds.mdl",
    	[ "SMG1" ] = "models/items/boxmrounds.mdl",
    	[ "357" ] = "models/items/357ammo.mdl",
    	[ "XBowBolt" ] = "models/items/crossbowrounds.mdl",
    	[ "Buckshot" ] = "models/items/boxbuckshot.mdl",
    	[ "RPG_Round" ] = "models/weapons/w_missile_closed.mdl",
    	[ "SMG1_Grenade" ] = "models/items/ar2_grenade.mdl",
    	[ "Grenade" ] = "models/items/grenadeammo.mdl",
    	[ "slam" ] = "models/weapons/w_slam.mdl"
    }
    xdestore.NonSWEP = {
    	[ "weapon_357" ] = "models/weapons/w_357.mdl",
    	[ "weapon_pistol" ] = "models/weapons/w_pistol.mdl",
    	[ "weapon_bugbait" ] = "models/weapons/w_bugbait.mdl",
    	[ "weapon_crossbow" ] = "models/weapons/w_crossbow.mdl",
    	[ "weapon_crowbar" ] = "models/weapons/w_crowbar.mdl",
    	[ "weapon_frag" ] = "models/weapons/w_grenade.mdl",
    	[ "weapon_physcannon" ] = "models/weapons/w_physics.mdl",
    	[ "weapon_ar2" ] = "models/weapons/w_irifle.mdl",
    	[ "weapon_rpg" ] = "models/weapons/w_rocket_launcher.mdl",
    	[ "weapon_slam" ] = "models/weapons/w_slam.mdl",
    	[ "weapon_shotgun" ] = "models/weapons/w_shotgun.mdl",
    	[ "weapon_smg1" ] = "models/weapons/w_smg1.mdl",
    	[ "weapon_stunstick" ] = "models/weapons/w_stunbaton.mdl",
    	[ "weapon_alyxgun" ] = "models/weapons/w_alyx_gun.mdl",
    	[ "weapon_annabelle" ] = "models/weapons/w_annabelle.mdl",
    	[ "weapon_physgun" ] = "models/weapons/w_physics.mdl"
    }
    xdestore.ValidAct = { [ "Take" ] = true, [ "Move" ] = true, [ "Store" ] = true, [ "Rename" ] = true, [ "TakeAll" ] = true, [ "Split" ] = true, [ "Lock" ] = true, [ "Unlock" ] = true }
    xdestore.ActToNum = { "Take", "Move", "Store", "TakeAll", "Rename", "Split", "Lock", "Unlock" }
    xdestore.LockType = { "Simple", "Complex", "Question", "Key Weapon", "Group", "Personal" }
    net.Receive( "XDEST_MenuS2COpen", function() local int = net.ReadFloat()  local tab = net.ReadString()  local con = net.ReadString()
    local ent = net.ReadEntity() xdestore:OpenMenu( ply, int, tab, con, ent ) end )
    net.Receive( "XDEST_MenuS2CClose", function() if xdestore.Menu then xdestore.Menu:Remove() end  if xdestore.Namer then xdestore.Namer:Remove() end
    if xdestore.Lock then xdestore.Lock:Remove() end  if xdestore.Unlock then xdestore.Unlock:Remove() end end )
    net.Receive( "XDEST_MenuS2CUpdate", function()
    	local tab = util.JSONToTable( net.ReadString() )  local con = util.JSONToTable( net.ReadString() )  local aa = net.ReadBool()  local bb = net.ReadBool()
    	if IsValid( xdestore.Menu ) then xdestore.Menu.V_DataStat = tab  xdestore.Menu.V_DataCont = con  xdestore.Menu:UpdateItems( aa, bb ) end
    end )
    net.Receive( "XDEST_MenuC2SClose", function( len, ply ) if len > 32 or !IsValid( ply ) then return end
    	local int = net.ReadFloat() if IsValid( ply ) and ply:IsPlayer() and !ply:IsBot() and isnumber( int ) then xdestore:CloseMenu( ply, int ) end
    end )
    net.Receive( "XDEST_MenuC2SAction", function( len, ply ) if len >= 4096 or !IsValid( ply ) then return end
    	if isnumber( ply.XDEST_Cool ) and ply.XDEST_Cool > CurTime() then xdestore:SendHint( ply, "You are doing too fast!", "resource/warning.wav", 0 ) end
    	ply.XDEST_Cool = CurTime()+0.25  if !IsValid( ply:GetNWEntity( "XDEST_Ent" ) ) or ply:GetNWEntity( "XDEST_Ent" ) == Entity( 0 ) then return end local self = ply:GetNWEntity( "XDEST_Ent" )
    	if ( ( !isstring( self.Base ) or self.Base != "xdest_base" ) and self:GetClass() != "xdest_base" and self:GetClass() != "weapon_xdest" )
    	or !isstring( self.XDEST_Data ) or !isstring( self.XDEST_Contain ) then return end
    	local act = net.ReadFloat()  local str = net.ReadString() if !isnumber( act ) then return end act = math.Round( act )
    	if !isstring( str ) then str = "_" end if isstring( xdestore.ActToNum[ act ] ) then act = xdestore.ActToNum[ act ] else return end  xdestore:SlotAction( ply, self, act, str )
    end )
    net.Receive( "XDEST_MenuS2CResult", function() local ply = LocalPlayer() local yes = net.ReadBool()  if IsValid( xdestore.Unlock ) then xdestore.Unlock:XDE_Result( yes ) end end )
    net.Receive( "XDEST_LockReset", function() local ent = net.ReadEntity() if IsValid( ent ) and ent != Entity( 0 ) then ent.XDE_Pass = nil end end )
    net.Receive( "XDEST_SendSnd", function() local str = net.ReadString() if !isstring( str ) or str == "!V" then return end surface.PlaySound( str ) end )
    net.Receive( "XDEST_SendRes", function() local str = net.ReadString()  local ply = LocalPlayer()  local ent = net.ReadEntity() if !IsValid( ent )
    or ent == Entity( 0 ) or !isstring( str ) or str == "" then return end if !isstring( ent.XDE_Pass ) then xdestore:SendHint( nil, "Access granted.", "", 0 ) end ent.XDE_Pass = str end )
    net.Receive( "XDEST_SendHint", function() local txt = net.ReadString()  local snd = net.ReadString()  local typ = net.ReadFloat()  xdestore:SendHint( nil, txt, snd, typ ) end )

    Ivan_Evlasiev, 28 Февраля 2022

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Процедура СоздаватьПКОПриИзменении(Элемент)
    	Если НЕ ЗаписыватьДокументы Тогда
    		ЗаписыватьДокументы = Истина;
    	КонецЕсли;
    КонецПроцедуры

    Нельзя так просто взять и не создавать документы.

    Patronize, 15 Февраля 2022

    Комментарии (1)
  10. Assembler / Говнокод #27992

    0

    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
    .org 80h
    data:
    	db "Hello, world!\n"
    	db 0h
    start:
    	mov %bp @data
    	; jmp @.exit ;
    	.loop:
    		mov %al [%si + %bp]
    		inc %si
    		cmp %al 0h
    		int 5h ;KOKOKO make me port-mapped io;
    		jnz @.loop
    	.exit:
    		int 0h
    
    
    32 31 44 41 54 41 3A 30 30 38 30 3B 53 54 41 52 
    54 3A 30 30 38 45 3B 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 48 65 6C 6C 6F 20 77 6F 72 
    6C 64 21 0A 00 02 06 80 00 03 0A 38 09 05 0C 0A
    00 00 0B 05 0F 92 00 0B 00

    добавил комментарии, теперь можно будет красиво рисовать фреймы (радуйтесь)

    digitalEugene, 04 Февраля 2022

    Комментарии (1)
  11. SQL / Говнокод #27940

    0

    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
    99. 99
    return QUERY
          with a as 
         (    
             with pr as 
             (
               select p.ss, p.sb, 
                 sum(sum_prih)  as sum_prih
               from   material.prihod_by_all_sklads_by_doc_period(dt_ostatki)  p               
               group by 1,2
             ),
              r AS
             (
               select p.ss, p.sb, 
                      sum(p.sum_by_cen)  as sum_rash
               from   material.rashod_by_all_sklads_by_doc_period(dt_ostatki)  p               
               group by 1,2
             ),
             os AS
             (  
                select o.ss, o.sb, 
           --     case  when trim(o.sb)='1150' then 'Запчастини ВКМ,ВПК1,ВПК2,ВПК3,сб. 1150'
          --            when trim(o.sb)='1050' then 'Запчастини ВКМ,ВПК1 сб. 1050' 
       --               when trim(o.sb)='1105' then 'Запчастини ВКМ,ВПК1,ВПК2,ВПК3,сб. 1105'
         --        else  o.name_sklad end as name_skl, 
                sum(o.sum_ost_doc)  as sum_ost_doc--,
               from material.ostatki_by_all_sklads(dt_ostatki) o
               left join material.sklad s  on (s.skladid = o.skladid) 
               group by 1,2
             ),
             topl AS
             (
            select o.ss, o.sb,
                  sum(o.ost_sum)   as sum_ost_doc,
                  sum(o.vos_sum)   as sum_vos,
                  sum(o.prih_sum)   as sum_prih,
                  sum(o.rash_sum)   as sum_rash
                  from material.ostatki_by_all_toplot(dt_ostatki) o 
                  group by 1,2  
             )
            select os.ss, os.sb,
                   os.sum_ost_doc,  
                   coalesce ( pr.sum_prih,0) as  sum_prih,
                    coalesce (r.sum_rash,0) as  sum_rash 
             from os 
             left join pr on (os.ss= pr.ss and os.sb= pr.sb ) 
             left join r on (os.ss= r.ss and os.sb= r.sb )   
            UNION
            select os.ss, os.sb,
                   os.sum_ost_doc,  
    --                os.sum_vos + os.sum_prih - os.sum_rash  as sum_ost_doc ,
                   os.sum_prih,
            --       os.sum_rash
    --               case when period_dt$>='2018.08.01'  then COALESCE( r.sum_rash,0) 
    --                else  os.sum_vos-os.sum_ost_doc + os.sum_prih end    as sum_rash --os.sum_rash END 
      --             r.sum_rash  
              os.sum_vos-os.sum_ost_doc + os.sum_prih
             
            from topl os left join r on (os.ss= r.ss and os.sb= r.sb )   
    /*      
            select o.ss, o.sb,
                  sum(o.ost_sum)   as sum_ost_doc,
                  sum(o.prih_sum)   as sum_prih,
                  sum(o.rash_sum)   as sum_rash
                  from material.ostatki_by_all_toplot(dt_ostatki) o  left JOIN r on (r.ss =o.ss and r.sb=o.sb)
                  group by 1,2  
      */            
       /*    UNION
           select  ob.ss, ob.sus,
                   '112'  as    depart_name,
                   '112',
                   sum(ob.ost_sum),  
                   sum(ob.pr_sum),
                   sum(ob.rm_sum)    
           
                 from  material.oborot_by_ss_112_by_sklads(period_dt, dt_ostatki)   ob           
                 group by 1,2,3,4  */
         ),
         b as
         (
          select bb.ss,bb.sb,bb.sisb_d,bb.sisb_k, bb.sdob, bb.skob from cont.bbz_sald_by_sb(y,m,'112')  bb where bb.sb = '0007'
          UNION
          select bb.ss,bb.sb,bb.sisb_d,bb.sisb_k, bb.sdob, bb.skob from cont.bbz_sald_by_sb(y,m,'153')  bb
          UNION
      --      select bb.ss,bb.sb,bb.sisb_d,bb.sisb_k, bb.sdob, bb.skob from cont.bbz_sald_by_sb(y,m,'152')  bb  
          select bb.ss,bb.sb,bb.sisb_d ,bb.sisb_k, bb.sdob, 0 from cont.bbz_sald_by_sb(y,m,'152')  bb
          UNION
          select bb.ss,bb.sb,bb.sisb_d,bb.sisb_k, bb.sdob, bb.skob from cont.bbz_sald_by_sb(y,m,'201')  bb
          UNION
          select bb.ss,bb.sb,bb.sisb_d,bb.sisb_k, bb.sdob, bb.skob from cont.bbz_sald_by_sb(y,m,'207')  bb 
          UNION
          select bb.ss,bb.sb,bb.sisb_d,bb.sisb_k, bb.sdob, bb.skob from cont.bbz_sald_by_sb(y,m,'209')  bb 
          UNION
          select bb.ss,bb.sb,bb.sisb_d,bb.sisb_k, bb.sdob, bb.skob from cont.bbz_sald_by_sb(y,m,'203')  bb 
          UNION
          select bb.ss,bb.sb,bb.sisb_d,bb.sisb_k, bb.sdob, bb.skob from cont.bbz_sald_by_sb(y,m,'221')  bb 
         -- UNION
         -- select bb.ss,bb.sb,bb.sisb_d,bb.sisb_k, bb.sdob, bb.skob from cont.bbz_sald_by_sb(y,m,'231')  bb 
         -- UNION
         -- select bb.ss,bb.sb,bb.sisb_d,bb.sisb_k, bb.sdob, bb.skob from cont.bbz_sald_by_sb(y,m,'232')  bb

    Весь запрос не влез...

    Baiumka, 10 Января 2022

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