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

    −169

    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
    // Функция возвращает округленное значение общего количества продуктов питания.
    // 
    // Параметры:
    //	Число - число, которое необходимо округлить.
    //	Порядок - число, порядок округления.
    
    Функция УППБУ_Округлить(Число, ПорядокОкругления) Экспорт
    	
    	Порядок = Число(Строка(ПорядокОкругления));
    	
    	..........
    	
    КонецФункции

    Тиражное решение от одного из партнеров...

    HomoAlbus, 02 Июля 2013

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

    −171

    1. 1
    КоличествоСтрокТоваров  = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(ЭтотОбъект.Ссылка.УникальныйИдентификатор()).Товары.Количество();

    программист-снайпер, убивает одной строкой кода.

    BlackMamba, 19 Июня 2013

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

    −162

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

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

    madcat_sev, 13 Июня 2013

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

    −80

    1. 1
    Если Найти(Строка(ТипЗнч(Ссылка)),"Документ") Тогда

    Проверка, является ли переданная ссылка документом. Сегодня без авторства.

    ilya2184, 05 Июня 2013

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

    −160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Ученик 1С спросил у своего учителя: что означает аббревиатура "Один Эс"?
    Учитель долго думал и наконец ответил ему:
    - "Один" - это когда солнечный день и воняет из трубы, это "Один"
    А "Эс", что такое "Эс", - спросил ученик
    - "Эс" - это когда солнечный день и опять же воняет из трубы

    Если бы у 1С были коаны, они выглядели бы примерно так.
    По мотивам к/ф "Моцарт" 2006

    serpinski, 02 Июня 2013

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

    −177

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

    Удалить документ в транзакции "перед записью" при пометке удаления - это сильно, а "Попытка" - так, на всякий случай, а чтобы продолжения банкета не было - Отказ. Звезда Хан Ю.В.

    ilya2184, 27 Мая 2013

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

    −166

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    Функция  УбратьПробелы(Строка)
    	ВозвратСтрока = "";
    	Сч = 1;
    	ДлинаСтроки = СтрДлина(Строка);
    	Пока Сч <= ДлинаСтроки Цикл 
    		Если КодСимвола(Строка, Сч) <> 160 Тогда
    			ВозвратСтрока = ВозвратСтрока + Символ(КодСимвола(Строка, Сч));
    		КонецЕсли;
    		Сч = Сч + 1;
    	КонецЦикла;
    	Возврат ВозвратСтрока;
    КонецФункции

    Видимо
    Строка = СтрЗаменить(Строка, Символ(160), "");
    выглядело слишком неочевидно, пробелы же нестандартные, а вот УбратьПробелы(Строка) - это - да, это всем понятно.

    madcat_sev, 23 Мая 2013

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

    −101

    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
    // Преобразует целое десятичное число (как вариант представления двоичного числа) в вещественное
    Функция ПреобразоватьВЧисло(Знач ДесятичноеЧисло = 0, Точность = 1) Экспорт
    	
    	СчБитов 	= 0;
    	Мантисса 	= 1;
    	Экспонента 	= ?(Точность = 2, -1023, -127);
    	Знак 		= 1;
    	
    	ГраницаМантиссы   = ?(Точность = 2, 52, 23);
    	ГраницаЭкспоненты = ?(Точность = 2, 63, 31);
    	
    	Пока ДесятичноеЧисло >= 1 Цикл
    		
    		Частное = Цел(ДесятичноеЧисло / 2);
    		Остаток = ДесятичноеЧисло % 2;
    		
    		Если СчБитов < ГраницаМантиссы Тогда
    			Мантисса = Мантисса + Остаток * Pow(2, СчБитов - ГраницаМантиссы);
    		ИначеЕсли СчБитов < ГраницаЭкспоненты И СчБитов > ГраницаМантиссы - 1 Тогда
    			Экспонента = Экспонента + Остаток * Pow(2, СчБитов - ГраницаМантиссы);
    		Иначе
    			Знак = ?(Остаток = 1, -1, 1);
    		КонецЕсли;
    		
    		ДесятичноеЧисло = Частное;
    		СчБитов	= СчБитов + 1;
    		
    	КонецЦикла; 
    		
    	Возврат Знак * Мантисса * Pow(2, Экспонента);
    
    КонецФункции

    TamerlanDE, 18 Мая 2013

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

    −166

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    Попытка
    	ФС.КопироватьФайл(Каталог+Файл+Расширение,НовоеИмя,1);
    	Если ФС.СуществуетФайл(НовоеИмя)=0 Тогда
    		СоздатьОбъект("АбсолютнаяЧушь");
    	КонецЕсли;
    	НовоеЗначение=Сред(НовоеИмя,СтрДлина(Лев(КаталогИБ(),СтрДлина(КаталогИБ())-1)+"-MEDIA\")+1);
    	НовоеСтрока=НовоеЗначение;
    Исключение
    	Предупреждение("Не удаётся скопировать файл!",5);
    КонецПопытки;

    Классный способ вызвать исключение.

    jerokee, 16 Мая 2013

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

    −171

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    ЕстьПроблема       = (Мин(СсылкаНаЗапрос.ЭтоПроблема,СвязанныйЗапрос.ЭтоПроблема)<>Макс(СсылкаНаЗапрос.ЭтоПроблема,СвязанныйЗапрос.ЭтоПроблема));
    ТолькоПроблемы = Мин(СсылкаНаЗапрос.ЭтоПроблема,СвязанныйЗапрос.ЭтоПроблема);
    
    Если ЕстьПроблема И Не ТолькоПроблемы Тогда 
         // кусок кода
    Иначе 
         // кусок кода
    КонецЕсли;

    Наваял тут... Самому прикольно стало.

    jerokee, 16 Мая 2013

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