|
v7: Формирование номенклатурного заказа | ☑ | ||
---|---|---|---|---|
0
Style2out
27.07.11
✎
13:44
|
Добрый день уважаемые знатоки. Документ формирование номенклатурного заказа перелопачивает все заявки с момента ввода конфигурации на предприятии с 2009 г. это уже стало занимать немалое время при формировании заказа на предприятие. Соответственно с каждым днем время формирование все больше и больше. Привожу код процедуры формирования:
Если ТипЗаказа=Перечисление.ТипНоменклатурногоЗаказа.Плановый Тогда Запрос1 = СоздатьОбъект("Запрос"); ТекстЗапроса1 = "//{{ЗАПРОС(Документы) |Период с ДатаДок по ДатаДок; |Обрабатывать НеПомеченныеНаУдаление; |ОбрабатыватьДокументы Все; |ДокЭл_ = Документ.НоменклатурныйЗаказ.ТекущийДокумент; |Номер_ = Документ.НоменклатурныйЗаказ.НомерДок; |Дата_ = Документ.НоменклатурныйЗаказ.ДатаДок; |Подразделение_ = Документ.НоменклатурныйЗаказ.Подразделение; |Смена_ = Документ.НоменклатурныйЗаказ.ПроизводственнаяСмена; |КакойЗаказ_ = Документ.НоменклатурныйЗаказ.Дополнительный; |Группировка ДокЭл_; |"; Если Подразделение.Выбран()=1 Тогда ТекстЗапроса1=ТекстЗапроса1+ "Условие(Подразделение_ в Подразделение); |"; КонецЕсли; Если ПроизводственнаяСмена.Выбран()=1 Тогда ТекстЗапроса1=ТекстЗапроса1+ "Условие(Смена_ в ПроизводственнаяСмена); |"; КонецЕсли; Если Запрос1.Выполнить(ТекстЗапроса1) = 0 Тогда Возврат; КонецЕсли; Пока Запрос1.Группировка("ДокЭл_") = 1 Цикл Если Запрос1.КакойЗаказ_ = 0 Тогда СуществуетОсн = Запрос1.ДокЭл_; Иначе СуществуетДоп = Запрос1.ДокЭл_; КонецЕсли; КонецЦикла; ................... КонецЦикла; См_=ВозвратПодчСмены(МестоПодр,ПроизводственнаяСмена); СмН=См_.НачалоСмены; СмК=См_.ОкончаниеСмены; Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Обрабатывать НеПомеченныеНаУдаление; |Заявка_ = Документ.Заявка.ТекущийДокумент; |Включать_ = Документ.Заявка.ВключатьВПланПроизводства; |ВремяПогрузкиПер = Документ.Заявка.ВремяПогрузки; |Номенклатура = Документ.Заявка.Номенклатура; |ДатаПроизводства = Документ.Заявка.ДатаПроизводственнойСмены; |ПроизводственнаяСменаПер = Документ.Заявка.Смена; |Количество_ = Документ.Заявка.Количество; |Вес_ = Документ.Заявка.Вес; |ТараПер = Документ.Заявка.Тара; |ПодразделениеПер = Документ.Заявка.Подразделение; |УпаковкаПер = Документ.Заявка.Упаковка; |ВремяВыпОбщееПер = Документ.Заявка.ВремяВыпОбщее; |ВидУпаковкиПер = Документ.Заявка.ВидУпаковки; |КакаяЗаявка_ = Документ.Заявка.ОсновнаяЗаявка; |Функция Количество = Сумма(Количество_); |Функция Вес = Сумма(Вес_); |Группировка Заявка_ упорядочить по Заявка_.ДатаДок без групп;"; Если РазбиватьПоВремени=1 Тогда ТекстЗапроса=ТекстЗапроса+" |Группировка ВремяПогрузкиПер;"; КонецЕсли; ТекстЗапроса=ТекстЗапроса+" |Группировка Номенклатура упорядочить по Номенклатура.Код без групп; |Группировка ВидУпаковкиПер упорядочить по ВидУпаковкиПер.Код без групп; |Условие(Включать_ = 1); |Условие(ДатаПроизводства = ДатаДок); |Условие(ПодразделениеПер = Подразделение); |Условие(ПроизводственнаяСменаПер = ПроизводственнаяСмена);"; Если Дополнительный = 1 Тогда ТекстЗапроса=ТекстЗапроса+ "Условие(КакаяЗаявка_ = 1); |"; Иначе ТекстЗапроса=ТекстЗапроса+ "Условие(КакаяЗаявка_ = 0); |"; КонецЕсли; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; СмНПер=СмН; СмКПер=СмК; ТЗ=СоздатьОБъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Номенклатура"); ТЗ.НоваяКолонка("Упаковка"); ТЗ.НоваяКолонка("ВидУпаковки"); ТЗ.НоваяКолонка("ВремяНач","Число"); ТЗ.НоваяКолонка("ВремяКон","Число"); ТЗ.НоваяКолонка("Тара"); ТЗ.НоваяКолонка("Количество","Число"); ТЗ.НоваяКолонка("Вес","Число"); Как выйти из сложившейся ситуации? |
|||
1
andrewks
27.07.11
✎
13:46
|
э?
|
|||
2
vicof
27.07.11
✎
13:48
|
Если ТипЗаказа=Перечисление.ТипНоменклатурногоЗаказа.Плановый Тогда
Возврат; СтатусВозврата(0); КонецЕсли; |
|||
3
andrewks
27.07.11
✎
13:51
|
а я бы хотел поподробнее послушать про
"Документ формирование номенклатурного заказа перелопачивает все заявки с момента ввода конфигурации на предприятии с 2009 г" |
|||
4
Style2out
27.07.11
✎
14:05
|
После того как нажимаю кнопку «сформировать» внизу видна надпись типа «Обработка документов за 01.01.09» и так по текущую дату. Но нам нужно что бы проверялись документы за один день а не сначала ввода конфигурации. Или этого невозможно сделать?
|
|||
5
Style2out
27.07.11
✎
14:07
|
Если ТипЗаказа=Перечисление.ТипНоменклатурногоЗаказа.Плановый Тогда
Возврат; СтатусВозврата(0); КонецЕсли; Это что значит? |
|||
6
filh
27.07.11
✎
14:10
|
(4) во втором запросе где Период?
|
|||
7
Fenikus
27.07.11
✎
14:13
|
(1) Прямой запрос
|
|||
8
Style2out
27.07.11
✎
15:37
|
Добавил период во втором запросе и все стало работать нормально.
|
|||
9
Cthulhu
27.07.11
✎
16:49
|
графа отбора.
|
|||
10
Cthulhu
27.07.11
✎
16:50
|
(9)+: + ВыбратьПоЗначению()
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |