Имя: Пароль:
1C
1С v8
УПП. Оптимизация, очевидное-невероятное
,
0 trambalda
 
09.05.12
11:24
Дошли у меня руки до копания в типовом коде. Подключил ЦУП, поставил базу проводиться, совсем не удивился, что основная ругань на получение остатков по ПартиямТоваровНаСкладах, по всем трем. Посмотрел запросы, они почти одинаковые, вынес вложенный запрос к таблице остатков в отдельный запрос. Получил увеличение скорости проведения документов - фактически в три раза. Так что, если кто мается с тормозами при проведении по партиям - посмотрите в эту сторону. ЦУП на них теперь не ругается. Ругается на запрос к остаткам "НДСПартииТоваров", но там запрос прямой и простой как треугольник, оптимизировать вроде как и нечего, что делать с ним...
1 zak555
 
09.05.12
11:30
Центр Управление Полётами ?
2 proger2011
 
09.05.12
11:32
(0) Подкручивать скуль. Добавлять индексы.
3 Рэйв
 
09.05.12
11:32
(0)Добро пожаловать в клуб:-)
Я еще сто лет назад говорил, что писатели УПП ничего из легких наркотиуков не курили. Они ели тяжелые.
4 Aleksey
 
09.05.12
11:35
(1) Почти, Производительностью. Стыдно не знать такие вещи
5 Рэйв
 
09.05.12
11:36
(1)Если даш мыло, скину ссылку на cf ЦУПа пощупать:-)
6 trambalda
 
09.05.12
11:39
(2) Если речь об "НДСПартииТоваров", там и так все проиндексировано, и в запросе условия по порядку идут, в том же порядке как в конфигураторе задано.
7 proger2011
 
09.05.12
11:44
(6) Выложи этот запрос сюда
8 proger2011
 
09.05.12
11:45
(6) А план выполнения в скуле смотрел? Что дольше всего выполняется?
9 trambalda
 
09.05.12
11:48
ВЫБРАТЬ
   НДСПартииТоваровОстатки.Склад КАК Склад,
   НДСПартииТоваровОстатки.СчетУчета КАК СчетУчета,
   НДСПартииТоваровОстатки.Номенклатура КАК Номенклатура,
   НДСПартииТоваровОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   НДСПартииТоваровОстатки.СерияНоменклатуры КАК СерияНоменклатуры,
   НДСПартииТоваровОстатки.Партия.Дата КАК ДатаПартии,
   НДСПартииТоваровОстатки.Партия КАК Партия,
   НДСПартииТоваровОстатки.Заказ КАК Заказ,
   НДСПартииТоваровОстатки.СчетФактура.Дата КАК ДатаСФ,
   НДСПартииТоваровОстатки.СчетФактура КАК СчетФактура,
   НДСПартииТоваровОстатки.НДСВключенВСтоимость,
   НДСПартииТоваровОстатки.КоличествоОстаток,
   НДСПартииТоваровОстатки.СтоимостьОстаток,
   НДСПартииТоваровОстатки.НДСОстаток,
   ВЫБОР
       КОГДА НДСПартииТоваровОстатки.КоличествоОстаток > 0
           ТОГДА ИСТИНА
       ИНАЧЕ ЛОЖЬ
   КОНЕЦ КАК ЕстьКоличество,
   НДСПартииТоваровОстатки.ВидЦенности,
   НДСПартииТоваровОстатки.СчетУчетаНДС,
   НДСПартииТоваровОстатки.СтавкаНДС
ИЗ
   РегистрНакопления.НДСПартииТоваров.Остатки(
           &МоментСписания,
           Организация = &Организация
               И СчетУчета В (&СписокСчетовУчета)
               И Номенклатура В (&СписокНоменклатуры)
               И Склад В (&СписокСкладов)) КАК НДСПартииТоваровОстатки
ГДЕ
   НЕ НДСПартииТоваровОстатки.СтоимостьОстаток < 0

УПОРЯДОЧИТЬ ПО
   ДатаПартии,
   ДатаСФ
10 РазДва
 
09.05.12
11:49
(0) птичка от 1С напела, что ни по каким партиям при проведении при многопользовательской работе движений делать нельзя, и как ни оптимизируй серьёзной масштабируемости не добиться
11 zak555
 
09.05.12
11:50
(4) зато я знаю, что вложенные запросы - зло
12 zak555
 
09.05.12
11:51
(5) думаю, что на партнёрском диске есть
13 Aleksey
 
09.05.12
11:52
(11) Постоянно так делаю. На справочнике из 10 элементов- - летает
14 trambalda
 
09.05.12
11:52
(10) Требует серьезного пересмотра принципов ведения оперативного учета, к этому готовы далеко не все.
15 zak555
 
09.05.12
11:52
(13) а если 10 000 ?
16 trambalda
 
09.05.12
11:54
(12) На партнерском его нет, к сожалению, так что бери пока дают.
17 РазДва
 
09.05.12
11:56
(14) птичка от 1С поёт, что никакому оперативному учету не могут понадобится движения по партиям немедленно и достаточно делать их в фоне специальной обработкой с некоторой задержкой
18 zak555
 
09.05.12
11:57
(16) выйди в аську
19 trambalda
 
09.05.12
12:00
(17) Согласен, но опять же требуется пересмотр ведения учета. Тут главное не только на бумажке указания раздать, но и головы переформатировать, а на складах, скажем мягко, со светлыми головами не всегда айс.
(18) Я там круглосуточно.
20 РазДва
 
09.05.12
12:11
(19) что за монстры и гении со светлыми головами у вас на складах, даже не представляю зачем именно кладовщику могут понадобится партии, может ему ещё и проводки нужны?
Вобщем на приличное количество пользователей и активный поток документов в режиме онлайн проведения по партиям не смасштабировать(и на собственном опыте и по рекомендациям птичек из 1С).
21 trambalda
 
09.05.12
12:15
(20) Я ж говорю, требуется пересмотр ведения учета. У нас на складах партии контролируют, учет по сериям, экспорт, все серьезно.
22 РазДва
 
09.05.12
12:26
(21) По методологии 1С такого быть не может. )
23 proger2011
 
09.05.12
15:28
Что по поводу плана запроса в скуле?
24 ILM
 
гуру
09.05.12
16:28
А скажите мне:
=Вы также считаете ещё по партиям? При 10 тысячах товаров? Неслыханно...
- А как это помогает компании зарабатывать деньги?
25 ILM
 
гуру
09.05.12
16:30
(21)
- Атомная энергетика? Лекарства? Вооружение?
26 Ranger_83
 
09.05.12
16:32
(25)Скорее машиностроение какое-нить
27 proger2011
 
09.05.12
16:32
Электроника. Где на входе и на выходе серийники для гарантийного обслуживания.
28 ILM
 
