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

    −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
    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
    КодТек = Каст(ID);
    
    Возвр = "{";
    
    ТекПользоваетель Контрагенты.НайтиПоКоду(КодТек);
    Если ТекПользователь = Контрагенты.ПустаяСсылка тогда
    		возврат 1;//Пользователь не найден
    конецЕсли;
    
    ТекЛев = Контрагенты.НайтиПоКоду(ТекПользователь.ЛеваяНога);
    
    Если не ТекЛев = Контрагенты.ПустаяСсылка тогда
    		Возвр=Возвр+"""cur_left"":{"+
    			"""id"":"""+ТекЛев.ID+""","+
    			"""last_name"":"""+ТекЛев.Фамилия+""","+
    			"""first_name"":"""+ТекЛев.Имя+""","+
    			"""middle_name"":"""+ТекЛев.Отчество+"""},";
    		
    		ТекЛевЛев = Контрагенты.НайтиПоКоду(ТекЛев.ЛеваяНога);
    
    		Если не ТекЛевЛев = Контрагенты.ПустаяСсылка тогда
    				Возвр=Возвр+"""cur_left_left"":{"+
    					"""id"":"""+ТекЛевЛев.ID+""","+
    					"""last_name"":"""+ТекЛевЛев.Фамилия+""","+
    					"""first_name"":"""+ТекЛевЛев.Имя+""","+
    					"""middle_name"":"""+ТекЛевЛев.Отчество+"""},";
    		конецЕсли;
    			
    		ТекЛевПрв = Контрагенты.НайтиПоКоду(ТекЛев.ПраваяНога);
    
    		Если не ТекЛевПрв = Контрагенты.ПустаяСсылка тогда
    				Возвр=Возвр+"""cur_left_right"":{"+
    					"""id"":"""+ТекЛевПрв.ID+""","+
    					"""last_name"":"""+ТекЛевПрв.Фамилия+""","+
    					"""first_name"":"""+ТекЛевПрв.Имя+""","+
    					"""middle_name"":"""+ТекЛевПрв.Отчество+"""},";
    		конецЕсли;
    конецЕсли;
    
    
    ТекПрв = Контрагенты.НайтиПоКоду(ТекПользователь.ПраваяНога);
    
    Если не ТекПрв = Контрагенты.ПустаяСсылка тогда
    		Возвр=Возвр+"""cur_right"":{"+
    			"""id"":"""+ТекПрв.ID+""","+
    			"""last_name"":"""+ТекПрв.Фамилия+""","+
    			"""first_name"":"""+ТекПрв.Имя+""","+
    			"""middle_name"":"""+ТекПрв.Отчество+"""},";
    		
    		ТекПрвЛев = Контрагенты.НайтиПоКоду(ТекПрв.ЛеваяНога);
    
    		Если не ТекПрвЛев = Контрагенты.ПустаяСсылка тогда
    				Возвр=Возвр+"""cur_right_left"":{"+
    					"""id"":"""+ТекПрвЛев.ID+""","+
    					"""last_name"":"""+ТекПрвЛев.Фамилия+""","+
    					"""first_name"":"""+ТекПрвЛев.Имя+""","+
    					"""middle_name"":"""+ТекПрвЛев.Отчество+"""},";
    		конецЕсли;
    			
    		ТекПрвПрв = Контрагенты.НайтиПоКоду(ТекПрв.ПраваяНога);
    
    		Если не ТекПрвПрв = Контрагенты.ПустаяСсылка тогда
    				Возвр=Возвр+"""cur_right_right"":{"+
    					"""id"":"""+ТекПрвПрв.ID+""","+
    					"""last_name"":"""+ТекПрвПрв.Фамилия+""","+
    					"""first_name"":"""+ТекПрвПрв.Имя+""","+
    					"""middle_name"":"""+ТекПрвПрв.Отчество+"""},";
    		конецЕсли;
    конецЕсли;
    
    
    ДлСтр = ДлинаСтроки(Возвр);
    
    Если ДлСтр=1 тогда 
    	возврат 2;//Ноги пусты
    иначе
    	Возрв = Лев(Возвр, ДлСтр-1)+"}";
    	возврат Возвр;
    конецЕсли;

    1С - хорошая среда. В этой среде очень просто и весело писать говнокод, причем с вполне серьезной мордой.

    Rijen, 05 Марта 2015

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

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

    Rijen, 05 Марта 2015

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

    −119

    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
    {""code"":"""+Строка(Результат.ID)+""","+
    """gender"":"""+Результат.Пол+""","+
    """dob"":"""+Результат.ДатаРождения+""","+
    """passport"":"""+Результат.ПаспортныеДанные+""","+
    """address"":"""+Результат.Адрес+""","+
    """phone"":"""+Результат.Телефон+""","+
    """skype"":"""+Результат.Skype+""","+
    """email"":"""+Результат.Email+""","+
    """last_name"":"""+Фамилия+""","+
    """first_name"":"""+Имя+""","+
    """middle_name"":"""+Отчество+""","+
    """ref_first_name"":"""+ИмяСпонсора+""","+
    """ref_last_name"":"""+ФамилияСпонсора+""","+
    """ref_middle_name"":"""+ОтчествоСпонсора+""","+
    """ref_id"":"""+Строка(Результат.РефералID)+""","+
    """money"":"""+СтрЗаменить(Строка(Результат.БалансРуб),",",".")+
    ""","+"""balls"":"""+СтрЗаменить(Строка(Результат.БалансБалл),",",".")+""","+
    """pack"":"""+Результат.Пакет+""","+
    """password"":"""+Результат.Пароль+""""+"}";

    "Простая библиотека для кодирования JSON"

    Rijen, 05 Марта 2015

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

    −119

    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
    функция КрасиваяДата ( Дата ) 
    	
    	Стр = "";
    	
    	Д = День (Дата);
    	М = Месяц (Дата);
    	Г = Год (Дата);
    	
    	Если      М = 1 тогда 
    		мес = "января";
    	ИначеЕсли М = 2 тогда 
    		мес = "февраля";
    	ИначеЕсли М = 3 Тогда 
    		мес = "марта";
    	ИначеЕсли М = 4 Тогда
    		мес = "апреля";
    	ИначеЕсли М = 5 Тогда 
    		мес = "майя";
    	ИначеЕсли М = 6 Тогда 
    		мес = "июня";
    	ИначеЕсли М = 7 Тогда 
    		мес = "июля";
    	ИначеЕсли М = 8 Тогда 
    		мес = "августа" ;
    	ИначеЕсли М = 9 Тогда 
    		мес = "сентебря";
    	ИначеЕсли М = 10 Тогда 
    		мес = "октебря";
    	ИначеЕсли М =11 Тогда 
    		мес = "ноября";
    	ИначеЕсли М =12 Тогда 
    		мес = "декобря";
    	КонецЕсли;
    	
    	КДата = Строка (Д) + " " + мес + " " + Строка(Г) + " г.";
    	
    	Возврат КДата; 
    	
    КонецФункции

    Встретил сегодня такую конструкцию в отчете. Орфография передана без изменения

    spamersd, 26 Февраля 2015

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

    −119

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    РасходныйКассовыйОрдер ГДЕ (НЕ РасходныйКассовыйОрдер.ВидОперации В
    					(ВЫБРАТЬ
    						ВидыОперацийРКО.Ссылка
    					ИЗ
    						Перечисление.ВидыОперацийРКО КАК ВидыОперацийРКО
    					ГДЕ
    						ВидыОперацийРКО.Ссылка = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРКО.ВыплатаЗаработнойПлатыРаботнику)))

    Обнаружил вот это чудо в ограничении почти всех ролей на ЧТЕНИЕ.
    Древняя УПП 1.2 сильно допиленная.
    Теперь сижу и горюю о том, сколько времени придётся потратить удаляя это из всех ролей...

    Goggy, 20 Февраля 2015

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

    −119

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

    На форме списка справочника "Контрагенты" добавлена кнопка со значком "непосредственное удаление". А это её обработчик.
    НАХРЕНА???

    doom2good, 20 Февраля 2015

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

    −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
    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
    Функция Счет(УсловныйКодСчета, СоответствиеСчетов = Неопределено) Экспорт
    	
    	ПС = ПланыСчетов.Хозрасчетный;
    	Результат = ПС.ПустаяСсылка();
    	
    	Если УсловныйКодСчета = "01" Тогда
    		Результат = ПС.ОсновныеСредства;
    	ИНачеЕсли УсловныйКодСчета = "01.01" Тогда
    		Результат = ПС.ОСвОрганизации;
    	ИначеЕсли УсловныйКодСчета = "01.08" Тогда
    		Результат = ПС.ОСБезГосРегистрации;
    	ИначеЕсли УсловныйКодСчета = "01.09" Тогда
    		Результат = ПС.ВыбытиеОС;
    	ИначеЕсли УсловныйКодСчета = "02" Тогда
    		Результат = ПС.АмортизацияОсновныхСредств;
    //Далее идет подобный треш более чем на 500 строк
    
            ИначеЕсли УсловныйКодСчета = "008" Тогда
    		Результат = ПС.ОбеспеченияОбязательствПолученные;
    	ИначеЕсли УсловныйКодСчета = "009" Тогда
    		Результат = ПС.ОбеспеченияОбязательствВыданные;
    	ИначеЕсли УсловныйКодСчета = "011" Тогда
    		Результат = ПС.ОсновныеСредстваСданныеВАренду;
    	Иначе
    		ОписаниеОшибки = НСтр("ru='Не определен счет с условным кодом %1 в соответствии счетов'");
    		ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеОшибки, УсловныйКодСчета);
    		ВызватьИсключение ОписаниеОшибки;
    	КонецЕсли;
    	
    	Возврат Результат;
    	
    КонецФункции
    
    //СоответствиеСчетов так нигде и не используется :(

    Типовая Бухгалтерия КОРП 3.0, модуль ЗаполнениеБухгалтерскойОтчетностиИтоги

    planaric, 07 Февраля 2015

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

    −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
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    //определяем сумму начисленной амортизации+ремонтов на заказы документом "РаспределениеАмортизацииНаЗаказы"
    
    	Запрос = Новый Запрос;
    	Запрос.Текст = "ВЫБРАТЬ
    	               |	НезавершенноеПроизводствоБухгалтерскийУчетОбороты.СчетУчета КАК СчетУчета,
    	               |	НезавершенноеПроизводствоБухгалтерскийУчетОбороты.Заказ,
    	               |	НезавершенноеПроизводствоБухгалтерскийУчетОбороты.СтоимостьПриход КАК СтоимостьПриход,
    	               |	НАЧАЛОПЕРИОДА(НезавершенноеПроизводствоБухгалтерскийУчетОбороты.Период, МЕСЯЦ) КАК Период,
    	               |	НезавершенноеПроизводствоБухгалтерскийУчетОбороты.Регистратор КАК Регистратор
    	               |ИЗ
    	               |	РегистрНакопления.НезавершенноеПроизводствоБухгалтерскийУчет.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК НезавершенноеПроизводствоБухгалтерскийУчетОбороты
    	               |ГДЕ
    	               |	(НезавершенноеПроизводствоБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РаспределениеАмортизацииНаЗаказы
    	               |			ИЛИ НезавершенноеПроизводствоБухгалтерскийУчетОбороты.Регистратор = &Корректировка)
    	               |	И НезавершенноеПроизводствоБухгалтерскийУчетОбороты.СчетУчета = &СчетУчета
    	               |ИТОГИ
    	               |	СУММА(СтоимостьПриход)
    	               |ПО
    	               |	ОБЩИЕ";
    				   
    	Запрос.УстановитьПараметр("ДатаНач",НачалоМесяца(ДатаНач));
    	Запрос.УстановитьПараметр("ДатаКон",КонецМесяца(ДатаКон));
    	Запрос.УстановитьПараметр("СчетУчета", ПланыСчетов.Хозрасчетный.НайтиПоКоду("231"));
    	Запрос.УстановитьПараметр("Корректировка", Документы.ОперацияБух.НайтиПоНомеру("00000056",Дата(2011,05,01)));
    
    	Выборка = Запрос.Выполнить().Выбрать();
    	Выборка.Следующий();
    	СуммаНачисления = Выборка.СтоимостьПриход;

    Есть специальная супер секретная бухгалтерская операция которую нужно исключить )))

    yuriybilous, 31 Января 2015

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

    −118

    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
    Если Сумма<=0 тогда
    		
    		НС = Док.СуммыДолга.Добавить();
    		НС.ВидЗадолженности     = Перечисления.ВидыЗадолженности.Кредиторская;
    		НС.ДоговорКонтрагента     = ПолучитьДоговор(Клиент,Док.ВалютаДокумента);
    		НС.КурсВзаиморасчетов   = Док.КурсДокумента;
    		НС.КратностьВзаиморасчетов=Док.КратностьДокумента;
    		НС.Сумма = -Сумма;
    		НС.СуммаРегл = НС.Сумма*НС.КурсВзаиморасчетов/НС.КратностьВзаиморасчетов;
    		
    		НС.СчетУчетаАвансов  = СчетКонтрагента;
    		НС.СчетУчетаРасчетов = СчетКонтрагента;
    	Иначе
    		
    		НС = Док.СуммыДолга.Добавить();
    		НС.ВидЗадолженности     = Перечисления.ВидыЗадолженности.Дебиторская;
    		НС.ДоговорКонтрагента     = ПолучитьДоговор(Клиент,Док.ВалютаДокумента);
    		НС.КурсВзаиморасчетов   = Док.КурсДокумента;
    		НС.КратностьВзаиморасчетов=Док.КратностьДокумента;
    		НС.Сумма = Сумма;
    		НС.СуммаРегл = НС.Сумма*НС.КурсВзаиморасчетов/НС.КратностьВзаиморасчетов;
    		
    		НС.СчетУчетаАвансов  = СчетКонтрагента;
    		НС.СчетУчетаРасчетов = СчетКонтрагента;
    	
    	КонецЕсли;

    Код исправный, но... любит один наш программер "чтоб побольше строк"... а если добавить дополнительные отступы ("для удобства прочтения"), то будет казаться, что программа невообразимо длинная и сложная

    dsfix, 30 Января 2015

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

    −127

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //200114		
    //ОбластьКонОстаткиДоговор.Параметры.ПеременныйДоговор = ВыборкаДоговор.Договор;  //Убери рем когда договор опять нужен будет 
    
    //210014
    //ОбластьКонОстаткиДоговор.Параметры.ПеенныйДоговор = ВыборкаДоговор.Договор;  //Убери рем когда договор опять нужен будет

    Пенный договор вновь вступил в силу..

    gStill, 27 Января 2015

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