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

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
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
ВЫБРАТЬ
	ПродажиОбороты.Номенклатура КАК Номенклатура,
	ВЫРАЗИТЬ(ПродажиОбороты.СтоимостьОборот / ВложенныйЗапрос.Курс КАК ЧИСЛО(15, 2)) КАК Сумма,
	ЕСТЬNULL(ПродажиОбороты.Номенклатура.Родитель, &ПустаяНоменклатура) КАК Родитель1,
	ЕСТЬNULL(ПродажиОбороты.Номенклатура.Родитель.Родитель, &ПустаяНоменклатура) КАК Родитель2,
	ЕСТЬNULL(ПродажиОбороты.Номенклатура.Родитель.Родитель.Родитель, &ПустаяНоменклатура) КАК Родитель3,
	ЕСТЬNULL(ПродажиОбороты.Номенклатура.Родитель.Родитель.Родитель.Родитель, &ПустаяНоменклатура) КАК Родитель4,
	Контрагенты.Контрагент.Ссылка КАК Контрагент,
	Контрагенты.Контрагент._г_Код1С КАК КодПартнера,
1 КАК Колво
ИЗ
	(ВЫБРАТЬ
		СРЕДНЕЕ(КурсыВалют.Курс) КАК Курс
	ИЗ
		РегистрСведений.КурсыВалют КАК КурсыВалют
	ГДЕ
		КурсыВалют.Период МЕЖДУ &НачалоПериода И &КонецПериода
		И КурсыВалют.Валюта = ЗНАЧЕНИЕ(Справочник.Валюты._г_Валюта_Доллар)) КАК ВложенныйЗапрос,
	(ВЫБРАТЬ
		Контрагенты.Ссылка КАК Контрагент
	ИЗ             
		Справочник.Контрагенты КАК Контрагенты
	ГДЕ
		Контрагенты.Ссылка В(&СписокКонтрагентов)) КАК Контрагенты
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(
				&НачалоПериода,
				&КонецПериода,
				Регистратор,
				Номенклатура В ИЕРАРХИИ (&ГруппыНоменклатуры)
					И ДоговорКонтрагента.Владелец В (&СписокКонтрагентов)) КАК ПродажиОбороты 
		ПО Контрагенты.Контрагент = ПродажиОбороты.ДоговорКонтрагента.Владелец
ИТОГИ
	СУММА(Сумма),
	СУММА(Колво)
ПО
	Контрагент,
	Номенклатура,
	ЗаказПокупателя

Вот я даже ХЗ, что они пытались сделать.

kovyl2404 kovyl2404, (Updated )

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

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

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
Перем СтрокаСрокДействия;

Функция СтрокаСрокДействия()     

            Если ТекущийЭлемент().ФлагБессрочного = 1 Тогда
                  Если ПустоеЗначение(ТекущийЭлемент().СрокДействия.Получить(РабочаяДата())) = 1 Тогда
                        СтрокаСрокДействия = "от "+ ТекущийЭлемент().ДатаДоговора+" до ";
                  Иначе
                        СтрокаСрокДействия = "от "+ ТекущийЭлемент().ДатаДоговора+" до "+ТекущийЭлемент().СрокДействия.Получить(РабочаяДата());
                  КонецЕсли;
            ИначеЕсли ТекущийЭлемент().ФлагБессрочного = 2 Тогда
                  СтрокаСрокДействия = "бессрочно"; 
            ИначеЕсли ТекущийЭлемент().ФлагБессрочного = 3 Тогда
                  СтрокаСрокДействия = "пролонгируемый";
            КонецЕсли;     

      Возврат(СтрокаСрокДействия);           

КонецФункции

1C 7.7 Такая расчудесная функция была в модуле формы списка справочника. Функция была назначена на текстовое поле формы списка... И таким образом при пролистывании формы списка, в поле "Срок действия" непонятным образом попадали абсолютно левые значения, но зато в каждой из строк было одно и то же до следующего пролистывания...

ok0504 ok0504, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
Если НЕ Отказ И ЭтоНовый() и Роль = Справочники.РолиКонтактныхЛиц.НайтиПоНаименованию("Директор") Тогда
	Пол = Перечисления.ПолФизическихЛиц.Мужской;
КонецЕсли;

Тысячи теток мужского пола негодуют.

