Advertisement
Guest User

Проблемный код

a guest
Sep 18th, 2013
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.76 KB | None | 0 0
  1. Процедура ОбработкаПроведения(Отказ, Режим)
  2. ВремяНачало = ТекущаяДата();
  3. Запрос = Новый Запрос(
  4. "ВЫБРАТЬ
  5. | ВложенныйЗапрос.Номенклатура,
  6. | ВложенныйЗапрос.Номенклатура.ДокументСостава КАК ДокументСостава,
  7. | ВложенныйЗапрос.Характеристика,
  8. | СУММА(ВложенныйЗапрос.Понедельник) КАК Понедельник,
  9. | СУММА(ВложенныйЗапрос.Вторник) КАК Вторник,
  10. | СУММА(ВложенныйЗапрос.Среда) КАК Среда,
  11. | СУММА(ВложенныйЗапрос.Четверг) КАК Четверг,
  12. | СУММА(ВложенныйЗапрос.Пятница) КАК Пятница,
  13. | СУММА(ВложенныйЗапрос.Суббота) КАК Суббота,
  14. | СУММА(ВложенныйЗапрос.Воскресенье) КАК Воскресенье
  15. |ИЗ
  16. | (ВЫБРАТЬ
  17. | ПланПроизводстваСрезПоследних.Продукция КАК Номенклатура,
  18. | ПланПроизводстваСрезПоследних.Характеристика КАК Характеристика,
  19. | 0 КАК Понедельник,
  20. | 0 КАК Вторник,
  21. | 0 КАК Среда,
  22. | 0 КАК Четверг,
  23. | 0 КАК Пятница,
  24. | 0 КАК Суббота,
  25. | 0 КАК Воскресенье
  26. | ИЗ
  27. | РегистрСведений.ЗаказВПроизводство.СрезПоследних(
  28. | &Дата,
  29. | (Понедельник + Вторник + Среда + Четверг + Пятница + Суббота + Воскресенье <> 0)
  30. | И (Склад = &Склад) И (Магазин = &СЕ)) КАК ПланПроизводстваСрезПоследних
  31. |
  32. | ОБЪЕДИНИТЬ ВСЕ
  33. |
  34. | ВЫБРАТЬ
  35. | ПланПроизводстваСостав.Номенклатура,
  36. | ПланПроизводстваСостав.Характеристика,
  37. | ПланПроизводстваСостав.Понедельник * ПланПроизводстваСостав.Коэффициент,
  38. | ПланПроизводстваСостав.Вторник * ПланПроизводстваСостав.Коэффициент,
  39. | ПланПроизводстваСостав.Среда * ПланПроизводстваСостав.Коэффициент,
  40. | ПланПроизводстваСостав.Четверг * ПланПроизводстваСостав.Коэффициент,
  41. | ПланПроизводстваСостав.Пятница * ПланПроизводстваСостав.Коэффициент,
  42. | ПланПроизводстваСостав.Суббота * ПланПроизводстваСостав.Коэффициент,
  43. | ПланПроизводстваСостав.Воскресенье * ПланПроизводстваСостав.Коэффициент
  44. | ИЗ
  45. | Документ.ПериодическийЗаказВПроизводство.Состав КАК ПланПроизводстваСостав
  46. | ГДЕ
  47. | ПланПроизводстваСостав.Ссылка = &Ссылка) КАК ВложенныйЗапрос
  48. |
  49. |СГРУППИРОВАТЬ ПО
  50. | ВложенныйЗапрос.Номенклатура,
  51. | ВложенныйЗапрос.Характеристика");
  52. Запрос.УстановитьПараметр("Ссылка",Ссылка);
  53. Запрос.УстановитьПараметр("Дата",МоментВремени());
  54. Запрос.УстановитьПараметр("Склад",Склад);
  55. Запрос.УстановитьПараметр("СЕ",СтруктурнаяЕдиница);
  56. ТЗПланПроизводства = Запрос.Выполнить().Выгрузить();
  57. РазузлованиеПродукции = Обработки.РазузлованиеПродукции.Создать();
  58. РазузлованиеПродукции.ВидПроизводства = Перечисления.ВидыПроизводства.Приготовление;
  59. Для Каждого ТекСтрокаСостав Из ТЗПланПроизводства Цикл
  60. Движение = Движения.ЗаказВПроизводство.Добавить();
  61. Движение.Магазин = СтруктурнаяЕдиница;
  62. Движение.Характеристика = ТекСтрокаСостав.Характеристика;
  63. Движение.Период = Дата;
  64. Движение.Продукция = ТекСтрокаСостав.Номенклатура;
  65. Движение.Склад = Склад;
  66. Движение.Понедельник = ТекСтрокаСостав.Понедельник;
  67. Движение.Вторник = ТекСтрокаСостав.Вторник;
  68. Движение.Среда = ТекСтрокаСостав.Среда;
  69. Движение.Четверг = ТекСтрокаСостав.Четверг;
  70. Движение.Пятница = ТекСтрокаСостав.Пятница;
  71. Движение.Суббота = ТекСтрокаСостав.Суббота;
  72. Движение.Воскресенье = ТекСтрокаСостав.Воскресенье;
  73. //
  74. Если (ТекСтрокаСостав.Понедельник+ТекСтрокаСостав.Вторник+ТекСтрокаСостав.Среда+ТекСтрокаСостав.Четверг+ТекСтрокаСостав.Пятница+
  75. ТекСтрокаСостав.Суббота+ТекСтрокаСостав.Воскресенье) <>0 Тогда
  76. СтрПродукции = РазузлованиеПродукции.Продукция.Добавить();
  77. СтрПродукции.ЕдиницаИзмерения = ОмОбщиеПроцедурыИФункции.ПолучитьБазовуюЕдиницуИзмерения(ТекСтрокаСостав.Номенклатура);
  78. ТекКлюч = Строка(Новый УникальныйИдентификатор());
  79. СтрПродукции.Ключ = ТекКлюч;
  80. СтрПродукции.Количество = 1;
  81. СтрПродукции.Коэффициент = 1;
  82. СтрПродукции.Номенклатура = ТекСтрокаСостав.Номенклатура;
  83. СтрПродукции.ТехнологическаяКарта = ТекСтрокаСостав.ДокументСостава;
  84. СтрПродукции.флНеИнгредиентов = Истина;
  85. СтрПродукции.ХарактеристикаПартия = ТекСтрокаСостав.Характеристика;
  86. РазузлованиеПродукции.СтвТехКарта.Вставить(ТекКлюч ,Новый ДеревоЗначений());
  87. КонецЕсли;
  88. КонецЦикла;
  89. РазузлованиеПродукции.Разузлование();
  90. РазузлованиеПродукции.АвтоподборАналогов();
  91. МенВремТаблиц = Новый МенеджерВременныхТаблиц();
  92. РазузлованиеПродукции.ПеренестиРезультатыВоВременнуюТаблицу(МенВремТаблиц, "ТИнгредиенты");
  93. РазузлованиеПродукции = Неопределено;
  94. Запрос.Текст =
  95. " ВЫБРАТЬ
  96. | Потребность.Продукция КАК Продукция,
  97. | Потребность.Номенклатура КАК Номенклатура,
  98. | Потребность.Характеристика КАК Характеристика,
  99. | Потребность.Аналог КАК Аналог,
  100. | Сумма(Понедельник) КАК Понедельник,
  101. | Сумма(Вторник) КАК Вторник,
  102. | Сумма(Среда) КАК Среда,
  103. | Сумма(Четверг) КАК Четверг,
  104. | Сумма(Пятница) КАК Пятница,
  105. | Сумма(Суббота) КАК Суббота,
  106. | Сумма(Воскресенье) КАК Воскресенье
  107. |ИЗ
  108. |(
  109. |ВЫБРАТЬ
  110. | ПотребностьПроизводстваСрезПоследних.Продукция,
  111. | ПотребностьПроизводстваСрезПоследних.Ингредиент КАК Номенклатура,
  112. | ПотребностьПроизводстваСрезПоследних.Характеристика КАК Характеристика,
  113. | ПотребностьПроизводстваСрезПоследних.Аналог КАК Аналог,
  114. | 0 КАК Понедельник,
  115. | 0 КАК Вторник,
  116. | 0 КАК Среда,
  117. | 0 КАК Четверг,
  118. | 0 КАК Пятница,
  119. | 0 КАК Суббота,
  120. | 0 КАК Воскресенье
  121. |ИЗ
  122. | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
  123. | &дата,
  124. | Понедельник + Вторник + Среда + Четверг + Пятница + Суббота + Воскресенье <> 0
  125. | И Склад = &Склад И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних
  126. |
  127. |ОБЪЕДИНИТЬ ВСЕ
  128. |
  129. |ВЫБРАТЬ
  130. | ТИнгредиенты.Продукция,
  131. | ТИнгредиенты.Номенклатура,
  132. | ТИнгредиенты.ХарактеристикаСостава,
  133. | Выбор когда ТИнгредиенты.Ингредиент = Значение(Справочник.Номенклатура.ПустаяСсылка) тогда
  134. | ТИнгредиенты.Номенклатура
  135. | иначе
  136. | ТИнгредиенты.Ингредиент
  137. | конец,
  138. | Состав.Понедельник * Состав.Коэффициент * ТИнгредиенты.Количество КАК Понедельник,
  139. | Состав.Вторник * Состав.Коэффициент * ТИнгредиенты.Количество КАК Вторник,
  140. | Состав.Среда * Состав.Коэффициент * ТИнгредиенты.Количество КАК Среда,
  141. | Состав.Четверг * Состав.Коэффициент * ТИнгредиенты.Количество КАК Четверг,
  142. | Состав.Пятница * Состав.Коэффициент * ТИнгредиенты.Количество КАК Пятница,
  143. | Состав.Суббота * Состав.Коэффициент * ТИнгредиенты.Количество КАК Суббота,
  144. | Состав.Воскресенье * Состав.Коэффициент * ТИнгредиенты.Количество КАК Воскресенье
  145. | ИЗ Документ.ПериодическийЗаказВПроизводство.Состав КАК Состав
  146. | внутреннее соединение ТИнгредиенты по Состав.Номенклатура = ТИнгредиенты.Продукция
  147. | И Состав.Характеристика = ТИнгредиенты.Характеристика
  148. | Где состав.Ссылка = &ссылка
  149. | ) КАК Потребность
  150. | Сгруппировать по
  151. | Потребность.Продукция,
  152. | Потребность.Номенклатура,
  153. | Потребность.Характеристика,
  154. | Потребность.Аналог
  155. |";
  156. Запрос.МенеджерВременныхТаблиц = МенВремТаблиц;
  157. Запрос.УстановитьПараметр("ссылка", ссылка);
  158. Запрос.УстановитьПараметр("Склад", Склад);
  159. Запрос.УстановитьПараметр("СЕ",СтруктурнаяЕдиница);
  160. СтрокаКарты = Запрос.Выполнить().Выбрать();
  161. Пока СтрокаКарты.Следующий() Цикл
  162. Запись = Движения.ПотребностьПроизводстваПоЗаказам.Добавить();
  163. Запись.Характеристика = СтрокаКарты.Характеристика;
  164. Запись.Период = Дата;
  165. Запись.Продукция = СтрокаКарты.Продукция;
  166. Запись.Склад = Склад;
  167. Запись.Ингредиент = СтрокаКарты.Номенклатура;
  168. Запись.Аналог = СтрокаКарты.Аналог;
  169. Запись.Понедельник = СтрокаКарты.Понедельник;
  170. Запись.Вторник = СтрокаКарты.Вторник;
  171. Запись.Среда = СтрокаКарты.Среда;
  172. Запись.Четверг = СтрокаКарты.Четверг;
  173. Запись.Пятница = СтрокаКарты.Пятница;
  174. Запись.Суббота = СтрокаКарты.Суббота;
  175. Запись.Воскресенье = СтрокаКарты.Воскресенье;
  176. Запись.Магазин = СтруктурнаяЕдиница;
  177. КонецЦикла;
  178. Если ОмЗаполнениеДанными.ОтладкаРазрешена() Тогда
  179. Время = ТекущаяДата()-ВремяНачало;
  180. Параметры = "Всего товаров - "+Состав.Количество();
  181. ОмПривилегированный.ЗаписьИнформацииОтладки("Проведение документа """+СокрЛП(ЭтотОбъект.Метаданные().Синоним)+"""",Параметры,Время,Номер);
  182. КонецЕсли;
  183. КонецПроцедуры
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement