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

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
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
&НаСервере
Процедура ЗагрузитьПринятыхНаСервере()
	Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
	
	Если Пользователь = "Иванов Иван Юрьевич" ИЛИ Пользователь = "Пупкин Иван Дмитриевич" Тогда
		Если ЭтотОбъект.Программа.Пустая() Тогда
			Сообщить("Выберите программу");
			Возврат;
		КонецЕсли;
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	ТекущиеКадровыеДанныеСотрудников.Сотрудник КАК Сотрудник
		|ИЗ
		|	РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
		|ГДЕ
		|	ТекущиеКадровыеДанныеСотрудников.ДатаПриема <> &ДатаУвольнения
		|	И ТекущиеКадровыеДанныеСотрудников.ДатаПриема МЕЖДУ &Дата1 И &Дата2
		|	И ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения = &ДатаУвольнения";
		
		Запрос.УстановитьПараметр("Дата1", ЭтотОбъект.Дата1);
		Запрос.УстановитьПараметр("Дата2", ЭтотОбъект.Дата2);
		Запрос.УстановитьПараметр("ДатаУвольнения", Дата(1,1,1));
		
		ТЗРезультатов = Запрос.Выполнить().Выгрузить();
		Для Каждого ТекСтрока Из ТЗРезультатов Цикл	
			Запрос = Новый Запрос;
			Запрос.Текст = 
			"ВЫБРАТЬ
			|	ОбучениеПоОхранеТрудаОценкаПерсонала.Сотрудник КАК Сотрудник,
			|	ОбучениеПоОхранеТрудаОценкаПерсонала.Программа КАК Программа,
			|	ОбучениеПоОхранеТрудаОценкаПерсонала.Ответственный КАК Ответственный
			|ИЗ
			|	РегистрСведений.ОбучениеПоОхранеТрудаОценкаПерсонала КАК ОбучениеПоОхранеТрудаОценкаПерсонала
			|ГДЕ
			|	(ОбучениеПоОхранеТрудаОценкаПерсонала.Ответственный.Наименование = &Ответственный ИЛИ ОбучениеПоОхранеТрудаОценкаПерсонала.Ответственный.Наименование = &Ответственный1) 
			|	И ОбучениеПоОхранеТрудаОценкаПерсонала.Программа = &Программа
			|	И ОбучениеПоОхранеТрудаОценкаПерсонала.Сотрудник = &Сотрудник";
			
			Запрос.УстановитьПараметр("Ответственный", "Иванов Иван Юрьевич");
			Запрос.УстановитьПараметр("Ответственный1", "Пупкин Иван Дмитриевич");
			Запрос.УстановитьПараметр("Программа", ЭтотОбъект.Программа);
			Запрос.УстановитьПараметр("Сотрудник", ТекСтрока.Сотрудник);

			Работники = Запрос.Выполнить().Выгрузить();
			Если Работники.Количество()>0 Тогда
				
			Иначе
				МенеджерЗаписи = РегистрыСведений.ОбучениеПоОхранеТрудаОценкаПерсонала.СоздатьМенеджерЗаписи();
				МенеджерЗаписи.Сотрудник = ТекСтрока.Сотрудник;
				//МенеджерЗаписи.Программа = ЭтотОбъект.Программа;
				МенеджерЗаписи.Ответственный = Справочники.Пользователи.НайтиПоНаименованию(Пользователь);
				Попытка
					МенеджерЗаписи.Записать(Ложь);
					Сообщить("Добавлен сотрудник " + ТекСтрока.Сотрудник);
				Исключение
					Сообщить("Сотрудник " + ТекСтрока.Сотрудник + " был ранее добавлен");
				КонецПопытки;		
			КонецЕсли;
			
		КонецЦикла;	
	Иначе	
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник
		|ИЗ
		|	РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников
		|ГДЕ
		|	КадроваяИсторияСотрудников.ВидСобытия = &ВидСобытия
		|	И КадроваяИсторияСотрудников.Период МЕЖДУ &Дата1 И &Дата2
		|	И КадроваяИсторияСотрудников.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Прием)";
		Запрос.УстановитьПараметр("Дата1", НачалоДня(ЭтотОбъект.Дата1));
		Запрос.УстановитьПараметр("Дата2", КонецДня(ЭтотОбъект.Дата2));
		Запрос.УстановитьПараметр("ВидСобытия",Перечисления.ВидыКадровыхСобытий.Прием);
		ТЗРезультатов = Запрос.Выполнить().Выгрузить();
		Для Каждого ТекСтрока Из ТЗРезультатов Цикл	
			МенеджерЗаписи = РегистрыСведений.ОбучениеПоОхранеТрудаОценкаПерсонала.СоздатьМенеджерЗаписи();
			МенеджерЗаписи.Сотрудник = ТекСтрока.Сотрудник;
			МенеджерЗаписи.Программа = ЭтотОбъект.Программа;
			МенеджерЗаписи.Ответственный = Справочники.Пользователи.НайтиПоНаименованию(Пользователь);
			Попытка
				МенеджерЗаписи.Записать(Ложь);
				Сообщить("Добавлен сотрудник " + ТекСтрока.Сотрудник);
			Исключение
				Сообщить("Сотрудник " + ТекСтрока.Сотрудник + " был ранее добавлен");
			КонецПопытки;	
		КонецЦикла;

Перешел из франча на фиксу на заводе, зашел в код, а там такая пизда творится, причем это только верх той хуйни которую я тут вижу.
Код по кнопке заполняет регистр сотрудниками у которых дата приема на работу между выбранными датами

Запостил: Mixanhe Mixanhe, (Updated )

Комментарии (8) RSS

  • Всё-таки как уёбищно читается код, написанный на русском языке... Кстати, что такое "франч"?
    Ответить
    • Компания которая осуществляет поддержку 1с и имеет на это лицензию, продажу продуктов от 1С
      Ответить
  • почему тупо-прогеры не могут придумать нормальный язык программирования. что бы писать не
    Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;


    а

    Имя ТекушегоПользователя из ИнформационнойБазы (Пользователей)?
    Ответить
  • или нет

    Запрос.Выполнить().Выгрузить();


    а

    Выполнить Выгрузить для Запроса
    Ответить
  • а это ваше шедевр

    МенеджерЗаписи.Записать(Ложь);


    было бы

    Запиши Ложь в Менеджер Записи
    Ответить
    • Какой кобол )))

      Но русский язык не самый подходящий для этого. Придётся как-то падежи и т.п. обрабатывать. Иначе код будет звучать как речь гостей из ближнего зарубежья.
      Ответить
    • Тогда названия команд, переменных и ключевых слов должны будут принципиально отличаться, чтобы интерпретатор мог различить, что есть что. Например:
      %Write $False @in $RecordsManager
      Грязненько как-то...
      Ответить
    • В языках «APL» и «J» есть термины «глагол», «имя существительное», «наречие», «союз», «знак препинания». Правда, рассчитаны они на английскую грамматику... Да и с порядком слов в «J» всё равно плохо.
      Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8