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

    −11

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

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

    Arhal, 22 Марта 2017

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

    −13

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

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

    SkyHunter, 22 Марта 2017

    Комментарии (2)
  3. 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)
  4. 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)
  5. 1C / Говнокод #22113

    −51

    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)
  6. 1C / Говнокод #22101

    −45

    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
    Если РаздельнаяДоставка И МассивОшибок.Количество() = Получатели.Количество() Тогда
    	ТекстСообщения = "Сообщения НЕ отправлены !!!";
    ИначеЕсли РаздельнаяДоставка И МассивОшибок.Количество() Тогда
    	ТекстСообщения = "Не все сообщения отправлены !!!";
    ИначеЕсли НЕ РаздельнаяДоставка И МассивОшибок.Количество() Тогда
    	ТекстСообщения = "Сообщение НЕ отправлено !!!";
    ИначеЕсли РаздельнаяДоставка И НЕ МассивОшибок.Количество() Тогда
    	ТекстСообщения = "Сообщения отправлены.";
    ИначеЕсли НЕ РаздельнаяДоставка И НЕ МассивОшибок.Количество() Тогда
    	ТекстСообщения = "Сообщение отправлено.";
    Иначе
    	ТекстСообщения = "Непонятка какая-то!?";
    КонецЕсли;

    Непонятка какая-то!?

    grandatlant, 01 Февраля 2017

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

    −49

    1. 1
    2. 2
    3. 3
    4. 4
    ДатаКурса = ДатаДока;
    Если НЕ СтруктураШапкиДокумента.Свойство("ДатаКурса", ДатаКурса) Тогда
    	ДатаКурса = ДатаДока;
    КонецЕсли;

    Смысла не лишено, но зачем так?

    grandatlant, 26 Января 2017

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

    −48

    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
    Количество = Окр(Строка.Количество,2);
    //
    Если СтрЧислоВхождений(Количество,",")=0 Тогда
    	Если СтрДлина(Количество)=1 Тогда
    		Количество = "00"+количество+"00";
    	ИначеЕсли СтрДлина(Количество)=2 Тогда
    		Количество = "0"+количество+"00";
    	ИначеЕсли СтрДлина(Количество)=3 Тогда
    		Количество = количество+"00";
    	КонецЕсли;
    ИначеЕсли СтрЧислоВхождений(Количество,",")=1 Тогда
    	ДлиннаСтроки = СтрДлина(Количество);
    	ПозТочки = Найти(Количество,",");
    	Если ПозТочки = 2 и ДлиннаСтроки = 3 Тогда
    		Количество ="00"+Количество+"0";
    	ИначеЕсли ПозТочки = 3 и ДлиннаСтроки = 4 Тогда
    		Количество = "0"+Количество+"0";
    	ИначеЕсли ПозТочки = 4 и ДлиннаСтроки = 5 Тогда
    		Количество = Количество+"0";
    	ИначеЕсли ПозТочки = 2 и ДлиннаСтроки = 4 Тогда
    		Количество = "00"+Количество;
    	ИначеЕсли ПозТочки = 3 и ДлиннаСтроки = 5 Тогда
    		Количество = "0"+Количество;
    	ИначеЕсли ПозТочки = 4 и ДлиннаСтроки = 6 Тогда
    		Количество = Количество;
    	ИначеЕсли ПозТочки = 4 и ДлиннаСтроки = 4 Тогда
    		Количество = Количество+"00";
    	КонецЕсли;
    КонецЕсли;
    Если СтрЧислоВхождений(Количество,",")=1 Тогда
    	Количество = СтрЗаменить(Количество,",","");
    КонецЕсли;

    Нужно было получить Количество типа 5 CHAR (NUM)
    Измерение в литрах и штуках
    Пример "00200" - 2 шт. "00650" - 6.5 литра
    Например можно так:
    Формат(Строка.Количество*100,"ЧЦ=5; ЧДЦ=0; ЧВН=; ЧГ=")

    105_306330_ru, 21 Декабря 2016

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

    −51

    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
    ...
    ОбластьВесСтр = ТабличныйДокумент.Область(2, й - 4);
    ОбластьВесСтр.Текст = "Вес:";
    НовСтр.СтрокаВес = 3;
    НовСтр.СтолбецВес = й - 4;
    ТабличныйДокумент.Область(3, й-4, 4, й-4).Объединить();
    ...
    к = й - 5;
    Пока к > 4 Цикл
    	ТабличныйДокумент.Область(2, к, 4, к).Объединить();
    	к = к - 1;
    КонецЦикла;
    ...
    ОбластьСтолбецВесШт = ТабличныйДокумент.Область(ВысотаТаблицы + 1, 13 + Добавка);
    ОбластьСтолбецВесШт.Текст = Формат(окр(ВесЕд, 3), "ЧЦ=10; ЧДЦ=3; ЧГ=0");
    ...
    ОбластьИзменение = ТабличныйДокумент.Область(ВысотаТаблицы + 1, 15 + Добавка - й);
    ОбластьИзменение.Текст = Формат(Изменение, "ЧЦ=10; ЧДЦ=2; ЧН=0; ЧГ=0") + "%";
    ...

    Ну вы поняли... Зачем использовать по нормальному макет, когда можно использовать 300 вложенных циклов с счетчиками й, к, м и т.д.?
    При чем макет то размечен более менее, но там области перезаписываются и вобще дичь какая то происходит. Добавить колонку в результат просто нереально.
    Квинтесенция говнокода.

    Jet, 16 Декабря 2016

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

    −47

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

    Я вот даже не знаю, отнести к какой категории говнокода это отнести.
    То ли 1С не достаточно хорошо проработала автозаполнение, то ли автор гений.

    Jet, 14 Декабря 2016

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