1. 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)
  2. 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)
  3. 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)
  4. 1C / Говнокод #22044

    −49

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

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

    grandatlant, 26 Января 2017

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

    −47

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

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

    Jet, 14 Декабря 2016

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

    −49

    1. 1
    Ячейка = ТабДокумент.НайтиТекст("Уважаемые Клиенты! Мы стараемся");

    blMbl, 12 Декабря 2016

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

    −35

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

    Видимо, таким образом разработчики стандартных подсистем решили бороться с ошибкой платформы, когда при попытке получения некорректного значения падает рабочий процесс.
    Клин-клином, говнокод-говнокодом.

    UncleFedor, 06 Декабря 2016

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

    −98

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Если Не ЕстьОшибки Тогда
    		
    		СформироватьФайлы(КоличествоФайлов, Объект.ВидВыгрузки, ВыгружатьСведенияОЗданиях, ВыгружатьДоговорыУправления, ВыгружатьСпособыФормированияФондаКР, ВыгружатьЗаявкиНаДобавлениеВременныхАдресов,
    						  Объект.КаталогВыгрузки, МакетЗаявокНаДобВА, МакетСФКР, МакетМКД, МакетЖД, МакетДУ,  МакетЛС, МакетПУ, МакетРасчетыРСО, МакетДОИ, ДополнительныеСоглашенияДУ, ДополнительныеУслугиДУ,
    						  КоммунальныеУслугиДУ, ТаблицаДУ, ТаблицаЖД, ТаблицаЖилыхПомещений, ТаблицаКодовУслуг, ТаблицаКомнатЖД, ТаблицаКомнатМКД, ТаблицаЛицевыхСчетов, ТаблицаМКД, ТаблицаНежилыхПомещений,
    						  ТаблицаПодъездов, КоличествоПартийМКД, КоличествоПартийЖД, СформированныеФайлы, ЭтотОбъект, СтруктураИменТаблицФормы, ТаблицаЗаявокНаДобВА, ТаблицаСФКР, ТаблицаСостоянияРасчетовРСОПериоды, 
    						  ТаблицаСостоянияРасчетовРСОДоговоры, Истина);
    						  
    	КонецЕсли;

    хоть убей, ну зачем так?????

    ya-ya, 05 Декабря 2016

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