Бухгалтерия / Говнокод #13434 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
Function toString(aDate) export
		s=Format(Строка(aDate),"ДФ=ддMMгггг");
		return лев(s,10);
endFunction

.......
ДатаДД=uDates.toString(Отбор.Дата);
.......

Функция находится в общем модуле uDates.
Вызов функции происходит в одном из документов:

Danik Danik, (Updated )

Комментарии (12, +12)

Бухгалтерия / Говнокод #13282 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
// Функция возвращает округленное значение общего количества продуктов питания.
// 
// Параметры:
//	Число - число, которое необходимо округлить.
//	Порядок - число, порядок округления.

Функция УППБУ_Округлить(Число, ПорядокОкругления) Экспорт
	
	Порядок = Число(Строка(ПорядокОкругления));
	
	..........
	
КонецФункции

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

HomoAlbus HomoAlbus, (Updated )

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

Бухгалтерия / Говнокод #13199 Ссылка на оригинал

0

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

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

BlackMamba BlackMamba, (Updated )

Комментарии (50, +50)

Бухгалтерия / Говнокод #13169 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
//сохраним уже начисленные услуги
Если УслугиПоГрафику.Количество() > 0 Тогда
	ПромежуточнаяТаблица = УслугиПоГрафику.Выгрузить();
	УслугиПоГрафику.Очистить();

	Для Каждого СтрокаТЗ Из ПромежуточнаяТаблица Цикл
		НоваяСтрока = УслугиПоГрафику.Добавить();
		ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЗ);
	КонецЦикла;
КонецЕсли;

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

madcat_sev madcat_sev, (Updated )

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

Бухгалтерия / Говнокод #13089 Ссылка на оригинал

0

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

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

serpinski serpinski, (Updated )

Комментарии (26, +26)

Бухгалтерия / Говнокод #13055 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
//подписка ПередЗаписью

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

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

ilya2184 ilya2184, (Updated )

Комментарии (44, +44)

Бухгалтерия / Говнокод #13039 Ссылка на оригинал

0

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

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

madcat_sev madcat_sev, (Updated )

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

Бухгалтерия / Говнокод #13014 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 TamerlanDE, (Updated )

Комментарии (11, +11)

Бухгалтерия / Говнокод #13008 Ссылка на оригинал

0

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

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

jerokee jerokee, (Updated )

Комментарии (12, +12)