гуру
09.05.12
16:40
(27) Электроника? Массовое производство?
На входе серийники не нужны, на складе тоже. На сборке при заполнении расхода материалов, может быть.
При комплектации готовой прождукции, наверное да?

Остатки на складах по партиям! Поверьте, это лишнее?
Узнайте сколько гарантийных случаев было? ПОтом думайте стоит ли это таких трудностей.
29 proger2011
 
09.05.12
16:50
(28) Это требования каких-либо других подразделений типа ОТК, отдел послепродажного обслуживания и т.д. А серийники на входе и на выходе единственная информация для них. Если этого не будет эти подразделения можно сократить. А сокращать нельзя, в договорах от и до по гарантии всё прописано. Это не транзисторные приёмники населению...
30 ILM
 
гуру
09.05.12
17:08
(29) Заведи паспорт экземпляра изделия. Пусть его заполняют производственники при изготовлении или при сборке. Все остальное от лукавого. Они сами находят себе работу. В договоре по гарантии написано: что будет сделано по гарантии, и что не будет. При этом экземпляр изделия можно указать при реализации товаров и услуг. А причем тут партии на складе и гарантийное обслуживание?

1) У вас не ведется анализ отказов.
2) Вы не делаете отзыв всей партии выпуска, если в одном экземпляре обнаружен брак.
3) По гарантии вы производите или ремонт или замену покупного.
Учет на складе у покупных товаров серий и партий абсолютно ЛИШНИЙ.

У вас изделия выпускаются долго? Срок поставки 4-6 месяцев?
А незавершенкой завалены столы и стелажи у сборщиков?
Срок поставки комплектующих месяца три?
31 proger2011
 
09.05.12
17:25
(30)На все вопросы отвечаю положительно.
Склад это очень интегрированное подразделение в производство. Нужна подробнейшая информация что? где? когда?
32 ILM
 
гуру
09.05.12
17:41
А город какой?
33 ILM
 
гуру
09.05.12
17:50
(31)
1) Уверен, что производственники сами приходят на склад за материалами.
2) Есть авралы, вся работа и отгрузка идет волнами.
3) Производство требует план на год.
4) Партии полуфабрикатов и комплектующих большие и делаются сразу на квартал или на полгода.

Помощь предприятию нужна...
34 proger2011
 
09.05.12
17:55
(33) Все ответы положительные кроме 2. Это не волны а сплошной аврал :)
35 ILM
 
гуру
09.05.12
18:01
(34) Грустно, я такую картину вижу повсеместно...
И поменять в лучшую сторону можно за один-два месяца. Вот только нужно ли это самим производственникам.
36 proger2011
 
09.05.12
18:26
(35) Как это менятся так быстро, с помощью чего? Производственникам по идее нужен порядок. А почему им может быть выгоден бардак?
37 ILM
 
гуру
09.05.12
18:37
Причин много:
Например, они могут свою работу размазать на большой период времени, и могут организовать работу так как нужно им, а не предприятию. Так как последовательность работы не согласована во времени и размер партии большой. Т.о. сборка изделия ждет всю последовательность цепочек заказов, если  конечно не отбирают их частями для частичной сборки. Или не извлекают из готовых изделий, для ускорения выпуска более важного изделия.

А диспетчера производства у вас, наверное, тоже нет?

Остатки на складах, не актуальные и комплектующие, списываются скорее всего в момент выпуска...

Могу проконсультировать ваше предприятие. Мыло есть.
38 hohol
 
09.05.12
18:44
ЦУП - развод лохов на деньги. Включил отладку на сервере, включил замер производительности. Увидел где тормозит. Все.
У меня 20000характеристик в одном материале, при его списании требование накладная проводилась 1-2 минуты. Я переписал запрос на временные таблицы, стало проводится 1-2секунды. В 60раз!
Могу код выложить.
39 ILM
 
гуру
09.05.12
18:49
(38) Про ЦУП согласен, хотя при большой пользовательской нагрузке может помочь, а может и не помочь.

Хочешь прикол. В одной организации скорость производства продукции за месяц увеличилась в 17 раз, а за полгода в 38 раз. Т.е. делали например 100 деталей в месяц, а стали успевать делать 3800 деталей.  
А запросы как делались за 15 секунд, так и делаются...
40 proger2011
 
09.05.12
18:53
(3) "А диспетчера производства у вас, наверное, тоже нет?

Остатки на складах, не актуальные и комплектующие, списываются скорее всего в момент выпуска... "


А таковой должности нет. Может кто-то эти обязанности выполняет. Что должен делать диспетчер?

Остатки вроде более менее актуальные, по крайней мере требование бизнеса от кладовщиков чтобы были актуальные. А списываются да, в момент выпуска.


"Могу проконсультировать ваше предприятие. Мыло есть."

Да тут и так начальников, советников и консультантов больше чем работяг. Ну ты дай ссылку на свой сайт или описание чё ты делаешь. А вдруг, чем чёрт не шутит...
41 sergey yevsenya
 
09.05.12
18:58
(38)выкладывай, интересно
42 ILM
 
гуру
09.05.12
19:06
(40) Обязанности диспетчера: Запуск работы в производство. Отслеживание выполнения работ. Присваивает статус и приоритеты заказам. Говорит сколько и когда выпускать. Разрешает выдачу материалов в производство.

Если заинтересует, то смотрите в интернете "Теорию ограничений Голдратта", а мое мыло есть в профиле.
43 hohol
 
