Advertisement
Guest User

Новый код

a guest
Sep 19th, 2013
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.59 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. | 0 КАК Вторник,
  110. | 0 КАК Среда,
  111. | 0 КАК Четверг,
  112. | 0 КАК Пятница,
  113. | 0 КАК Суббота,
  114. | 0 КАК Воскресенье
  115. | ИЗ
  116. | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
  117. | &дата,
  118. | Понедельник <> 0
  119. | И Склад = &Склад
  120. | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних
  121. |
  122. | ОБЪЕДИНИТЬ ВСЕ
  123. |
  124. | ВЫБРАТЬ
  125. | ПотребностьПроизводстваСрезПоследних2.Продукция,
  126. | ПотребностьПроизводстваСрезПоследних2.Ингредиент,
  127. | ПотребностьПроизводстваСрезПоследних2.Характеристика,
  128. | ПотребностьПроизводстваСрезПоследних2.Аналог,
  129. | 0,
  130. | ПотребностьПроизводстваСрезПоследних2.Вторник,
  131. | 0,
  132. | 0,
  133. | 0,
  134. | 0,
  135. | 0
  136. | ИЗ
  137. | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
  138. | &дата,
  139. | Вторник <> 0
  140. | И Склад = &Склад
  141. | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних2
  142. |
  143. | ОБЪЕДИНИТЬ ВСЕ
  144. |
  145. | ВЫБРАТЬ
  146. | ПотребностьПроизводстваСрезПоследних3.Продукция,
  147. | ПотребностьПроизводстваСрезПоследних3.Ингредиент,
  148. | ПотребностьПроизводстваСрезПоследних3.Характеристика,
  149. | ПотребностьПроизводстваСрезПоследних3.Аналог,
  150. | 0,
  151. | 0,
  152. | ПотребностьПроизводстваСрезПоследних3.Среда,
  153. | 0,
  154. | 0,
  155. | 0,
  156. | 0
  157. | ИЗ
  158. | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
  159. | &дата,
  160. | Среда <> 0
  161. | И Склад = &Склад
  162. | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних3
  163. |
  164. | ОБЪЕДИНИТЬ ВСЕ
  165. |
  166. | ВЫБРАТЬ
  167. | ПотребностьПроизводстваСрезПоследних4.Продукция,
  168. | ПотребностьПроизводстваСрезПоследних4.Ингредиент,
  169. | ПотребностьПроизводстваСрезПоследних4.Характеристика,
  170. | ПотребностьПроизводстваСрезПоследних4.Аналог,
  171. | 0,
  172. | 0,
  173. | 0,
  174. | ПотребностьПроизводстваСрезПоследних4.Четверг,
  175. | 0,
  176. | 0,
  177. | 0
  178. | ИЗ
  179. | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
  180. | &дата,
  181. | Четверг <> 0
  182. | И Склад = &Склад
  183. | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних4
  184. |
  185. | ОБЪЕДИНИТЬ ВСЕ
  186. |
  187. | ВЫБРАТЬ
  188. | ПотребностьПроизводстваСрезПоследних5.Продукция,
  189. | ПотребностьПроизводстваСрезПоследних5.Ингредиент,
  190. | ПотребностьПроизводстваСрезПоследних5.Характеристика,
  191. | ПотребностьПроизводстваСрезПоследних5.Аналог,
  192. | 0,
  193. | 0,
  194. | 0,
  195. | 0,
  196. | ПотребностьПроизводстваСрезПоследних5.Пятница,
  197. | 0,
  198. | 0
  199. | ИЗ
  200. | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
  201. | &дата,
  202. | Пятница <> 0
  203. | И Склад = &Склад
  204. | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних5
  205. |
  206. | ОБЪЕДИНИТЬ ВСЕ
  207. |
  208. | ВЫБРАТЬ
  209. | ПотребностьПроизводстваСрезПоследних6.Продукция,
  210. | ПотребностьПроизводстваСрезПоследних6.Ингредиент,
  211. | ПотребностьПроизводстваСрезПоследних6.Характеристика,
  212. | ПотребностьПроизводстваСрезПоследних6.Аналог,
  213. | 0,
  214. | 0,
  215. | 0,
  216. | 0,
  217. | 0,
  218. | ПотребностьПроизводстваСрезПоследних6.Суббота,
  219. | 0
  220. | ИЗ
  221. | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
  222. | &дата,
  223. | Суббота <> 0
  224. | И Склад = &Склад
  225. | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних6
  226. |
  227. | ОБЪЕДИНИТЬ ВСЕ
  228. |
  229. | ВЫБРАТЬ
  230. | ПотребностьПроизводстваСрезПоследних7.Продукция,
  231. | ПотребностьПроизводстваСрезПоследних7.Ингредиент,
  232. | ПотребностьПроизводстваСрезПоследних7.Характеристика,
  233. | ПотребностьПроизводстваСрезПоследних7.Аналог,
  234. | 0,
  235. | 0,
  236. | 0,
  237. | 0,
  238. | 0,
  239. | 0,
  240. | ПотребностьПроизводстваСрезПоследних7.Воскресенье
  241. | ИЗ
  242. | РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
  243. | &дата,
  244. | Воскресенье <> 0
  245. | И Склад = &Склад
  246. | И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних7) КАК Выборка
  247. |
  248. |СГРУППИРОВАТЬ ПО
  249. | Выборка.Продукция,
  250. | Выборка.Номенклатура,
  251. | Выборка.Характеристика,
  252. | Выборка.Аналог
  253. |
  254. |ИНДЕКСИРОВАТЬ ПО
  255. | общСумма";
  256.  
  257. Запрос.МенеджерВременныхТаблиц = МенВремТаблиц;
  258. Запрос.УстановитьПараметр("Склад", Склад);
  259. Запрос.УстановитьПараметр("СЕ",СтруктурнаяЕдиница);
  260. Запрос.Выполнить();
  261.  
  262. Запрос.Текст =
  263. " ВЫБРАТЬ
  264. | Потребность.Продукция КАК Продукция,
  265. | Потребность.Номенклатура КАК Номенклатура,
  266. | Потребность.Характеристика КАК Характеристика,
  267. | Потребность.Аналог КАК Аналог,
  268. | Сумма(Понедельник) КАК Понедельник,
  269. | Сумма(Вторник) КАК Вторник,
  270. | Сумма(Среда) КАК Среда,
  271. | Сумма(Четверг) КАК Четверг,
  272. | Сумма(Пятница) КАК Пятница,
  273. | Сумма(Суббота) КАК Суббота,
  274. | Сумма(Воскресенье) КАК Воскресенье
  275. |ИЗ
  276. |(
  277. |ВЫБРАТЬ Продукция,
  278. | Номенклатура,
  279. | Характеристика,
  280. | Аналог,
  281. | 0 КАК Понедельник,
  282. | 0 КАК Вторник,
  283. | 0 КАК Среда,
  284. | 0 КАК Четверг,
  285. | 0 КАК Пятница,
  286. | 0 КАК Суббота,
  287. | 0 КАК Воскресенье
  288. |ИЗ ТСрезПотребностьПроизводстваПоЗаказам
  289. | ГДЕ общСумма<>0
  290. |
  291. |ОБЪЕДИНИТЬ ВСЕ
  292. |
  293. |ВЫБРАТЬ
  294. | ТИнгредиенты.Продукция,
  295. | ТИнгредиенты.Номенклатура,
  296. | ТИнгредиенты.ХарактеристикаСостава,
  297. | Выбор когда ТИнгредиенты.Ингредиент = Значение(Справочник.Номенклатура.ПустаяСсылка) тогда
  298. | ТИнгредиенты.Номенклатура
  299. | иначе
  300. | ТИнгредиенты.Ингредиент
  301. | конец,
  302. | Состав.Понедельник * Состав.Коэффициент * ТИнгредиенты.Количество КАК Понедельник,
  303. | Состав.Вторник * Состав.Коэффициент * ТИнгредиенты.Количество КАК Вторник,
  304. | Состав.Среда * Состав.Коэффициент * ТИнгредиенты.Количество КАК Среда,
  305. | Состав.Четверг * Состав.Коэффициент * ТИнгредиенты.Количество КАК Четверг,
  306. | Состав.Пятница * Состав.Коэффициент * ТИнгредиенты.Количество КАК Пятница,
  307. | Состав.Суббота * Состав.Коэффициент * ТИнгредиенты.Количество КАК Суббота,
  308. | Состав.Воскресенье * Состав.Коэффициент * ТИнгредиенты.Количество КАК Воскресенье
  309. | ИЗ Документ.ПериодическийЗаказВПроизводство.Состав КАК Состав
  310. | внутреннее соединение ТИнгредиенты по Состав.Номенклатура = ТИнгредиенты.Продукция
  311. | И Состав.Характеристика = ТИнгредиенты.Характеристика
  312. | Где состав.Ссылка = &ссылка
  313. | ) КАК Потребность
  314. | Сгруппировать по
  315. | Потребность.Продукция,
  316. | Потребность.Номенклатура,
  317. | Потребность.Характеристика,
  318. | Потребность.Аналог
  319. |";
  320. Запрос.УстановитьПараметр("ссылка", ссылка);
  321. СтрокаКарты = Запрос.Выполнить().Выбрать();
  322. Пока СтрокаКарты.Следующий() Цикл
  323. Запись = Движения.ПотребностьПроизводстваПоЗаказам.Добавить();
  324. Запись.Характеристика = СтрокаКарты.Характеристика;
  325. Запись.Период = Дата;
  326. Запись.Продукция = СтрокаКарты.Продукция;
  327. Запись.Склад = Склад;
  328. Запись.Ингредиент = СтрокаКарты.Номенклатура;
  329. Запись.Аналог = СтрокаКарты.Аналог;
  330. Запись.Понедельник = СтрокаКарты.Понедельник;
  331. Запись.Вторник = СтрокаКарты.Вторник;
  332. Запись.Среда = СтрокаКарты.Среда;
  333. Запись.Четверг = СтрокаКарты.Четверг;
  334. Запись.Пятница = СтрокаКарты.Пятница;
  335. Запись.Суббота = СтрокаКарты.Суббота;
  336. Запись.Воскресенье = СтрокаКарты.Воскресенье;
  337. Запись.Магазин = СтруктурнаяЕдиница;
  338. КонецЦикла;
  339. Если ОмЗаполнениеДанными.ОтладкаРазрешена() Тогда
  340. Время = ТекущаяДата()-ВремяНачало;
  341. Параметры = "Всего товаров - "+Состав.Количество();
  342. ОмПривилегированный.ЗаписьИнформацииОтладки("Проведение документа """+СокрЛП(ЭтотОбъект.Метаданные().Синоним)+"""",Параметры,Время,Номер);
  343. КонецЕсли;
  344. КонецПроцедуры
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement