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

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
  90. 90
ЗапросБезСЛ = Новый Запрос;
	ЗапросБезСЛ.Текст = "ВЫБРАТЬ
	|	КарточкаСделкиТовары.Ссылка.Ссылка КАК СсылкаКС
	|ИЗ
	|	Документ.КарточкаСделки.Товары КАК КарточкаСделкиТовары
	|ГДЕ
	|	КарточкаСделкиТовары.Ссылка.Завершена = ЛОЖЬ
	|	И КарточкаСделкиТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
	|	И (КарточкаСделкиТовары.СтатусСтроки = &СтатусСтрокиПлан
	|			ИЛИ КарточкаСделкиТовары.СтатусСтроки = &СтатусСтрокиПланХочуВЗаказано
	|			ИЛИ КарточкаСделкиТовары.Ссылка.Клиент = &Электросистем
	|				И КарточкаСделкиТовары.СтатусСтроки <> &СтатусСтрокиЗавершено)
	|	И КарточкаСделкиТовары.КонтрактнаяДата < НАЧАЛОПЕРИОДА(&ТекДата, ДЕНЬ)
	|	И КарточкаСделкиТовары.Ссылка.Подразделение В ИЕРАРХИИ(&ДРП)
	|	И КарточкаСделкиТовары.Ссылка.ДляПланаПроизводства = ЛОЖЬ
	|	И КарточкаСделкиТовары.Ссылка.Дата > &ПрошлыйГод
	|	И КарточкаСделкиТовары.Ссылка.Статус <> ЗНАЧЕНИЕ(Справочник.СтатусыКарточекСделки.Завершена)
	//|	И КарточкаСделкиТовары.Ссылка.Номер = ""180010002""
	|
	|СГРУППИРОВАТЬ ПО
	|	КарточкаСделкиТовары.Ссылка.Ссылка
	|
	|УПОРЯДОЧИТЬ ПО
	|	КарточкаСделкиТовары.Ссылка.Дата УБЫВ";
	ЗапросБезСЛ.УстановитьПараметр("СтатусСтрокиПлан", Справочники.СтатусыСтрокКарточкиСделки.Запланировано);
	ЗапросБезСЛ.УстановитьПараметр("СтатусСтрокиПланХочуВЗаказано", Справочники.СтатусыСтрокКарточкиСделки.Заказано);
	ЗапросБезСЛ.УстановитьПараметр("ТекДата", ТекущаяДата());
	ЗапросБезСЛ.УстановитьПараметр("ДРП",Справочники.ФункциональныеОтделыПродаж.НайтиПоКоду("d16"));
	ЗапросБезСЛ.УстановитьПараметр("Электросистем", Справочники.Контрагенты.НайтиПоКоду("140755"));
	ЗапросБезСЛ.УстановитьПараметр("СтатусСтрокиЗавершено", Справочники.СтатусыСтрокКарточкиСделки.Завершено);
	ЗапросБезСЛ.УстановитьПараметр("ПрошлыйГод", НачалоГода(НачалоГода(ТекущаяДата())-3 * 86400)); 	
	
	Выборка = ЗапросБезСЛ.Выполнить().Выбрать();
	
	сПользователь = Справочники.Пользователи.НайтиПоКоду("17 644").Руководитель;
	НоваяКонтрДата = ОбщиеПроцедурыИФункции.ОпределитьДатуЗавершения(сПользователь,  ТекущаяДата(), 3600*8*1); 
	
	Пока Выборка.Следующий() Цикл
		
		КС = Выборка.СсылкаКС.ПолучитьОбъект();		
		НеобходимоЗаписать = Ложь; 
		
		Если ЗначениеЗаполнено(Выборка.СсылкаКС.КодSL) Тогда
			Для каждого Изделие из КС.Товары Цикл
				
				СтатусСтроки = ПолучитьСтатусСтрокиВSL(Выборка.СсылкаКС.КодSL,Изделие.НомерСтроки,Выборка.СсылкаКС.Склад);					
				
				Если СтатусСтроки <> Неопределено И СтатусСтроки <> "F" //выполн.
					и  СтатусСтроки <> "C" //завершено
					Тогда
					
					Если  Изделие.КонтрактнаяДата  < НачалоДня(ТекущаяДата()) Тогда
						Если (Изделие.СтатусСтроки = Справочники.СтатусыСтрокКарточкиСделки.Запланировано 
							или Изделие.СтатусСтроки = Справочники.СтатусыСтрокКарточкиСделки.Заказано) ИЛИ (Изделие.СтатусСтроки <> Справочники.СтатусыСтрокКарточкиСделки.Завершено И Выборка.СсылкаКС.Клиент = Справочники.Контрагенты.НайтиПоКоду("140755")) Тогда 
							Изделие.КонтрактнаяДата = НоваяКонтрДата;
							НеобходимоЗаписать = Истина;
						КонецЕсли;
					КонецЕсли;
				КонецЕсли; 
			КонецЦикла;	
			
			Если НеобходимоЗаписать Тогда
				КС.Записать();
				Документы.КарточкаСделки.ОбновитьПараметрыКарточкиСделкиВSL(КС);
				rs = Неопределено;
			КонецЕсли;
			
		Иначе
			Для каждого Изделие из КС.Товары Цикл
				
				Если  Изделие.КонтрактнаяДата  < НачалоДня(ТекущаяДата()) Тогда
					Если (Изделие.СтатусСтроки = Справочники.СтатусыСтрокКарточкиСделки.Запланировано 
						или Изделие.СтатусСтроки = Справочники.СтатусыСтрокКарточкиСделки.Заказано) ИЛИ (Изделие.СтатусСтроки <> Справочники.СтатусыСтрокКарточкиСделки.Завершено И Выборка.СсылкаКС.Клиент = Справочники.Контрагенты.НайтиПоКоду("140755")) Тогда 
						Изделие.КонтрактнаяДата = НоваяКонтрДата;
						НеобходимоЗаписать = Истина;
					КонецЕсли;
				КонецЕсли;
				
			КонецЦикла; 
			
			Если НеобходимоЗаписать Тогда
				КС.Записать(); 
				
				rs = Неопределено;  
				
			КонецЕсли;
			
		КонецЕсли; 	
		
	КонецЦикла;

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

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

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

Из-за тебя ушел bormand, guest!

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


    8