kovyl2404 kovyl2404, (Updated )

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

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

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
Если Номенклатура1 <> Номенклатура2 Тогда
Запрос=Новый Запрос("ВЫБРАТЬ
|РаспределениеМатериаловПоМенеджерам.ЗаявкаНаМатериалы,
|РаспределениеМатериаловПоМенеджерам.Материал
|ИЗ
|РегистрСведений.РаспределениеМатериаловПоМенеджерам КАК РаспределениеМатериаловПоМенеджерам
|ГДЕ
|РаспределениеМатериаловПоМенеджерам.Материал = &Материал");
Запрос.УстановитьПараметр("Материал",Номенклатура1);
Выборка=Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
МЗСтарой=РегистрыСведений.РаспределениеМатериаловПоМенеджерам.СоздатьМенеджерЗаписи();
МЗСтарой.ЗаявкаНаМатериалы=Выборка.ЗаявкаНаМатериалы;
МЗСтарой.Материал=Номенклатура2;
МЗСтарой.Прочитать();
МЗНовой=РегистрыСведений.РаспределениеМатериаловПоМенеджерам.СоздатьМенеджерЗаписи();
МЗНовой.ЗаявкаНаМатериалы=Выборка.ЗаявкаНаМатериалы;
МЗНовой.Материал=Выборка.Материал;
МЗНовой.Прочитать();
Если МЗСтарой.Выбран() тогда
МЗНовой.Удалить();
Иначе
МЗНовой.Материал=Номенклатура2;
МЗНовой.Записать(Истина);
КонецЕсли;
КонецЦикла;
КонецЕсли;

Вот такой код сделан был франчем, который потребовал за это еще и 3 часа оплаты)))) Одно только непонятно почему при обращении к регистру нельзя было использовать отбор это же гораздо проще и быстрее и кода меньше

dart dart, (Updated )

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

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

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
  33. 33
Функция ЧерезНоль(Значность) Экспорт
	Оборот=10;
	Если Значность=2 Тогда
		Оборот=100;
	ИначеЕсли Значность=3 Тогда
		Оборот=1000
	ИначеЕсли Значность=4 Тогда
		Оборот=10000
	ИначеЕсли Значность=5 Тогда
		Оборот=100000
	ИначеЕсли Значность=6 Тогда
		Оборот=1000000
	ИначеЕсли Значность=7 Тогда
		Оборот=10000000
	ИначеЕсли Значность=8 Тогда
		Оборот=100000000
	ИначеЕсли Значность=9 Тогда
		Оборот=1000000000
	ИначеЕсли Значность=10 Тогда
		Оборот=10000000000
	ИначеЕсли Значность=11 Тогда
		Оборот=100000000000
	ИначеЕсли Значность=12 Тогда
		Оборот=1000000000000
	ИначеЕсли Значность=13 Тогда
		Оборот=10000000000000
	ИначеЕсли Значность=14 Тогда
		Оборот=100000000000000
	ИначеЕсли Значность=15 Тогда
		Оборот=1000000000000000
	КонецЕсли;	
 Возврат Оборот		
КонецФункции

суровое возведение в степень)

