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

    −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
    procedure setParameters(aq)
     спДекрет= Новый СписокЗначений;
     спДекрет.Добавить(Перечисления.СостоянияРаботникаОрганизации.ОтпускПоБеременностиИРодам);
     спДекрет.Добавить(Перечисления.СостоянияРаботникаОрганизации.ОтпускПоУходуЗаРебенком);
    	
    	
    	aq.setParameter("Дат",КонецДня(НачПериода));
    	aq.setParameter("Уволен",Перечисления.ПричиныИзмененияСостояния.Увольнение);
    	aq.setParameter("Оклад",Перечисления.СпособыРасчетов.Оклад);
    	aq.setParameter("МРП",Перечисления.СпособыРасчетов.КолМРП);
    	aq.setParameter("Сумма",Перечисления.СпособыРасчетов.Сумма);
    	aq.setParameter("Оклад",Перечисления.СпособыРасчетов.ПроцентОтОклада);
    	aq.setParameter("Доход",Перечисления.СпособыРасчетов.ПроцентОтДоходов);
    	aq.setParameter("ПодразделениеОрганизации",ПодразделениеОрганизации);
    	aq.setParameter("ФизЛицо",Работник);
    	aq.setParameter("Должность",Должность);
    	aq.setParameter("ВидЗанятости",ВидЗанятости);
    	aq.setParameter("ТарифныйРазряд",ТРазряд);
    	
    	aq.setParameter("ВРЭкология",ВРЭкология);
    	
    	//Декретники
    	aq.setParameter("Декрет",спДекрет);
    	//Состояние общее
    	aq.setParameter("Состояние",Состояние);
    	aq.setParameter("Сост",Состояние1);
    endprocedure
    
    procedure setБабло(Тз)
    	Тз.Колонки.Добавить("id",new ОписаниеТипов("Строка"));
    	Тз.Колонки.Добавить("Размер",new ОписаниеТипов("Число"));
    endProcedure
    
    ...
    	q=new Query;
    	q.Текст="                                            //--------------------------------------------бабло
    |Select  
    |	ПлановыеНачисленияРаботниковОрганизацийСрезПоследнихКон.Размер,
    |	ПлановыеНачисленияРаботниковОрганизацийСрезПоследнихКон.ФизЛицо.код id
    |from
    |	РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций.СрезПоследних(
    |			&Дат,
    |			ВидРасчета.ЯвляетсяОсновнымНачислением
    |				И Размер <> 0) КАК ПлановыеНачисленияРаботниковОрганизацийСрезПоследнихКон
    |";
    	
    	setParameters(q);
    	бабло=New ТаблицаЗначений;
    	setБабло(бабло);
    	rs=q.Выполнить().Выбрать();
    	while rs.next() do
    			s=бабло.Добавить();
       s.id=rs.id;
       s.Размер=rs.Размер;
    enddo;
     бабло.Индексы.Добавить("id"); 
    ...

    Форматирование текста оставил как есть. Автор: Жуков А.П.

    Danik, 13 Ноября 2012

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

    −123

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Запрос = Новый Запрос;
     Запрос.Текст = "какой-то там текст запроса с параметрами <Вариант> и <НеВариант>"
     
     Запрос.УстановитьПараметр("Вариант", ?(Вариант = Истина, Истина, Ложь));
     Запрос.УстановитьПараметр("НеВариант", ?(Вариант = Истина, Ложь, Истина));

    Упрощается все до ...("Вариант", Вариант) и ...("НеВариант", Не Вариант) (хотя два параметра, зависящие от одной переменной уже не ок)

    Теперь по офису на вопрос: "А можно ли упростить?" сразу летит в ответ сакральное "НЕ ВАРИАНТ!!!"

    nixel, 08 Ноября 2012

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

    −156

    1. 1
    2. 2
    3. 3
    Говнокод, выручай пишу быстро. Работаю дома, так же как и ты наверно, у нас есть модем мегафон 4G.
    Я не знал что там трафик не безлимитный. Сейчас мамка хочет сделать запрос сайтов, точнее уже начала смотреть.
    Я смотрел на порно и дрочил, что делать?

    serpinski, 04 Ноября 2012

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

    −126

    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
    1CClientBankExchange
    ВерсияФормата=1.01
    Кодировка=Windows
    Получатель=
    ДатаНачала=25.09.2012
    ДатаКонца=25.09.2012
    ...
    СекцияРасчСчет
    ...
    КонецРасчСчет
    СекцияДокумент=Платежное поручение
    ...
    КонецДокумента
    КонецФайла

    Формат файла: Стандарт обмена с системами "Клиент банка"
    http://v8.1c.ru/edi/edi_stnd/100/101.htm

    Пидорва изобрела ini-файлы. Но убило не это, а это:
    >Кодировка=Windows

    Centry, 24 Октября 2012

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

    −97

    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
    Функция Транслит(Имя)
        Рез = СокрЛП(Имя);
        Рез = СтрЗаменить(Рез,"а","a");
        Рез = СтрЗаменить(Рез,"б","b");
        Рез = СтрЗаменить(Рез,"в","v");
        Рез = СтрЗаменить(Рез,"г","g");
        Рез = СтрЗаменить(Рез,"д","d");
        Рез = СтрЗаменить(Рез,"е","e");
        Рез = СтрЗаменить(Рез,"ё","jo");
        Рез = СтрЗаменить(Рез,"ж","zh");
        Рез = СтрЗаменить(Рез,"з","z");
        Рез = СтрЗаменить(Рез,"и","i");
        Рез = СтрЗаменить(Рез,"й","jj");
        Рез = СтрЗаменить(Рез,"к","k");
        Рез = СтрЗаменить(Рез,"л","l");
        Рез = СтрЗаменить(Рез,"м","m");
        Рез = СтрЗаменить(Рез,"н","n");
        Рез = СтрЗаменить(Рез,"о","o");
        Рез = СтрЗаменить(Рез,"п","p");
        Рез = СтрЗаменить(Рез,"р","r");
        Рез = СтрЗаменить(Рез,"с","s");
        Рез = СтрЗаменить(Рез,"т","t");
        Рез = СтрЗаменить(Рез,"у","u");
        Рез = СтрЗаменить(Рез,"ф","f");
        Рез = СтрЗаменить(Рез,"х","h");
        Рез = СтрЗаменить(Рез,"ч","ch");
        Рез = СтрЗаменить(Рез,"ш","sh");
        Рез = СтрЗаменить(Рез,"щ","shh");
        Рез = СтрЗаменить(Рез,"ъ","");
        Рез = СтрЗаменить(Рез,"ь","");
        Рез = СтрЗаменить(Рез,"э","eh");
        Рез = СтрЗаменить(Рез,"ю","ju");
        Рез = СтрЗаменить(Рез,"ц","c");
        Рез = СтрЗаменить(Рез,"я","ja");
        Рез = СтрЗаменить(Рез,"ы","i");
        Рез = СтрЗаменить(Рез,"А","A");
        Рез = СтрЗаменить(Рез,"Б","B");
        Рез = СтрЗаменить(Рез,"В","V");
        Рез = СтрЗаменить(Рез,"Г","G");
        Рез = СтрЗаменить(Рез,"Д","D");
        Рез = СтрЗаменить(Рез,"Е","E");
        Рез = СтрЗаменить(Рез,"Ё","JO");
        Рез = СтрЗаменить(Рез,"Ж","ZH");
        Рез = СтрЗаменить(Рез,"З","Z");
        Рез = СтрЗаменить(Рез,"И","I");
        Рез = СтрЗаменить(Рез,"Й","JJ"); 
        Рез = СтрЗаменить(Рез,"К","K");
        Рез = СтрЗаменить(Рез,"Л","L");
        Рез = СтрЗаменить(Рез,"М","M");
        Рез = СтрЗаменить(Рез,"Н","N");
        Рез = СтрЗаменить(Рез,"О","O");
        Рез = СтрЗаменить(Рез,"П","P");
        Рез = СтрЗаменить(Рез,"Р","R");
        Рез = СтрЗаменить(Рез,"С","S");
        Рез = СтрЗаменить(Рез,"Т","T");
        Рез = СтрЗаменить(Рез,"У","U");
        Рез = СтрЗаменить(Рез,"Ф","F");
        Рез = СтрЗаменить(Рез,"Х","H");
        Рез = СтрЗаменить(Рез,"Ч","CH");
        Рез = СтрЗаменить(Рез,"Ш","SH");
        Рез = СтрЗаменить(Рез,"Щ","SHH");
        Рез = СтрЗаменить(Рез,"Ъ","");
        Рез = СтрЗаменить(Рез,"Ь","");
        Рез = СтрЗаменить(Рез,"Ы","");
        Рез = СтрЗаменить(Рез,"Ц","C");
        Рез = СтрЗаменить(Рез,"Э","EH");
        Рез = СтрЗаменить(Рез,"Ю","JU");
        Рез = СтрЗаменить(Рез,"Я","JA");
       
        Возврат(Рез);
    КонецФункции

    Суровая транслитерация... Я плакалъ

    jerokee, 16 Октября 2012

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

    −121

    1. 1
    НомСтрЗаказа = ПолучитьПустоеЗначение("Число");

    Нашел тут в загашниках при поддержке "чужого кода".
    Вот оказывается как надо присваивать переменной нулевое значение!

    jerokee, 11 Октября 2012

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

    −121

    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
    Функция СоздатьЗапрос(Текст) Экспорт
    	Запрос = Новый Запрос;
    	Запрос.Текст=Текст;
    	Возврат Запрос;
    КонецФункции
    Функция СоздатьМассив() Экспорт
    	Возврат Новый Массив;
    КонецФункции
    Функция СоздатьСоответствие() Экспорт
    	Возврат Новый Соответствие;
    КонецФункции
    Функция СоздатьСтруктуру() Экспорт
    	Возврат Новый Структура;
    КонецФункции
    Функция СоздатьСписокЗначений() Экспорт
    	Возврат Новый СписокЗначений;
    КонецФункции

    Вот такие вот функции (это естественно не все) от OLE-мастера: NewObject - не, не слышал.

    ilya2184, 10 Октября 2012

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

    −121

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

    Вот такая вот подписка при записи любых ссылок. 3 Если подряд? Логическое умножение - не, не слышал. Зато Записать() в подписке ПриЗаписи - слышал. Автор Хан Юрий Валентинович.

    ilya2184, 10 Октября 2012

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

    −117

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    ВЫБОР
        КОГДА ПродажиОбороты.Регистратор.Товары.СерияНоменклатуры.СрокГодности ЕСТЬ NULL 
                ИЛИ ПродажиОбороты.Регистратор.Товары.СерияНоменклатуры.СрокГодности < ДАТАВРЕМЯ(2000, 1, 1)
    
           ТОГДА ПродажиОбороты.Регистратор.Товары.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(Регистр1.ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(Регистр1.ДатаОкончания, ДЕНЬ)
       ИНАЧЕ ПродажиОбороты.Регистратор.Товары.СерияНоменклатуры.СрокГодности МЕЖДУ НАЧАЛОПЕРИОДА(Регистр1.ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(Регистр1.ДатаОкончания, ДЕНЬ)
    КОНЕЦ

    dmurdoc, 08 Октября 2012

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

    −123

    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
    Функция   СтрокаБезПробелов(sP,lenP= Неопределено) Экспорт
    	
    // убрать пробелы (на самом деле, символы 160) в строке sP
    // (после преобразования числа в cтроку)
    // если нужно - дописать пробелов спереди до длины lenP
    
     s_ = СтрЗаменить(Строка(sP),Символ(160),"");
     
     Если lenP>0 Тогда
          l_ = СтрДлина(s_);
    	  Если l_<lenP Тогда
    		   j = lenP-l_;
    		   Если j=1 Тогда
    			    s_ = " "+s_;
    		   Иначе	   
    		    Если j=2 Тогда
    			     s_ = "  "+s_;
    		    Иначе	   
    		     Если j=3 Тогда
    			      s_ = "   "+s_;
    		     Иначе	   
    		      Если j=4 Тогда
    			       s_ = "    "+s_;
    		      Иначе	   
    		       Если j=5 Тогда
    			        s_ = "     "+s_;
    		       Иначе	   
    		        Если j=6 Тогда
    			         s_ = "      "+s_;
    		        Иначе	   
    		         Если j=7 Тогда
    			          s_ = "       "+s_;
    		         Иначе	   
    		          Если j=8 Тогда
    			           s_ = "        "+s_;
    		          Иначе	   
                      КонецЕсли;
                     КонецЕсли;
                    КонецЕсли;
                   КонецЕсли;
                  КонецЕсли;
                 КонецЕсли;
                КонецЕсли;
               КонецЕсли;
          КонецЕсли;
     КонецЕсли;
      
     Возврат s_;
    КонецФункции

    Вот такая замена функции Формат нашлась в исходниках от одного из внедренцев.

    bytemdfab, 01 Октября 2012

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