Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.44 KB | None | 0 0
  1. процедура Рассчитать(Регистратор, ПериодРегистрации) экспорт
  2.  
  3.  
  4. ///////
  5. /////// ОСНОВ. НАЧИСЛЕНИЯ
  6. ///////
  7.  
  8. НаборОсновные = РегистрыРасчета.ОсновныеНачисления.СоздатьНаборЗаписей();
  9. НаборОсновные.Отбор.Регистратор.установить(Регистратор);
  10. НаборОсновные.Прочитать();
  11.  
  12. Запрос = Новый Запрос;
  13. Запрос.Текст =
  14. "ВЫБРАТЬ
  15. | ОсновныеНачисленияДанныеГрафика.НомерСтроки,
  16. | ОсновныеНачисленияДанныеГрафика.ВидРасчета,
  17. | ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК ФактДней,
  18. | ОсновныеНачисленияДанныеГрафика.ЗначениеПериодДействия КАК НормаДней,
  19. | ОсновныеНачисленияДанныеГрафика.Размер,
  20. | ЕСТЬNULL(ОсновныеНачисленияБазаОсновныеНачисления.РезультатБаза, 0) + ЕСТЬNULL(ОсновныеНачисленияБазаДополнительныеНачисления.РезультатБаза, 0) КАК База
  21. |ИЗ
  22. | РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(
  23. | Регистратор = &Регистратор
  24. | И ПериодРегистрации = &ПериодРегистрации) КАК ОсновныеНачисленияДанныеГрафика
  25. | ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисления.БазаОсновныеНачисления(
  26. | &Измерения,
  27. | &Измерения,
  28. | ,
  29. | Регистратор = &Регистратор
  30. | И ПериодРегистрации = &ПериодРегистрации) КАК ОсновныеНачисленияБазаОсновныеНачисления
  31. | ПО ОсновныеНачисленияДанныеГрафика.НомерСтроки = ОсновныеНачисленияБазаОсновныеНачисления.НомерСтроки
  32. | ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисления.БазаДополнительныеНачисления(
  33. | &Измерения,
  34. | &Измерения,
  35. | ,
  36. | Регистратор = &Регистратор
  37. | И ПериодРегистрации = &ПериодРегистрации) КАК ОсновныеНачисленияБазаДополнительныеНачисления
  38. | ПО ОсновныеНачисленияДанныеГрафика.НомерСтроки = ОсновныеНачисленияБазаДополнительныеНачисления.НомерСтроки";
  39.  
  40. Измерения = Новый Массив(2);
  41. Измерения[0]= "Сотрудник";
  42. Измерения[1]= "Подразделение";
  43.  
  44. Запрос.УстановитьПараметр("Измерения", Измерения);
  45. Запрос.УстановитьПараметр("ПериодРегистрации", ПериодРегистрации);
  46. Запрос.УстановитьПараметр("Регистратор", Регистратор);
  47.  
  48. Результат = Запрос.Выполнить();
  49.  
  50. ВыборкаДетальныеЗаписи = Результат.Выбрать();
  51.  
  52. Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
  53.  
  54. Запись = НаборОсновные[ВыборкаДетальныеЗаписи.номерстроки-1];
  55.  
  56.  
  57. ОкладЗначение = ?(ВыборкаДетальныеЗаписи.НормаДней, ВыборкаДетальныеЗаписи.Размер/ ВыборкаДетальныеЗаписи.НормаДней * ВыборкаДетальныеЗаписи.ФактДней, 0);
  58.  
  59. Если ВыборкаДетальныеЗаписи.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда
  60.  
  61. Запись.Результат = ОкладЗначение
  62.  
  63. Иначе
  64.  
  65. КомандировкаЗначение = ?(ВыборкаДетальныеЗаписи.НормаДней, ВыборкаДетальныеЗаписи.База/ ВыборкаДетальныеЗаписи.НормаДней * ВыборкаДетальныеЗаписи.ФактДней, 0);
  66.  
  67. Запись.Результат = Макс(ОкладЗначение, КомандировкаЗначение);
  68.  
  69. КонецЕсли;
  70.  
  71. КонецЦикла;
  72.  
  73. НаборОсновные.Записать(, );
  74.  
  75. ///////
  76. /////// ДОП. НАЧИСЛЕНИЯ
  77. ///////
  78.  
  79. НаборДополнительные = РегистрыРасчета.ДополнительныеНачисления.СоздатьНаборЗаписей();
  80. НаборДополнительные.Отбор.Регистратор.установить(Регистратор);
  81. НаборДополнительные.Прочитать();
  82.  
  83. Запрос = Новый Запрос;
  84. Запрос.Текст =
  85. "ВЫБРАТЬ
  86. | ДополнительныеНачисленияБазаОсновныеНачисления.НомерСтроки,
  87. | ДополнительныеНачисленияБазаОсновныеНачисления.Размер,
  88. | ЕСТЬNULL(ДополнительныеНачисленияБазаОсновныеНачисления.РезультатБаза, 0) КАК База
  89. |ИЗ
  90. | РегистрРасчета.ДополнительныеНачисления.БазаОсновныеНачисления(
  91. | &Измерения,
  92. | &Измерения,
  93. | ,
  94. | Регистратор = &Регистратор
  95. | И ПериодРегистрации = &ПериодРегистрации) КАК ДополнительныеНачисленияБазаОсновныеНачисления";
  96.  
  97. Измерения = Новый Массив(2);
  98. Измерения[0]= "Сотрудник";
  99. Измерения[1]= "Подразделение";
  100.  
  101. Запрос.УстановитьПараметр("Измерения", Измерения);
  102. Запрос.УстановитьПараметр("ПериодРегистрации", ПериодРегистрации);
  103. Запрос.УстановитьПараметр("Регистратор", Регистратор);
  104.  
  105. Результат = Запрос.Выполнить();
  106.  
  107. ВыборкаДетальныеЗаписи = Результат.Выбрать();
  108.  
  109. Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
  110.  
  111. Запись = НаборДополнительные[ВыборкаДетальныеЗаписи.номерстроки-1];
  112.  
  113. Запись.Результат = ВыборкаДетальныеЗаписи.Размер/100 * ВыборкаДетальныеЗаписи.База;
  114.  
  115. КонецЦикла;
  116.  
  117. НаборДополнительные.Записать(, );
  118. КонецПроцедуры
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement