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

    −124

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Попытка
          ТекущийЭлемент = ЭлементыФормы[АктивныйРеквизит];
          ТекущийЭлемент.АктивиризоватьПоУмолчанию();
    Исключение
    КонецПопытки;

    Это прекрасно...
    Автор - кто-то из 1С-Хомнет

    Aleksandr_N, 02 Декабря 2014

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

    −126

    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
    Попытка
            ЭлементыФормы[Надпись].Картинка = БиблиотекаКартинок.ЗначокОбработкаВПанелиФункций16
    Исключение
            Попытка
                    ЭлементыФормы[Надпись].Картинка = БиблиотекаКартинок.Выполнить
            Исключение
                    Попытка
                            ЭлементыФормы[Надпись].Картинка = БиблиотекаКартинок.Сформировать
                    Исключение
                            Попытка
                                    ЭлементыФормы[Надпись].Картинка = БиблиотекаКартинок.ПерейтиНаСледующийЭтапСделки
                            Исключение
                                    Попытка
                                            ЭлементыФормы[Надпись].Картинка = БиблиотекаКартинок.ВыполнитьОбменДаннымиИнтерактивно
                                    Исключение
                                    КонецПопытки
                            КонецПопытки
                    КонецПопытки
            КонецПопытки
    КонецПопытки;

    Отака хуєта розкидана в одній і тій самій обробці в кількох місцях

    monstrodev, 27 Ноября 2014

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

    −123

    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;
    	КонецЕсли;
    	ЧислоСтрокой = Строка(Число);
    	Инд = 1;
    	Пока Истина Цикл
    	Символ = Сред(ЧислоСтрокой, Инд, 1);	
    	Если Символ = "" Тогда
    		Возврат 0;
    	ИначеЕсли Символ = "," Тогда
    		Если Сред(ЧислоСтрокой, Инд + 1, 1) = "" Тогда
    			Возврат 0;
    		КонецЕсли;
    		
    		Если Сред(ЧислоСтрокой, Инд + 2, 1) = "" Тогда
    			Возврат Число(Сред(ЧислоСтрокой, Инд + 1, 1));
    		КонецЕсли;
    		
    		Если Сред(ЧислоСтрокой, Инд + 3, 1) = "" Тогда
    			Возврат Число(Сред(ЧислоСтрокой, Инд + 1, 1) + Сред(ЧислоСтрокой, Инд + 2, 1));
    		Иначе
    			Возврат Число(Сред(ЧислоСтрокой, Инд + 1, 1) + Сред(ЧислоСтрокой, Инд + 2, 1) + Сред(ЧислоСтрокой, Инд + 3, 1));
    		КонецЕсли;
    	КонецЕсли;
    	Инд = Инд + 1;
    	КонецЦикла;
    КонецФункции

    Еще один "анекдот" от неизвестного автора. Предыдущий здесь: http://govnokod.ru/16639

    Jeyrico, 07 Ноября 2014

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

    −124

    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
    Результат = Запрос.Выполнить();
    Если Результат.Выгрузить().Количество() <> 0 Тогда
    	Выборка = Результат.Выбрать();
    	Пока Выборка.Следующий() Цикл
    		... тут некий код... и внутри контрольный в голову...
    		Если ТЗ.Количество() <> 0 Тогда
    			Для Каждого Строка Из ТЗ Цикл
    				...
    			КонецЦикла;	
    		КонецЕсли;	
    		...
    	КонецЦикла;
    КонецЕсли;

    Видимо это такая "оптимизация", другого объяснения подобным проверкам (это не единичный случай) не нашел.

    Twilight_Sun, 27 Октября 2014

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

    −124

    1. 1
    2. 2
    <?"Объект">_и="";<?"Объект">_с=0;<?"Объект">_кол=<?"Объект">.Количество();<?"Объект">_нд=ТекущаяДата();<?"Объект">_пд=<?"Объект">_нд;
    	<?"Объект">_с=<?"Объект">_с+1;Если <?"Объект">_пд<>ТекущаяДата() Тогда <?"Объект">_пд=ТекущаяДата();<?"Объект">_ост=(<?"Объект">_пд-<?"Объект">_нд)/<?"Объект">_с*(<?"Объект">_кол-<?"Объект">_с);Состояние(<?"Объект">_и+Формат(<?"Объект">_с/<?"Объект">_кол*100,"ЧДЦ=1;")+"% "+формат('00010101'+<?"Объект">_ост,"ДФ=ЧЧ:мм:сс"));КонецЕсли;

    Шаблон для строки состояния. Видимо, первая строка вставляется перед циклом, вторая внутри.

    anacefalus, 24 Октября 2014

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

    −127

    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
    теСтрокаТЗ_двухТЧ=ТЗ_двухТЧ_РТиУ.Найти(СокрЛП(ЗначениеВСтрокуВнутр(теСтрокаТЧ.Номенклатура))+"++"+Строка(ё)+"++"+Строка(теСтрокаТЧ.НомерСтроки),"Ид");
    		 теСтрокаТЗ_НДС_БезТекРТиУ=ТЗ_НДС_БезТекРТиУ.Найти(теСтрокаТЧ.Номенклатура);
    	 	 ТЗостНмЗаказаБезТекРТиУ=ПолучитьТЗ_НоменклатурыЗаказа(текущСделка, РТиУобъ.Ссылка, ТекДата, ТекДата, ДокиЗаказаПлан, теСтрокаТЧ.Номенклатура);
    	Если ТЗостНмЗаказаБезТекРТиУ.Количество()>0 И ТЗостНмЗаказаБезТекРТиУ.Итог("СуммаКолвоПоНм")=ТЗотбора1.Итог("КолвоВ_ЕдХр") Тогда	
                 РазностьСум=ТЗостНмЗаказаБезТекРТиУ.Итог("СуммаСуммВзаиморасчПоНм")-(ТЗотбора1.Итог("Сумма")+?(текущСуммаВключаетНДС,0,ТЗотбора1.Итог("СуммаНДС")));
    		Если РазностьСум<>0 И ПолучитьМодульЧисла(РазностьСум)<=Константы.опмМаксимальноеКорректируемоеВторымСпособомОтклонениеСуммОтгрузкиОтЗаказа.Получить() Тогда 
    	    теСтрокаТЧ.Сумма=теСтрокаТЧ.Сумма+РазностьСум*ЗнакТипаДок;    теСтрокаТЗ_двухТЧ.Сумма=теСтрокаТЗ_двухТЧ.Сумма+РазностьСум;
    	    КонецЕсли;
    		Если ВсеОтгрузкиВВалютеЗаказа И НЕ теСтрокаТЗ_НДС_БезТекРТиУ=Неопределено Тогда
    			     РазностьСумНДС=теСтрокаТЗ_НДС_БезТекРТиУ.СуммаНДС-ТЗотбора1.Итог("СуммаНДС");
    		    Если РазностьСумНДС<>0 И ПолучитьМодульЧисла(РазностьСумНДС)<=Константы.опмМаксимальноеКорректируемоеВторымСпособомОтклонениеСуммОтгрузкиОтЗаказа.Получить() Тогда 
    	    теСтрокаТЧ.СуммаНДС=теСтрокаТЧ.СуммаНДС+РазностьСумНДС*ЗнакТипаДок;    теСтрокаТЗ_двухТЧ.СуммаНДС=теСтрокаТЗ_двухТЧ.СуммаНДС+РазностьСумНДС;
    	            Если НЕ текущСуммаВключаетНДС Тогда
    	    теСтрокаТЧ.Сумма=теСтрокаТЧ.Сумма      -РазностьСумНДС*ЗнакТипаДок;    теСтрокаТЗ_двухТЧ.Сумма=теСтрокаТЗ_двухТЧ.Сумма      -РазностьСумНДС;
                    КонецЕсли;
    	        КонецЕсли;
    	    КонецЕсли;
    		Если ЗаказПокВыполненПолностью Тогда СтрокаТЗпоНм=ТЗ_НепоставленнойНмЗаказа.Найти(теСтрокаТЧ.Номенклатура);
    			Если                          НЕ СтрокаТЗпоНм=Неопределено Тогда
    		   ТЗ_НепоставленнойНмЗаказа.Удалить(СтрокаТЗпоНм);
    	        КонецЕсли;
    	    КонецЕсли;
        Иначе ЗаказПокВыполненПолностью=Ложь;
        КонецЕсли;

    HomoAlbus, 10 Октября 2014

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

    −122

    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
    Процедура Сформировать()
    	СпрКонтр = СоздатьОбъект("Справочник.Контрагенты");
    	СпрКонтр.ВыбратьЭлементы();
    	Пока СпрКонтр.ПолучитьЭлемент()=1 Цикл
    		Сообщить(СпрКонтр.Наименование);
    		Спр = СоздатьОбъект("Справочник.ТорговыеТочки");
    		Спр.ИспользоватьВладельца(СпрКонтр.ТекущийЭлемент());
    		Спр.ВыбратьЭлементы();
    		
    		Пока Спр.ПолучитьЭлемент()=1 Цикл
    			Сообщить(Спр.Наименование);
    			Х = СокрЛп(Спр.Код);
    			У = "";
    			Если Х="80002963" Тогда У = "68000550";
    			ИначеЕсли Х="80002964" Тогда У = "68000549";
    			ИначеЕсли Х="80004172" Тогда У = "68000551";
    ....................................
    			ИначеЕсли Х="80004503" Тогда У = "68000811";
    			ИначеЕсли Х="80003952" Тогда У = "68001300";
    	                КонецЕсли;
    			Если У <> "" Тогда
    				Спр.CASID = У;
    				Спр.Записать();
    			КонецЕсли;
    		КонецЦикла;
    	КонецЦикла;
    	Сообщить("Обработка завершена!");
    КонецПроцедуры

    Прислали обработку проставления определенного значения реквизита... Чуть со стула не упали... Всего 619 условий...

    jerokee, 30 Сентября 2014

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

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

    Переменная "Загрузка" может принимать только 2 значения.

    Mortum, 24 Сентября 2014

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

    −126

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
            НовыйДокумент = Документы.ДокументПредЗаявка.СоздатьДокумент();
             НовыйДокумент.Дата = ТекущаяДата();
             НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
             СПД = НовыйДокумент.Ссылка;
             
             //Открываем документ
             ОткрытьЗначение(СПД);
          
    КонецПроцедуры

    Я не вкурил, но полагаю, что ЭТО новый способ создания документа на основании...

    Danik, 15 Сентября 2014

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

    −126

    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
    ТовМат = РегистрыСведений.ТоварнаяМартица;
    ГруппаД = Справочники.КлассификацияABC.НайтиПоНаименованию("Д").Ссылка;
    ТЗНомен = Запрос.Выполнить().Выгрузить();Ит=0;тСерт = Справочники.СертификатыСоответствия.ПустаяСсылка();
    ТЗНомен.Сортировать("Производитель,Сертификат,Номенклатура");
    тПроизвод="";
    Для Каждого стр Из ТзНомен Цикл
    	Если Объект.ИсключитьТоварыГруппыД = Истина Тогда
    		Если стр.Номенклатура.КлассABC = ГруппаД Тогда
    			Продолжить;
    		КонецЕсли;	
    	КонецЕсли;	
    
    	Если стр.Номенклатура.ЭтоГруппа = Ложь Тогда
    		Если НаличиеВМатрице = истина Тогда
    			НаборД = ТовМат.СоздатьНаборЗаписей();
    			// устанавливаем параметры отбора по полному набору Измерений регистра:
    			НаборД.Отбор.нОменклатура.Установить(стр.Номенклатура.Ссылка);
    			НаборД.Прочитать();
    			Если НаборД.Количество() = 0 Тогда
    				Продолжить;
    			Конецесли;	
    		КонецЕсли;

    Бывший программист из нашей конторы отбирает строки таблицы с номенклатурой, по которой отсутствуют записи в регистре сведений, используя при этом другие "удивительные приемы программирования"... Ушел на повышение в саму 1С)))

    GORYNY4, 12 Сентября 2014

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