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

    −263

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Ответ = Вопрос("Будет запущена процедура создания договоров и печати документов. Продолжить?",
              РежимДиалогаВопрос.ДаНет, 60, КодВозвратаДиалога.Да, ЗаголовокОкнаПредупреждения);
        
    Если НЕ Ответ = КодВозвратаДиалога.Да Тогда
             Возврат;
    КонецЕсли;

    wezug, 05 Мая 2017

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

    −10

    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
    Функция РазностьДатВДнях(Дата1, Дата2, ВключаяГраницы = Истина)
    	
    	Результат = ?(ВключаяГраницы, 1, 0);
    	Если Дата1 < Дата2 Тогда
    		ТекущаяДата = НачалоДня(Дата1);
    		ДатаОкончания = НачалоДня(Дата2);
    	Иначе
    		ТекущаяДата = НачалоДня(Дата2);
    		ДатаОкончания = НачалоДня(Дата1);
    	КонецЕсли;
    	Пока ТекущаяДата < ДатаОкончания Цикл
    		ТекущаяДата = НачалоДня(ТекущаяДата + 24 * 60 * 60);
    		Результат = Результат + 1;
    	КонецЦикла;
    	Возврат Результат;
    
    КонецФункции

    можно тремя строками заменить:
    ДатаНачала = Мин(НачалоДня(Дата1), НачалоДня(Дата2));
    ДатаОкончания = Макс(НачалоДня(Дата1), НачалоДня(Дата2));
    Возврат ?(ВключаяГраницы, 1, 0) + (ДатаОкончания - ДатаНачала) / 86400

    noncode, 17 Апреля 2017

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

    −99

    1. 1
    2. 2
    Если НоменклатураКонтрагентов.Наличие=Перечисления.ДаНет.Да тогда
    ....

    Создан новый элемент перечисления "ДаНет" на который ссылается измерение регистра сведений. Джордж Буль продолжает медленно крутиться...

    FesenkoA, 03 Апреля 2017

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

    −99

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

    Нужно больше параметров! Иначе ты не адинэсник, а полное ничтожество. (Это не результат легаси, там реально скопипащено ПЯТЬ процедур с одинаковыми параметрами, из которых используется только "Отказ", да и то как видим - через заднепроходное отверстие)

    Old_Chroft, 31 Марта 2017

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

    −99

    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
    ВЫБОР
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 1
    		ТОГДА "01 Январь"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 2
    		ТОГДА "02 Февраль"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 3
    		ТОГДА "03 Март"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 4
    		ТОГДА "04 Апрель"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 5
    		ТОГДА "05 Май"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 6
    		ТОГДА "06 Июнь"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 7
    		ТОГДА "07 Июль"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 8
    		ТОГДА "08 Август"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 9
    		ТОГДА "09 Сентябрь"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 10
    		ТОГДА "10 Октябрь"
    	КОГДА МЕСЯЦ(НДФЛСведенияОДоходах.ДатаПолученияДохода) = 11
    		ТОГДА "11 Ноябрь"
    	ИНАЧЕ "12 Декабрь"
    КОНЕЦ

    Конвертация

    spaceashot, 30 Марта 2017

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

    −11

    1. 1
    ДобавитьИндексерованиеВТекстЗапроса(ТекстЗапросаПодневынеДанные, "НеИнициализированныеИстчоникиДанных...

    ЗУП КОРП 3.1.2.121
    Типовой код.
    Обработка.МенеджерДанныхУчетаВремениСотр удников.МодульОбъекта - строка 2410

    Arhal, 22 Марта 2017

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

    −13

    1. 1
    2. 2
    3. 3
    ...
    ТабличныйДокумент.Вывести(Отчеты[Сред(Лев(ЭтаФорма.ИмяФормы, СтрНайти(ЭтаФорма.ИмяФормы, ".Форма.") - 1), 7)].ПолучитьМакет(Сред(ЭтаФорма.ИмяФормы, СтрНайти(ЭтаФорма.ИмяФормы, "ФормаОтчета")) + "_" + Раздел.ИмяСтраницы));
    ...

    Типовая ЗУП 3.0.25.150, модуль ФОРМЫ регл. отчета 6-НДФЛ.

    SkyHunter, 22 Марта 2017

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

    −19

    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
    БланкПостроителяОтчетаНоменклатура = Новый ПостроительОтчета;
    	Если Конфигурация = "ТорговляУкраина" 
    		ИЛИ Конфигурация = "УТПУкраина" Тогда
    		Если Истина Тогда
    			БланкПостроителяОтчетаНоменклатура.Текст=
    			ЗапросПодготовкаДанных + 
    			"ВЫБРАТЬ РАЗРЕШЕННЫЕ
    			|	НоменклатураДетализация.Номенклатура.Код КАК Код,
    			|	НоменклатураДетализация.Номенклатура.Артикул КАК Артикул,
    			|	НоменклатураДетализация.Номенклатура КАК Номенклатура,
    			|	НоменклатураДетализация.Детализация КАК Детализация,
    			|	ЕСТЬNULL(ОстаткиРезервы.Остаток, 0) КАК Остаток,
    			|	НоменклатураДетализация.ТипДетализации КАК ТипДетализации,
    //................................................................................................................................................................. //

    Если Истина Тогда ...
    Действительно, а вдруг Истина = Ложь!

    saturn5, 21 Марта 2017

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

    −18

    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
    А ведь и так можно обойти таблицу значений, если подойти к задаче творчески!
    
    Счетчик=0;
    Пока 1=1 Цикл 
    	Если Счетчик>=Табл.Количество() Тогда
    		Прервать;
    	КонецЕсли;
    	Стр=Табл[Счетчик];
    
            //.....
    	//Здесь лютый говнокод, 
    	//не имеющий отношения к этому фееричному паттерну "Итератор"!	
           // .....
    
    КонецЕсли;

    Паттерн "Итератор" для 1С 8.

    saturn5, 13 Марта 2017

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

    −50

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

    Суть этой сложной конструкции проста:
    если тип цены есть в справочнике ТипыЦенПоНаправлениям для определенной комбинации - то берем из него,
    иначе берем из реквизита ТипРасхЦены.
    Причем этот говнокод еще и раскопирован в два десятка мест по конфигурации и внешним обработкам и отчетам.

    Palmer, 03 Февраля 2017

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