09.05.12
19:07
Функция ПолучитьДеревоПартийНаСкладахУпр (МоментКон, СтруктураПараметров)
   
   Запрос = Новый Запрос;
   
   ОсновнойДокумент = Неопределено;
   СтруктураПараметров.Свойство("ОсновнойДокумент",ОсновнойДокумент);
   
   Регистратор = СтруктураПараметров.Регистратор;
   СпособОценкиМПЗ = СтруктураПараметров.СпособОценкиМПЗУпр;
   СтратегияСтатусПартии = СтруктураПараметров.СтратегияСтатусПартииУпр;
   ВестиПартионныйУчетПоСкладам = СтруктураПараметров.ВестиПартионныйУчетПоСкладамУпр;
   
   // Для повышения быстродействия остатки партий получаются различными способами
   Если СтруктураПараметров.Свойство("ЗакрытиеЗаказовПокупателей") Тогда
       ЗаполнитьЗапросПартийНаСкладахДляЗакрытияЗаказовПокупателей(Запрос);
       
   ИначеЕсли ОсновнойДокумент <> Неопределено И НЕ СтруктураПараметров.СписыватьПартииРасходнымОрдером
       И ТипЗнч(ОсновнойДокумент) = Тип("ДокументСсылка.РеализацияТоваровУслуг")тогда
       // Списание расходным ордером товара реализованного и принятого на ответственное хранение (отложенная отгрузка)
       ЗаполнитьЗапросПартийНаСкладахДляОтложеннойОтгрузкиУпр(Запрос, ВестиПартионныйУчетПоСкладам);
       
   ИначеЕсли ОсновнойДокумент <> Неопределено тогда
       // Списание партий по ордерной схеме:
       // - Списание партий по расходному ордеру
       // - Перемещение партий по приходному ордеру
       // - Перемещение партий поступлением товаров и услуг в НТТ
       // Движения реализации выполняет расходный ордер, движения перемещения выполняет приходный ордер
       ЗаполнитьЗапросПартийНаСкладахДляСписанияПоОрдернойСхемеУпр(Запрос, ВестиПартионныйУчетПоСкладам, СтратегияСтатусПартии, СпособОценкиМПЗ);
       
   Иначе
       // Общий случай списания
       
       Если Константы.НовыйАлгоритмСписания.Получить() и (ТипЗнч(Регистратор) = Тип("ДокументСсылка.ТребованиеНакладная")
           или ТипЗнч(Регистратор) = Тип("ДокументСсылка.РеализацияТоваровУслуг") или ТипЗнч(Регистратор) = Тип("ДокументСсылка.ПеремещениеТоваров") ) Тогда
           ОбщийМодульДополнительный.ЗаполнитьЗапросПартийНаСкладахУпр(Запрос, ВестиПартионныйУчетПоСкладам, СтратегияСтатусПартии, СпособОценкиМПЗ);
           Если НЕ СтруктураПараметров.ИспользоватьУказаниеСерийНоменклатурыПриРезервировании тогда
               Запрос.Текст = СтрЗаменить(Запрос.Текст,"ИЛИ ПартииТоваровНаСкладах.СерияНоменклатуры = &ПустаяСерияНоменклатуры",
               "ИЛИ ПартииТоваровНаСкладах.СерияНоменклатуры = &ПустаяСерияНоменклатуры
               |ИЛИ СписанныеТовары.КодОперацииПартииТоваров = &КодРезервирование");
               Запрос.УстановитьПараметр("КодРезервирование" , СтруктураПараметров.КодыОпераций.РезервированиеПодЗаказ)
           КонецЕсли;
           ВременнаяТаблица = ОбщийМодульДополнительный.ПолучитьВТ(Регистратор);
           Запрос.МенеджерВременныхТаблиц = ВременнаяТаблица;
           
           
       Иначе
           // Общий случай списания
           ЗаполнитьЗапросПартийНаСкладахУпр(Запрос, ВестиПартионныйУчетПоСкладам, СтратегияСтатусПартии, СпособОценкиМПЗ);
           Если НЕ СтруктураПараметров.ИспользоватьУказаниеСерийНоменклатурыПриРезервировании тогда
               Запрос.Текст = СтрЗаменить(Запрос.Текст,"ИЛИ ПартииТоваровНаСкладах.СерияНоменклатуры = &ПустаяСерияНоменклатуры",
               "ИЛИ ПартииТоваровНаСкладах.СерияНоменклатуры = &ПустаяСерияНоменклатуры
               |ИЛИ СписанныеТовары.КодОперацииПартииТоваров = &КодРезервирование");
               Запрос.УстановитьПараметр("КодРезервирование" , СтруктураПараметров.КодыОпераций.РезервированиеПодЗаказ)
           КонецЕсли;
       КонецЕсли;
   КонецЕсли;
   
   Запрос.УстановитьПараметр("ПустаяСерияНоменклатуры", Справочники.СерииНоменклатуры.ПустаяСсылка());
   Запрос.УстановитьПараметр("ПустойЗаказ", Документы.ЗаказПокупателя.ПустаяСсылка());
   Запрос.УстановитьПараметр("ПустойСтатус", Перечисления.СтатусыПартийТоваров.ПустаяСсылка());
   Запрос.УстановитьПараметр("СтатусПартииПоОрдеру", Перечисления.СтатусыПартийТоваров.ПоОрдеру);    
   Запрос.УстановитьПараметр("ПустоеКачество", Справочники.Качество.ПустаяСсылка());
   Запрос.УстановитьПараметр("КачествоНовый", Справочники.Качество.Новый);
   Запрос.УстановитьПараметр("ПустойСклад", Справочники.Склады.ПустаяСсылка());
   Запрос.УстановитьПараметр("Организация", СтруктураПараметров.ОрганизацияУпр);
   
   Запрос.УстановитьПараметр("Ссылка", Регистратор);
   
   Если  ОсновнойДокумент <> Неопределено Тогда
       Запрос.УстановитьПараметр("ОсновнойДокумент", ОсновнойДокумент);
   Иначе
       Запрос.УстановитьПараметр("ОсновнойДокумент", Регистратор);
   КонецЕсли;
   
   Запрос.УстановитьПараметр("Дат", МоментКон);
   
   Запрос.УстановитьПараметр("НаКомиссию", Перечисления.СтатусыПартийТоваров.НаКомиссию);
   
   Возврат Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
   
КонецФункции//ПолучитьДеревоПартийНаСкладахУпр


Процедура ЗаполнитьЗапросПартийНаСкладахУпр(Запрос, ВестиПартионныйУчетПоСкладам, СтратегияСтатусПартии, СпособОценкиМПЗ) Экспорт
   ПараметрыЗапроса_ДатаОприходования = ПолучитьДанныеДляЗапроса_ДокументОприходованияДата(СпособОценкиМПЗ,"ПартииТоваровНаСкладах");
   
   Запрос.Текст =
   "ВЫБРАТЬ
   |    СписанныеТовары.НомерСтрокиДокумента КАК НомерСтрокиДокумента,
   |    ПартииТоваровНаСкладах.Номенклатура,
   |    ПартииТоваровНаСкладах.ДокументОприходования КАК ДокументОприходования,
   |    "+ПараметрыЗапроса_ДатаОприходования.ДокОприходованияДата_Выбор+"
   |    ПартииТоваровНаСкладах.Склад,
   |    ПартииТоваровНаСкладах.ХарактеристикаНоменклатуры,
   |    ПартииТоваровНаСкладах.СерияНоменклатуры,
   |    ПартииТоваровНаСкладах.Качество,
   |    ПартииТоваровНаСкладах.Заказ,
   |    ПартииТоваровНаСкладах.КоличествоОстаток КАК Количество,
   |    ПартииТоваровНаСкладах.СтоимостьОстаток КАК Стоимость,
   |    ПартииТоваровНаСкладах.СтатусПартии,
   |    ВЫБОР
   |        КОГДА СписанныеТовары.СерияНоменклатуры = ПартииТоваровНаСкладах.СерияНоменклатуры
   |            ТОГДА 0
   |        ИНАЧЕ 1
   |    КОНЕЦ КАК ЧислоСерияНоменклатуры,
   |    ВЫБОР
   |        КОГДА СписанныеТовары.ДокументПартии = НЕОПРЕДЕЛЕНО
   |            ТОГДА 0
   |        ИНАЧЕ ВЫБОР
   |                КОГДА СписанныеТовары.ДокументПартии = ПартииТоваровНаСкладах.ДокументОприходования
   |                    ТОГДА 0
   |                ИНАЧЕ 1
   |            КОНЕЦ
   |    КОНЕЦ КАК ЧислоДокументОприходования,
   |    ВЫБОР
   |        КОГДА СписанныеТовары.ЗаказПартии = НЕОПРЕДЕЛЕНО
   |            ТОГДА 0
   |        ИНАЧЕ ВЫБОР
   |                КОГДА ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ
   |                    ТОГДА 1
   |                ИНАЧЕ 0
   |            КОНЕЦ
   |    КОНЕЦ КАК ЧислоЗаказ,
   |    ВЫБОР
   |        КОГДА ПартииТоваровНаСкладах.СтатусПартии = &НаКомиссию
   |            ТОГДА 1
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК ЧислоСтатусПартии
   |ИЗ
   |    ВТСписанныеТовары КАК СписанныеТовары
   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(
   |        &Дат, Организация = &Организация И
   |        Номенклатура В
   |            (ВЫБРАТЬ
   |                ВТСписанныеТовары.Номенклатура
   |            ИЗ
   |                ВТСписанныеТовары
   |            ГДЕ
   |                ВТСписанныеТовары.Регистратор = &Ссылка)" + ?(ВестиПартионныйУчетПоСкладам, "
   |        И (Склад В
   |            (ВЫБРАТЬ
   |                ВТСписанныеТовары.Склад
   |            ИЗ
   |                ВТСписанныеТовары
   |            ГДЕ
   |               ВТСписанныеТовары.Регистратор = &Ссылка) ИЛИ Склад = &ПустойСклад)", "") + ") КАК ПартииТоваровНаСкладах
   |        ПО СписанныеТовары.Номенклатура = ПартииТоваровНаСкладах.Номенклатура
   |            И СписанныеТовары.ХарактеристикаНоменклатуры = ПартииТоваровНаСкладах.ХарактеристикаНоменклатуры
   |            И (ВЫБОР
   |                КОГДА ПартииТоваровНаСкладах.Качество = &ПустоеКачество
   |                    ТОГДА ИСТИНА
   |                ИНАЧЕ ВЫБОР
   |                        КОГДА СписанныеТовары.Качество = &ПустоеКачество
   |                            ТОГДА ПартииТоваровНаСкладах.Качество = &КачествоНовый
   |                        ИНАЧЕ ПартииТоваровНаСкладах.Качество = СписанныеТовары.Качество
   |                    КОНЕЦ
   |            КОНЕЦ)
   |            " + ?(ВестиПартионныйУчетПоСкладам, "И (ПартииТоваровНаСкладах.Склад = СписанныеТовары.Склад ИЛИ ПартииТоваровНаСкладах.Склад = &ПустойСклад)", "") + "
   |            И (ВЫБОР
   |                КОГДА СписанныеТовары.ДопустимыйСтатус1 <> &ПустойСтатус
   |                        ИЛИ СписанныеТовары.ДопустимыйСтатус2 <> &ПустойСтатус
   |                        ИЛИ СписанныеТовары.ДопустимыйСтатус3 <> &ПустойСтатус
   |                        ИЛИ СписанныеТовары.ДопустимыйСтатус4 <> &ПустойСтатус
   |                    ТОГДА ПартииТоваровНаСкладах.СтатусПартии = &ПустойСтатус
   |                            ИЛИ ПартииТоваровНаСкладах.СтатусПартии = &СтатусПартииПоОрдеру
   |                            ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус1
   |                            ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус2
   |                            ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус3
   |                            ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус4
   |                ИНАЧЕ ИСТИНА
   |            КОНЕЦ)
   |    
   |        И (ВЫБОР
   |            КОГДА СписанныеТовары.СписыватьТолькоПоЗаказу = ИСТИНА
   |                ТОГДА ВЫБОР
   |                        КОГДА ПартииТоваровНаСкладах.Заказ <> СписанныеТовары.ЗаказПартии
   |                            ТОГДА ВЫБОР
   |                                    КОГДА (НЕ СписанныеТовары.ЗаказПартии = НЕОПРЕДЕЛЕНО)
   |                                        ТОГДА ЛОЖЬ
   |                                    ИНАЧЕ ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ
   |                                КОНЕЦ
   |                        ИНАЧЕ ИСТИНА
   |                    КОНЕЦ
   |            ИНАЧЕ ВЫБОР
   |                    КОГДА ПартииТоваровНаСкладах.Заказ <> СписанныеТовары.ЗаказПартии
   |                        ТОГДА ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ
   |                    ИНАЧЕ ИСТИНА
   |                КОНЕЦ
   |        КОНЕЦ)
   |        И (СписанныеТовары.СерияНоменклатуры = ПартииТоваровНаСкладах.СерияНоменклатуры
   |            ИЛИ ПартииТоваровНаСкладах.СерияНоменклатуры = &ПустаяСерияНоменклатуры)
   |ГДЕ
   |    СписанныеТовары.Регистратор = &ОсновнойДокумент
   |
   |УПОРЯДОЧИТЬ ПО
   |    ЧислоСерияНоменклатуры,
   |    ЧислоДокументОприходования,
   |    ЧислоЗаказ,
   |    ЧислоСтатусПартии" + ?(СтратегияСтатусПартии = Перечисления.СтретегииСписанияПартийТоваровПоСтатусам.СначалаПринятыеПотомСобственные, " Убыв", "") + ",
   |    "+ПараметрыЗапроса_ДатаОприходования.ДокОприходованияДата_Сортировка+"
   |    ДокументОприходования" + ?(СпособОценкиМПЗ = "ЛИФО", " Убыв","") + ",
   |    ПартииТоваровНаСкладах.Склад
   |ИТОГИ ПО
   |    НомерСтрокиДокумента";
   
   
КонецПроцедуры // ЗаполнитьЗапросПартийНаСкладахУпр()


Функция ПолучитьВТ(Ссылка) Экспорт
   Если ТипЗнч(Ссылка) = Тип("ДокументСсылка.ТребованиеНакладная") Тогда
       ЗапросВремСписанныеТовары = Новый Запрос;
       ТекстЗапроса =
       "ВЫБРАТЬ
       |    СписанныеТовары.Период,
       |    СписанныеТовары.Регистратор,
       |    СписанныеТовары.НомерСтроки,
       |    СписанныеТовары.Активность,
       |    СписанныеТовары.НомерСтрокиДокумента,
       |    СписанныеТовары.ВалютаДокумента,
       |    СписанныеТовары.ВедениеУчетаПоПроектам,
       |    СписанныеТовары.ВидТабличнойЧасти,
       |    СписанныеТовары.ДоговорКонтрагента,
       |    СписанныеТовары.ДокументОприходованияНовый,
       |    СписанныеТовары.ДокументПартии,
       |    СписанныеТовары.ДокументПередачи,
       |    СписанныеТовары.ДопустимыйСтатус1,
       |    СписанныеТовары.ДопустимыйСтатус2,
       |    СписанныеТовары.ДопустимыйСтатус3,
       |    СписанныеТовары.ДопустимыйСтатус4,
       |    СписанныеТовары.ЗаказПартии,
       |    СписанныеТовары.ЗаказСписания,
       |    СписанныеТовары.ИзменитьСерию,
       |    СписанныеТовары.ИзменитьСклад,
       |    СписанныеТовары.ИзменитьХарактеристику,
       |    СписанныеТовары.Качество,
       |    СписанныеТовары.КачествоНовое,
       |    СписанныеТовары.КодОперацииПартииТоваров,
       |    СписанныеТовары.Количество,
       |    СписанныеТовары.КоличествоПоступление,
       |    СписанныеТовары.КорВалютаЗадолженностиБУ,
       |    СписанныеТовары.КорВалютнаяСуммаЗадолженностиБУ,
       |    СписанныеТовары.КорВалютнаяСуммаНДСЗадолженностиБУ,
       |    СписанныеТовары.КорСубконтоБУ1,
       |    СписанныеТовары.КорСубконтоБУ2,
       |    СписанныеТовары.КорСубконтоБУ3,
       |    СписанныеТовары.КорСубконтоЗадолженностиБУ1,
       |    СписанныеТовары.КорСубконтоЗадолженностиБУ2,
       |    СписанныеТовары.КорСубконтоЗадолженностиБУ3,
       |    СписанныеТовары.КорСубконтоМУ1,
       |    СписанныеТовары.КорСубконтоМУ2,
       |    СписанныеТовары.КорСубконтоМУ3,
       |    СписанныеТовары.КорСубконтоНУ1,
       |    СписанныеТовары.КорСубконтоНУ2,
       |    СписанныеТовары.КорСубконтоНУ3,
       |    СписанныеТовары.КорСчетБУ,
       |    СписанныеТовары.КорСчетЗадолженностиБУ,
       |    СписанныеТовары.КорСчетМУ,
       |    СписанныеТовары.КорСчетНУ,
       |    СписанныеТовары.КратностьДокумента,
       |    СписанныеТовары.КурсДокумента,
       |    СписанныеТовары.НазначениеИспользования,
       |    СписанныеТовары.НеСписывать,
       |    СписанныеТовары.Номенклатура,
       |    СписанныеТовары.НоменклатураКомплекта,
       |    СписанныеТовары.НоменклатураНовая,
       |    СписанныеТовары.НоменклатурнаяГруппа,
       |    СписанныеТовары.ОбъектСтроительства,
       |    СписанныеТовары.Организация,
       |    СписанныеТовары.ОсновноеСредство,
       |    СписанныеТовары.ОсновнойДокумент,
       |    СписанныеТовары.ОтражатьВБухгалтерскомУчете,
       |    СписанныеТовары.ОтражатьВМеждународномУчете,
       |    СписанныеТовары.ОтражатьВНалоговомУчете,
       |    СписанныеТовары.ОтражатьВУправленческомУчете,
       |    СписанныеТовары.Подразделение,
       |    СписанныеТовары.ПодразделениеОрганизации,
       |    СписанныеТовары.ПоступлениеПриходныйОрдер,
       |    СписанныеТовары.ПринятыеКорСчетБУ,
       |    СписанныеТовары.ПринятыеКорСчетНУ,
       |    СписанныеТовары.ПринятыеСчетУчетаБУ,
       |    СписанныеТовары.ПринятыеСчетУчетаНУ,
       |    СписанныеТовары.Продукция,
       |    СписанныеТовары.Проект,
       |    СписанныеТовары.СерияНоменклатуры,
       |    СписанныеТовары.СерияНоменклатурыНовая,
       |    СписанныеТовары.Склад,
       |    СписанныеТовары.СкладПолучатель,
       |    СписанныеТовары.СписыватьТолькоПоЗаказу,
       |    СписанныеТовары.СтавкаНДС,
       |    СписанныеТовары.СтатусПартииНовый,
       |    СписанныеТовары.СтатусПередачи,
       |    СписанныеТовары.СтатьяДоходовИРасходов,
       |    СписанныеТовары.СтатьяЗатрат,
       |    СписанныеТовары.СтатьяЗатратНДС,
       |    СписанныеТовары.СтоимостьПоступление,
       |    СписанныеТовары.СтоимостьПоступлениеБУ,
       |    СписанныеТовары.СуммаЗадолженности,
       |    СписанныеТовары.СуммаЗадолженностиБУ,
       |    СписанныеТовары.СуммаНДС,
       |    СписанныеТовары.СчетДоходовБУ,
       |    СписанныеТовары.СчетДоходовНУ,
       |    СписанныеТовары.СчетРасходовБУ,
       |    СписанныеТовары.СчетРасходовНУ,
       |    СписанныеТовары.СчетУчетаБУ,
       |    СписанныеТовары.СчетУчетаМУ,
       |    СписанныеТовары.СчетУчетаНДС,
       |    СписанныеТовары.СчетУчетаНУ,
       |    СписанныеТовары.ФизЛицо,
       |    СписанныеТовары.ХарактеристикаНоменклатуры,
       |    СписанныеТовары.ХарактеристикаНоменклатурыНовая,
       |    СписанныеТовары.КоличествоКомплекта,
       |    СписанныеТовары.ХарактеристикаКомплекта,
       |    СписанныеТовары.МоментВремени
       |ПОМЕСТИТЬ ВТСписанныеТовары
       |ИЗ
       |    (ВЫБРАТЬ
       |        ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
       |        ТребованиеНакладнаяМатериалы.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
       |        СУММА(ТребованиеНакладнаяМатериалы.Количество) КАК Количество,
       |        ТребованиеНакладнаяМатериалы.Склад КАК Склад,
       |        ТребованиеНакладнаяМатериалы.Ссылка КАК Ссылка
       |    ИЗ
       |        Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
       |    ГДЕ
       |        ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка
       |    
       |    СГРУППИРОВАТЬ ПО
       |        ТребованиеНакладнаяМатериалы.ХарактеристикаНоменклатуры,
       |        ТребованиеНакладнаяМатериалы.Номенклатура,
       |        ТребованиеНакладнаяМатериалы.Склад,
       |        ТребованиеНакладнаяМатериалы.Ссылка) КАК ВложенныйЗапрос
       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СписанныеТовары КАК СписанныеТовары
       |        ПО ВложенныйЗапрос.Номенклатура = СписанныеТовары.Номенклатура
       |            И ВложенныйЗапрос.ХарактеристикаНоменклатуры = СписанныеТовары.ХарактеристикаНоменклатуры
       |            И ВложенныйЗапрос.Склад = СписанныеТовары.Склад
       |            И ВложенныйЗапрос.Ссылка = СписанныеТовары.Регистратор";
   ИначеЕсли ТипЗнч(Ссылка) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
       ЗапросВремСписанныеТовары = Новый Запрос;
       ТекстЗапроса =
       "ВЫБРАТЬ
       |    СписанныеТовары.Период,
       |    СписанныеТовары.Регистратор,
       |    СписанныеТовары.НомерСтроки,
       |    СписанныеТовары.Активность,
       |    СписанныеТовары.НомерСтрокиДокумента,
       |    СписанныеТовары.ВалютаДокумента,
       |    СписанныеТовары.ВедениеУчетаПоПроектам,
       |    СписанныеТовары.ВидТабличнойЧасти,
       |    СписанныеТовары.ДоговорКонтрагента,
       |    СписанныеТовары.ДокументОприходованияНовый,
       |    СписанныеТовары.ДокументПартии,
       |    СписанныеТовары.ДокументПередачи,
       |    СписанныеТовары.ДопустимыйСтатус1,
       |    СписанныеТовары.ДопустимыйСтатус2,
       |    СписанныеТовары.ДопустимыйСтатус3,
       |    СписанныеТовары.ДопустимыйСтатус4,
       |    СписанныеТовары.ЗаказПартии,
       |    СписанныеТовары.ЗаказСписания,
       |    СписанныеТовары.ИзменитьСерию,
       |    СписанныеТовары.ИзменитьСклад,
       |    СписанныеТовары.ИзменитьХарактеристику,
       |    СписанныеТовары.Качество,
       |    СписанныеТовары.КачествоНовое,
       |    СписанныеТовары.КодОперацииПартииТоваров,
       |    СписанныеТовары.Количество,
       |    СписанныеТовары.КоличествоПоступление,
       |    СписанныеТовары.КорВалютаЗадолженностиБУ,
       |    СписанныеТовары.КорВалютнаяСуммаЗадолженностиБУ,
       |    СписанныеТовары.КорВалютнаяСуммаНДСЗадолженностиБУ,
       |    СписанныеТовары.КорСубконтоБУ1,
       |    СписанныеТовары.КорСубконтоБУ2,
       |    СписанныеТовары.КорСубконтоБУ3,
       |    СписанныеТовары.КорСубконтоЗадолженностиБУ1,
       |    СписанныеТовары.КорСубконтоЗадолженностиБУ2,
       |    СписанныеТовары.КорСубконтоЗадолженностиБУ3,
       |    СписанныеТовары.КорСубконтоМУ1,
       |    СписанныеТовары.КорСубконтоМУ2,
       |    СписанныеТовары.КорСубконтоМУ3,
       |    СписанныеТовары.КорСубконтоНУ1,
       |    СписанныеТовары.КорСубконтоНУ2,
       |    СписанныеТовары.КорСубконтоНУ3,
       |    СписанныеТовары.КорСчетБУ,
       |    СписанныеТовары.КорСчетЗадолженностиБУ,
       |    СписанныеТовары.КорСчетМУ,
       |    СписанныеТовары.КорСчетНУ,
       |    СписанныеТовары.КратностьДокумента,
       |    СписанныеТовары.КурсДокумента,
       |    СписанныеТовары.НазначениеИспользования,
       |    СписанныеТовары.НеСписывать,
       |    СписанныеТовары.Номенклатура,
       |    СписанныеТовары.НоменклатураКомплекта,
       |    СписанныеТовары.НоменклатураНовая,
       |    СписанныеТовары.НоменклатурнаяГруппа,
       |    СписанныеТовары.ОбъектСтроительства,
       |    СписанныеТовары.Организация,
       |    СписанныеТовары.ОсновноеСредство,
       |    СписанныеТовары.ОсновнойДокумент,
       |    СписанныеТовары.ОтражатьВБухгалтерскомУчете,
       |    СписанныеТовары.ОтражатьВМеждународномУчете,
       |    СписанныеТовары.ОтражатьВНалоговомУчете,
       |    СписанныеТовары.ОтражатьВУправленческомУчете,
       |    СписанныеТовары.Подразделение,
       |    СписанныеТовары.ПодразделениеОрганизации,
       |    СписанныеТовары.ПоступлениеПриходныйОрдер,
       |    СписанныеТовары.ПринятыеКорСчетБУ,
       |    СписанныеТовары.ПринятыеКорСчетНУ,
       |    СписанныеТовары.ПринятыеСчетУчетаБУ,
       |    СписанныеТовары.ПринятыеСчетУчетаНУ,
       |    СписанныеТовары.Продукция,
       |    СписанныеТовары.Проект,
       |    СписанныеТовары.СерияНоменклатуры,
       |    СписанныеТовары.СерияНоменклатурыНовая,
       |    СписанныеТовары.Склад,
       |    СписанныеТовары.СкладПолучатель,
       |    СписанныеТовары.СписыватьТолькоПоЗаказу,
       |    СписанныеТовары.СтавкаНДС,
       |    СписанныеТовары.СтатусПартииНовый,
       |    СписанныеТовары.СтатусПередачи,
       |    СписанныеТовары.СтатьяДоходовИРасходов,
       |    СписанныеТовары.СтатьяЗатрат,
       |    СписанныеТовары.СтатьяЗатратНДС,
       |    СписанныеТовары.СтоимостьПоступление,
       |    СписанныеТовары.СтоимостьПоступлениеБУ,
       |    СписанныеТовары.СуммаЗадолженности,
       |    СписанныеТовары.СуммаЗадолженностиБУ,
       |    СписанныеТовары.СуммаНДС,
       |    СписанныеТовары.СчетДоходовБУ,
       |    СписанныеТовары.СчетДоходовНУ,
       |    СписанныеТовары.СчетРасходовБУ,
       |    СписанныеТовары.СчетРасходовНУ,
       |    СписанныеТовары.СчетУчетаБУ,
       |    СписанныеТовары.СчетУчетаМУ,
       |    СписанныеТовары.СчетУчетаНДС,
       |    СписанныеТовары.СчетУчетаНУ,
       |    СписанныеТовары.ФизЛицо,
       |    СписанныеТовары.ХарактеристикаНоменклатуры,
       |    СписанныеТовары.ХарактеристикаНоменклатурыНовая,
       |    СписанныеТовары.КоличествоКомплекта,
       |    СписанныеТовары.ХарактеристикаКомплекта,
       |    СписанныеТовары.МоментВремени
       |ПОМЕСТИТЬ ВТСписанныеТовары
       |ИЗ
       |    (ВЫБРАТЬ
       |        РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
       |        РеализацияТоваровУслугТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
       |        СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
       |        РеализацияТоваровУслугТовары.Склад КАК Склад,
       |        РеализацияТоваровУслугТовары.Ссылка КАК Ссылка
       |    ИЗ
       |        Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
       |    ГДЕ
       |        РеализацияТоваровУслугТовары.Ссылка = &Ссылка
       |    
       |    СГРУППИРОВАТЬ ПО
       |        РеализацияТоваровУслугТовары.ХарактеристикаНоменклатуры,
       |        РеализацияТоваровУслугТовары.Номенклатура,
       |        РеализацияТоваровУслугТовары.Склад,
       |        РеализацияТоваровУслугТовары.Ссылка) КАК ВложенныйЗапрос
       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СписанныеТовары КАК СписанныеТовары
       |        ПО ВложенныйЗапрос.Номенклатура = СписанныеТовары.Номенклатура
       |            И ВложенныйЗапрос.ХарактеристикаНоменклатуры = СписанныеТовары.ХарактеристикаНоменклатуры
       |            И ВложенныйЗапрос.Склад = СписанныеТовары.Склад
       |            И ВложенныйЗапрос.Ссылка = СписанныеТовары.Регистратор";
   ИначеЕсли ТипЗнч(Ссылка) = Тип("ДокументСсылка.ПеремещениеТоваров") Тогда
       ЗапросВремСписанныеТовары = Новый Запрос;
       ТекстЗапроса =
       "ВЫБРАТЬ
       |    СписанныеТовары.Период,
       |    СписанныеТовары.Регистратор,
       |    СписанныеТовары.НомерСтроки,
       |    СписанныеТовары.Активность,
       |    СписанныеТовары.НомерСтрокиДокумента,
       |    СписанныеТовары.ВалютаДокумента,
       |    СписанныеТовары.ВедениеУчетаПоПроектам,
       |    СписанныеТовары.ВидТабличнойЧасти,
       |    СписанныеТовары.ДоговорКонтрагента,
       |    СписанныеТовары.ДокументОприходованияНовый,
       |    СписанныеТовары.ДокументПартии,
       |    СписанныеТовары.ДокументПередачи,
       |    СписанныеТовары.ДопустимыйСтатус1,
       |    СписанныеТовары.ДопустимыйСтатус2,
       |    СписанныеТовары.ДопустимыйСтатус3,
       |    СписанныеТовары.ДопустимыйСтатус4,
       |    СписанныеТовары.ЗаказПартии,
       |    СписанныеТовары.ЗаказСписания,
       |    СписанныеТовары.ИзменитьСерию,
       |    СписанныеТовары.ИзменитьСклад,
       |    СписанныеТовары.ИзменитьХарактеристику,
       |    СписанныеТовары.Качество,
       |    СписанныеТовары.КачествоНовое,
       |    СписанныеТовары.КодОперацииПартииТоваров,
       |    СписанныеТовары.Количество,
       |    СписанныеТовары.КоличествоПоступление,
       |    СписанныеТовары.КорВалютаЗадолженностиБУ,
       |    СписанныеТовары.КорВалютнаяСуммаЗадолженностиБУ,
       |    СписанныеТовары.КорВалютнаяСуммаНДСЗадолженностиБУ,
       |    СписанныеТовары.КорСубконтоБУ1,
       |    СписанныеТовары.КорСубконтоБУ2,
       |    СписанныеТовары.КорСубконтоБУ3,
       |    СписанныеТовары.КорСубконтоЗадолженностиБУ1,
       |    СписанныеТовары.КорСубконтоЗадолженностиБУ2,
       |    СписанныеТовары.КорСубконтоЗадолженностиБУ3,
       |    СписанныеТовары.КорСубконтоМУ1,
       |    СписанныеТовары.КорСубконтоМУ2,
       |    СписанныеТовары.КорСубконтоМУ3,
       |    СписанныеТовары.КорСубконтоНУ1,
       |    СписанныеТовары.КорСубконтоНУ2,
       |    СписанныеТовары.КорСубконтоНУ3,
       |    СписанныеТовары.КорСчетБУ,
       |    СписанныеТовары.КорСчетЗадолженностиБУ,
       |    СписанныеТовары.КорСчетМУ,
       |    СписанныеТовары.КорСчетНУ,
       |    СписанныеТовары.КратностьДокумента,
       |    СписанныеТовары.КурсДокумента,
       |    СписанныеТовары.НазначениеИспользования,
       |    СписанныеТовары.НеСписывать,
       |    СписанныеТовары.Номенклатура,
       |    СписанныеТовары.НоменклатураКомплекта,
       |    СписанныеТовары.НоменклатураНовая,
       |    СписанныеТовары.НоменклатурнаяГруппа,
       |    СписанныеТовары.ОбъектСтроительства,
       |    СписанныеТовары.Организация,
       |    СписанныеТовары.ОсновноеСредство,
       |    СписанныеТовары.ОсновнойДокумент,
       |    СписанныеТовары.ОтражатьВБухгалтерскомУчете,
       |    СписанныеТовары.ОтражатьВМеждународномУчете,
       |    СписанныеТовары.ОтражатьВНалоговомУчете,
       |    СписанныеТовары.ОтражатьВУправленческомУчете,
       |    СписанныеТовары.Подразделение,
       |    СписанныеТовары.ПодразделениеОрганизации,
       |    СписанныеТовары.ПоступлениеПриходныйОрдер,
       |    СписанныеТовары.ПринятыеКорСчетБУ,
       |    СписанныеТовары.ПринятыеКорСчетНУ,
       |    СписанныеТовары.ПринятыеСчетУчетаБУ,
       |    СписанныеТовары.ПринятыеСчетУчетаНУ,
       |    СписанныеТовары.Продукция,
       |    СписанныеТовары.Проект,
       |    СписанныеТовары.СерияНоменклатуры,
       |    СписанныеТовары.СерияНоменклатурыНовая,
       |    СписанныеТовары.Склад,
       |    СписанныеТова
44 hohol
 
09.05.12
19:07
и так по трем видам учета. Здесь только для УПР
45 ILM
 
гуру
09.05.12
19:11
(43) (44) Пишите статьи в "Базе знаний" мисты. Пригодиться может кому-нибудь.
46 hohol
 
09.05.12
19:17
(45)
1. я на писателя точно не гожусь.
2. Уже не актуально, все на РАУЗ переходят.
зы
а меня и партии устраивают. Только правильно приготовленные.
Кстати опер учет у меня тоже отключен. Отдельно обработка шуршит, которая допроводит по партиям. Так что у меня документы еще быстрее рауза шуршат. Хотя хз, я на раузе не пробовал.
47 hohol
 
09.05.12
19:19
"опер учет у меня тоже отключен" - отключено оперативное проведение по партиям.
48 Krendel
 
09.05.12
19:33
(47) Дык без вариантов ;-)
49 undertaker
 
08.06.12
16:40
(38) посмотрел бы я как ты взаимоблокировки замером производительности выявлял бы
50 kipish
 
08.06.12
16:43
(38) код в студию)
51 undertaker
 
