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

    −160

    1. 1
    Номенклатура

    Слово гадкое, не то что программа.

    alexoy, 27 Сентября 2011

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

    −140

    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
    Процедура Кнопка1Нажатие(Элемент)
    	// Вставить содержимое обработчика.
    	//орг=элементыформы.организация.Значение;
    
    запрос1=новый запрос;
    запрос1.текст=""выбрать * из регистрсведений.регионыорганизаций где  регион=&регион"";
    запрос1.УстановитьПараметр(""регион"",регион);
    выборка=запрос1.Выполнить().Выбрать();
    запрос2=новый запрос;
    пока выборка.Следующий()цикл
    	орг=выборка.организация;
    	//Сообщить(выборка.Количество()); 
    	запрос2.Текст=""выбрать * из регистрсведений.сведенияосотруднике где организация=&орг и ""+
    ""должность=&должн"";
    
    запрос2.УстановитьПараметр(""орг"", орг);
    запрос2.УстановитьПараметр(""должн"",должность);
    выборка2=запрос2.Выполнить().Выбрать();
     если выборка2.Количество()>2 тогда
    сообщить(строка(орг )+"" - ""+строка(выборка2.количество()));
    конецесли;
    конеццикла
    
    КонецПроцедуры

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

    Авторское решение приведено в первозданном виде.

    glavdir, 27 Сентября 2011

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

    −152

    1. 1
    2. 2
    Пока 2*2=4 Цикл
    ...

    Улыбнуло. Не помню, в какой то чей то нетленке видел...

    F00FC7C8, 26 Сентября 2011

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

    −141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Для К = 1 По 11 Цикл
    Если Форм = 1 Тогда
    ExcelApp.Cells(КолЗ,К).Font.Bold = 1;
    ExcelApp.Cells(КолЗ,К).Font.Color = 16732963; 
    КонецЕсли;      
    КонецЦикла;

    "Орфография автора сохранена" =)

    HellMaster_HaiL, 23 Сентября 2011

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

    −141

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    //Адрес Получателя
    	СписокКому = Новый СписокЗначений;
        СписокОбъектов = Новый СписокЗначений;
    	СписокОбъектов.Добавить(ОбъектОтправки);
    	Для каждого СтрокаСпискаОбъектов Из СписокОбъектов Цикл
    		Адрес = УправлениеЭлектроннойПочтой.ОпределитьАдресПолучателя(СтрокаСпискаОбъектов.Значение);
    		СписокКому.Добавить(Адрес,Строка(СтрокаСпискаОбъектов.Значение));
        КонецЦикла;
    
    	СтруктураНовогоПисьма.Вставить("Кому", СписокКому);

    что автор хотел этим сделать?? написано с нуля, так как автор сказал, что немного подкорректировал конфигурацию и вот мне стало интересно... но увидев удивительные строки хотелось бы спросить сначала экспертов, а потом автора )))))

    drhihi, 21 Сентября 2011

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

    −139

    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
    Функция ПолучитьЕдиницу(ТекЕдиница)
    	Тек = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ТекЕдиница.Наименование);
    	Если Тек = Справочники.КлассификаторЕдиницИзмерения.ПустаяСсылка() Тогда
    		Тек = Справочники.КлассификаторЕдиницИзмерения.СоздатьЭлемент();
    		Тек.Наименование = ТекЕдиница.Наименование;
    		Тек.НаименованиеПолное = ТекЕдиница.Наименование;
    		СтроковыйКод = "001";
    		Запрос = Новый Запрос;
    		Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
    		               |	КлассификаторСтранМира.Код КАК Код
    		               |ИЗ
    		               |	Справочник.КлассификаторСтранМира КАК КлассификаторСтранМира
    		               |
    		               |УПОРЯДОЧИТЬ ПО
    		               |	Код УБЫВ";
    					   
    					   Результат = Запрос.Выполнить().Выгрузить();
    					   ЧисловойКод = Число(Результат[0].Код) + 1;
    					   Если ЧисловойКод < 10 Тогда
    						   СтроковыйКод = "00"+ЧисловойКод
    					   ИначеЕсли ЧисловойКод < 100 Тогда
    						   СтроковыйКод = "0"+ЧисловойКод
    					   Иначе
    						   СтроковыйКод = ""+ЧисловойКод
    					   КонецЕсли;
    					   
    		Тек.Код = СтроковыйКод;
    		
    		Попытка
    			Тек.Записать();
    		Исключение
    			ЕстьОшибка = Истина;
    			Сообщить("Не могу записать единицу измерения "+ТекЕдиница.Наименование+" !");
    			Сообщить(ОписаниеОшибки());
    			Возврат "";
    		КонецПопытки;
    	КонецЕсли;
    	Если Тек = Справочники.КлассификаторЕдиницИзмерения.ПустаяСсылка() Тогда
    		ЕстьОшибка = Истина;
    		Возврат "";
    	Иначе
    		Возврат Тек;
    	КонецЕсли;
    КонецФункции

    Получила в наследство от команды разработчиков во главе с неким Леонидом. Порадовало формирование кода для нового элемента классификатора единиц измерения. И правда, почему бы не поискать максимальный код в каком-нибудь неожиданном месте? А такое оригинальное формирование строки с лидирующими нулями просто убило до смерти.

    Shapokljak, 12 Сентября 2011

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

    −129

    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
    Функция ВыделитьАртикул(А) Экспорт
    	Перем СтрВспом, Инд;
    	
    	Инд = 1;
    	СтрВспом = "";
    	
    	Пока Инд <= СтрДлина(А) Цикл
    		Если (Сред(А,Инд,1)="0") ИЛИ (Сред(А,Инд,1)="1") ИЛИ
    			 (Сред(А,Инд,1)="2") ИЛИ (Сред(А,Инд,1)="3") ИЛИ
    			 (Сред(А,Инд,1)="4") ИЛИ (Сред(А,Инд,1)="5") ИЛИ
    			 (Сред(А,Инд,1)="6") ИЛИ (Сред(А,Инд,1)="7") ИЛИ
    			 (Сред(А,Инд,1)="8") ИЛИ (Сред(А,Инд,1)="9") ИЛИ 
    			 (Сред(А,Инд,1)="/") ИЛИ (Сред(А,Инд,1)="-") Тогда
    			СтрВспом = СтрВспом + Сред(А, Инд, 1);
    			Инд = Инд + 1;
    		Иначе
    			Прервать;
    		КонецЕсли;
    	КонецЦикла;
    	Возврат СтрВспом;
    КонецФункции

    Нашел у клиента, когда рефакорил код конфы. Страшно подумать, если придется выделять еще с десяток символов...

    YouAreEmpty, 09 Сентября 2011

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

    −129

    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
    . . .
    	ццц=0;                               
    	Если Сотрудникз.Выбран()=0 Тогда
    		Сомр= СоздатьОбъект("Справочник.Сотрудники");
    		Сомр.ВыбратьЭлементы();     
    		цццк=50000;
    	Иначе
    		Сомр=Сотрудникз;
    		цццк=1;
    	КонецЕсли;	  
    	Пока ((ццц<цццк) ) цикл   
    		ццц=ццц+1;    
    		Если цццк>1 Тогда
    			Если (Сомр.ПолучитьЭлемент()=0) Тогда
    				Прервать;
    			КонецЕсли;  
    		КонецЕсли;	 
    		Сотрудник = Сомр.ТекущийЭлемент();   
    		Если Сотрудник.ЭтоГруппа()=1 Тогда
    			продолжить;
    		КонецЕсли;
                    . . .
    
    По нормальному решается:
    
        Сотр = СоздатьОбъект("Справочник.Сотрудники");
        Сотр.ВыбратьЭлементы();
        Пока  (Сотр.ПолучитьЭлемент() = 1)  Цикл
          . . . 
        КонецЦикла

    Досталось в наследство на основной работе, самописная конфа на 7.7,
    как выяснилось этот участок кода писала 50-ти летняя женщина-программист

    adammartin, 11 Августа 2011

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

    −153

    1. 1
    ТСтрока=Товары.Получить(Товары.Индекс(ЭтаФорма.ЭлементыФормы.Товары.ТекущаяСтрока));

    luns, 26 Июля 2011

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

    −140

    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
    Говно = 0;
    		ТекущийДокумент.ВыбратьСтроки();
    		Пока ТекущийДокумент.ПолучитьСтроку() = 1 Цикл
    			Если (ТекущийДокумент.ДатаПоставкиЭА < ТекущаяДата()) и (ПустоеЗначение(ТекущийДокумент.ДатаПоставкиЭА) = 0) и (ТекущийДокумент.Аннулирован = 0) и (ТекущийДокумент.Аннулирована = 0) Тогда
    				Если (ТекущийДокумент.СостояниеСтрокиЗаказа = Перечисление.СостояниеЗаказа.Сделан) или (ПустоеЗначение(ТекущийДокумент.СостояниеСтрокиЗаказа) = 1) Тогда
    					Говно = 1;
    					Прервать;
    				КонецЕсли;
    			КонецЕсли;
    		КонецЦикла;
    		Если Говно = 1 Тогда
    			Возврат "FONT["+ПолучитьЦвет(0,0,0)+"] BRUSH["+ПолучитьЦвет(128,128,0)+"]";		
    		КонецЕсли;
    
    Код окрашивает строку в цвет говна:)
    К коду претензий не имею, но говно-код получается.

    Unknown181538, 26 Июля 2011

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