dmurdoc dmurdoc, (Updated )

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

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

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
  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
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
// Преобразовывает геокоординаты из одной СК в другую
//
// КоординатыТочки 			- Структура	- координаты
//
// ПараметрыПреобразования	- Структура - параметры преобразования из одной системы коорднат в другую
//
// ВысотаТочки 				- Число		- выстоа точки над уровнем моря
//
// Точность					- Число		- точность возвращаемых координат
//
// Возвращаемое значение:
//   Структура	- координаты
//
Функция ПреобразоватьКоординаты(КоординатыТочки, ПараметрыПреобразования, ВысотаТочки = 0, Точность = 6) Экспорт

	ПП = ПараметрыПреобразования;
	
	ШиротаВГрадусах 	= КоординатыТочки.Широта;
	ДолготаВГрадусах 	= КоординатыТочки.Долгота; 
	
	ЧислоПи = 3.14159265358979;
	ЧислоУгловыхСекундВРадиане = 206264.8062;
	
	КвадратЭксцентриситетаИсходногоЭллипсоида 	= 2 * ПП.СжатиеИсходногоЭллипсоида - Pow(ПП.СжатиеИсходногоЭллипсоида , 2);
	КвадратЭксцентриситетаКонечногоЭллипсоида 	= 2 * ПП.СжатиеКонечногоЭллипсоида - Pow(ПП.СжатиеКонечногоЭллипсоида , 2);
	
	СреднееБольшаяПолуось 				= (ПП.БольшаяПолуосьИсходногоЭллипсоида + ПП.БольшаяПолуосьКонечногоЭллипсоида) / 2;
	СреднееКвадратЭксцентриситета 		= (КвадратЭксцентриситетаИсходногоЭллипсоида + КвадратЭксцентриситетаКонечногоЭллипсоида) / 2;
	РазностьБольшихПолуосей 			= ПП.БольшаяПолуосьКонечногоЭллипсоида - ПП.БольшаяПолуосьИсходногоЭллипсоида;
	РазностьКвадратовЭксцентриситетов 	= КвадратЭксцентриситетаКонечногоЭллипсоида - КвадратЭксцентриситетаИсходногоЭллипсоида;
	
	ШиротаВРадианах 	= ШиротаВГрадусах * ЧислоПи / 180;
	ДолготаВРадианах 	= ДолготаВГрадусах * ЧислоПи / 180;
	РадиусКривизныМеридианногоСечения 	= СреднееБольшаяПолуось * (1 - СреднееКвадратЭксцентриситета) 
	/ Pow(1 - СреднееКвадратЭксцентриситета * Pow(Sin(ШиротаВРадианах) , 2) , 1.5);
	РадиусКривизныПервогоВертикала 		= СреднееБольшаяПолуось * Pow(1 - СреднееКвадратЭксцентриситета 
	* Pow(Sin(ШиротаВРадианах) , 2) , -0.5);

	СмещениеШиротыВСекундах 	= ЧислоУгловыхСекундВРадиане / (РадиусКривизныМеридианногоСечения + ВысотаТочки) 
	* (РадиусКривизныПервогоВертикала / СреднееБольшаяПолуось * СреднееКвадратЭксцентриситета * Sin(ШиротаВРадианах) 
	* Cos(ШиротаВРадианах) * РазностьБольшихПолуосей + (Pow(РадиусКривизныПервогоВертикала , 2) / Pow(СреднееБольшаяПолуось , 2) + 1) 
	* РадиусКривизныПервогоВертикала * Sin(ШиротаВРадианах) * Cos(ШиротаВРадианах) * РазностьКвадратовЭксцентриситетов / 2 
	- (ПП.ЛинейноеСмещениеОсьАбсцисс * Cos(ДолготаВРадианах) + ПП.ЛинейноеСмещениеОсьОрдинат * Sin(ДолготаВРадианах)) 
	* Sin(ШиротаВРадианах) + ПП.ЛинейноеСмещениеОсьАппликат * Cos(ШиротаВРадианах)) 
	- ПП.УгловоеСмещениеОсьАбсцисс * Sin(ДолготаВРадианах) * (1 + СреднееКвадратЭксцентриситета * Cos(2 * ШиротаВРадианах)) 
	+ ПП.УгловоеСмещениеОсьОрдинат * Cos(ДолготаВРадианах) * (1 + СреднееКвадратЭксцентриситета * Cos(2 * ШиротаВРадианах)) 
	- ЧислоУгловыхСекундВРадиане * ПП.ДифференциальноеРазличиеМасштабов * СреднееКвадратЭксцентриситета * Sin(ШиротаВРадианах) 
	* Cos(ШиротаВРадианах);
	
	СмещениеДолготыВСекундах 	= ЧислоУгловыхСекундВРадиане / ((РадиусКривизныПервогоВертикала + ВысотаТочки) 
	* Cos(ШиротаВРадианах)) * (-ПП.ЛинейноеСмещениеОсьАбсцисс * Sin(ДолготаВРадианах) 
	+ ПП.ЛинейноеСмещениеОсьОрдинат * Cos(ДолготаВРадианах)) + Tan(ШиротаВРадианах) * (1 - СреднееКвадратЭксцентриситета) 
	* (ПП.УгловоеСмещениеОсьАбсцисс * Cos(ДолготаВРадианах) + ПП.УгловоеСмещениеОсьОрдинат * Sin(ДолготаВРадианах)) 
	- ПП.УгловоеСмещениеОсьАппликат;

	СмещениеВысоты 				= -СреднееБольшаяПолуось / РадиусКривизныПервогоВертикала * РазностьБольшихПолуосей 
	+ РадиусКривизныПервогоВертикала * Pow(Sin(ШиротаВРадианах) , 2) * РазностьКвадратовЭксцентриситетов / 2 
	+ (ПП.ЛинейноеСмещениеОсьАбсцисс * Cos(ДолготаВРадианах) + ПП.ЛинейноеСмещениеОсьОрдинат * Sin(ДолготаВРадианах)) 
	* Cos(ШиротаВРадианах) + ПП.ЛинейноеСмещениеОсьАппликат * Sin(ШиротаВРадианах) 
	- РадиусКривизныПервогоВертикала * СреднееКвадратЭксцентриситета * Sin(ШиротаВРадианах) * Cos(ШиротаВРадианах) 
	* (ПП.УгловоеСмещениеОсьАбсцисс / ЧислоУгловыхСекундВРадиане * Sin(ДолготаВРадианах) 
	- ПП.УгловоеСмещениеОсьОрдинат / ЧислоУгловыхСекундВРадиане * Cos(ДолготаВРадианах)) 
	+ (Pow(СреднееБольшаяПолуось , 2) / РадиусКривизныПервогоВертикала + ВысотаТочки) * ПП.ДифференциальноеРазличиеМасштабов;
	
	Возврат Новый Структура("Широта,Долгота,Высота", Окр(ШиротаВГрадусах + СмещениеШиротыВСекундах / 3600, Точность), Окр(ДолготаВГрадусах + СмещениеДолготыВСекундах / 3600, Точность), Окр(ВысотаТочки + СмещениеВысоты,3));
	
КонецФункции

Как ни странно, но работает)))

TamerlanDE TamerlanDE, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
"ВЫБРАТЬ
 |	Вопросы.Ссылка,
 |	Вопросы.Вопрос,
 |	Вопросы1.Код
 |ИЗ
 |	Справочник.Вопросы КАК Вопросы
 |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Вопросы КАК Вопросы1
 |		ПО Вопросы.Ссылка = Вопросы1.Ссылка"

Запросец из обработки, которую толкают (и её даже покупают) за 2к

ilyailya ilyailya, (Updated )

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