08.06.12
16:45
(50) см. (43)
52 undertaker
 
08.06.12
17:05
а еще в предлагаемом запросе еще не хватает индексирования и вот этот отбор

|        Номенклатура В
|            (ВЫБРАТЬ
|                ВТСписанныеТовары.Номенклатура
|            ИЗ
|                ВТСписанныеТовары
|            ГДЕ
|                ВТСписанныеТовары.Регистратор = &Ссылка)" + ?(ВестиПартионныйУчетПоСкладам, "
|        И (Склад В
|            (ВЫБРАТЬ
|                ВТСписанныеТовары.Склад
|            ИЗ
|                ВТСписанныеТовары
|            ГДЕ
|               ВТСписанныеТовары.Регистратор = &Ссылка) ИЛИ Склад = &ПустойСклад)", "") + ")

можно сделать оптимальнее
53 H A D G E H O G s
 
08.06.12
17:20
(52) Зачем индексирование?
54 H A D G E H O G s
 
08.06.12
17:22
Достаточно вот этого

   Запрос=Новый Запрос;
   МенеджерВТ=Новый МенеджерВременныхТаблиц;
   Запрос.МенеджерВременныхТаблиц=МенеджерВТ;
   Если ОсновнойДокументЯвляетсяРегистратором=Истина Тогда
   Запрос.Текст=
       "ВЫБРАТЬ
       |    СписанныеТовары.НомерСтрокиДокумента,
       |    СписанныеТовары.Номенклатура,
       |    СписанныеТовары.ХарактеристикаНоменклатуры,
       |    СписанныеТовары.СерияНоменклатуры,
       |    СписанныеТовары.Склад,
       |    СписанныеТовары.ДокументПартии,
       |    СписанныеТовары.ЗаказПартии,
       |    СписанныеТовары.КодОперацииПартииТоваров,
       |    СписанныеТовары.ПринятыеСчетУчетаБУ,
       |    СписанныеТовары.ПринятыеСчетУчетаНУ,
       |    СписанныеТовары.ЗаказСписания,
       |    СписанныеТовары.Организация,
       |    СписанныеТовары.Качество,
       |    СписанныеТовары.СчетУчетаБУ,
       |    СписанныеТовары.СчетУчетаНУ,
       |    СписанныеТовары.ДопустимыйСтатус1,
       |    СписанныеТовары.ДопустимыйСтатус2,
       |    СписанныеТовары.ДопустимыйСтатус3,
       |    СписанныеТовары.ДопустимыйСтатус4,
       |    СписанныеТовары.СписыватьТолькоПоЗаказу
       |ПОМЕСТИТЬ СписанныеТовары
       |ИЗ
       |    РегистрСведений.СписанныеТовары КАК СписанныеТовары
       |ГДЕ
       |    СписанныеТовары.Регистратор = &Регистратор
       |;
       |";
       Запрос.УстановитьПараметр("Регистратор",Регистратор);
   Иначе
       Запрос.Текст=
       "ВЫБРАТЬ
       |    СписанныеТовары.НомерСтрокиДокумента,
       |    СписанныеТовары.Номенклатура,
       |    СписанныеТовары.ХарактеристикаНоменклатуры,
       |    СписанныеТовары.СерияНоменклатуры,
       |    СписанныеТовары.Склад,
       |    СписанныеТовары.ДокументПартии,
       |    СписанныеТовары.ЗаказПартии,
       |    СписанныеТовары.КодОперацииПартииТоваров,
       |    СписанныеТовары.ПринятыеСчетУчетаБУ,
       |    СписанныеТовары.ПринятыеСчетУчетаНУ,
       |    СписанныеТовары.ЗаказСписания,
       |    СписанныеТовары.Организация,
       |    СписанныеТовары.Качество,
       |    СписанныеТовары.СчетУчетаБУ,
       |    СписанныеТовары.СчетУчетаНУ,
       |    СписанныеТовары.ДопустимыйСтатус1,
       |    СписанныеТовары.ДопустимыйСтатус2,
       |    СписанныеТовары.ДопустимыйСтатус3,
       |    СписанныеТовары.ДопустимыйСтатус4,
       |    СписанныеТовары.СписыватьТолькоПоЗаказу
       |ПОМЕСТИТЬ ОсобоСписанныеТовары
       |ИЗ
       |    РегистрСведений.СписанныеТовары КАК СписанныеТовары
       |ГДЕ
       |    СписанныеТовары.Регистратор = &ОсновнойДокумент
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |    СписанныеТовары.Номенклатура,
       |    СписанныеТовары.Склад
       |ПОМЕСТИТЬ СписанныеТовары
       |ИЗ
       |    РегистрСведений.СписанныеТовары КАК СписанныеТовары
       |ГДЕ
       |    СписанныеТовары.Регистратор = &Регистратор";
       Запрос.УстановитьПараметр("Регистратор",Регистратор);
       Запрос.УстановитьПараметр("ОсновнойДокумент",ОсновнойДокумент);
   КонецЕсли;
   Запрос.Выполнить();
   ПараметрыСеанса.алкАдресПроизвольногоВременногоХранилища=ПоместитьВоВременноеХранилище(МенеджерВТ,Новый УникальныйИдентификатор());
   Возврат МенеджерВТ;
55 H A D G E H O G s
 
08.06.12
17:22
Для основного случая, по всем 3 учетам.
56 hohol
 
08.06.12
17:26
А еще хорошо бы конструкцию В заменить на соединение.
Потому, что В скуль не знает, это придумка чисто 1С и на итс они рекомендует этим не пользоваться, но сами пишут ч0 хотят как обычно.
57 H A D G E H O G s
 
08.06.12
17:27
(56) SQL не знает, что такое IN ?
58 hohol
 
08.06.12
17:30
(57) не не так. Просто он на каждый В, подзапросы строит.
59 H A D G E H O G s
 
08.06.12
17:32
(58) Было вроде.
По производительности - одно и то же получилось.
60 H A D G E H O G s
 
08.06.12
17:32
(58) Пацаны меряли короче.
61 hohol
 
08.06.12
17:33
не помню на каком итс, но точно было про запрет злоупотребления конструкцией В.
62 undertaker
 
08.06.12
17:45
(53) ну временная таблица СписанныеТовары соединяется же потом с остатками партий и вот по полям соединения разве не надо индексировать?
63 H A D G E H O G s
 
08.06.12
17:48
(62) Че, так часто встречаются доки с количеством строк over 600 ?
64 undertaker
 
08.06.12
17:48
(58), (59)  был как то запрос один. там было условие что то типа ГДЕ Поле В (влож запрос) и был вариант когда фильтр делался внутреннем соединением. Так вот через соединение работал быстрее, так как ГДЕ накладывался ПОСЛЕ основной выборки.
65 undertaker
 
08.06.12
17:49
(63) ну хз как у хохла, у нас были сменные отчеты каждый день с количеством строк от 5000 по сотне АЗС
66 undertaker
 
08.06.12
17:53
(64) но правда это не тот случай, чет вспомнилось