|
v7: 1СPP, ужасно тормозит типизация документа в прямом запросе | ☑ | ||
---|---|---|---|---|
0
daviels
18.11.15
✎
09:56
|
Доброго дня.
Пишу вот такой запрос, используя класс "ПрямойЗапрос" ТекстЗапроса = " |ВЫБРАТЬ | ВыборОстаткиОбороты.Документ КАК [Документ $Документ] | --ВЫРАЗИТЬ($Журнал.ТекущийДокумент КАК char(9)) КАК [Документ $Документ] | ,ВыборОстаткиОбороты.Документ_вид КАК [Документ_вид $ВидДокумента] | ,ВыборОстаткиОбороты.Товар КАК [Товар $Субконто] | ,ВыборОстаткиОбороты.Товар_вид КАК [Товар_вид $ВидСубконто] | ,ВыборОстаткиОбороты.МестоХранения КАК [МестоХранения $Субконто] | ,ВыборОстаткиОбороты.МестоХранения_вид КАК [МестоХранения_вид $ВидСубконто] | ,РеквизитыТовара.ГруппаТовара КАК [ГруппаТовара $Справочник.Группы] | ,РеквизитыТовара.ВидНоменклатуры КАК [ВидНоменклатуры $Справочник.ВидыНоменклатуры] | ,РеквизитыТовара.ВидБизнеса КАК [ВидБизнеса $Справочник.ВидыБизнеса] | ,(ВыборОстаткиОбороты.НачОстКоличество) КАК НачОстКоличество | ,(ВыборОстаткиОбороты.КонОстКоличество) КАК КонОстКоличество | ,(ВыборОстаткиОбороты.НачОстСумма) КАК НачОстСумма | ,(ВыборОстаткиОбороты.КонОстСумма) КАК КонОстСумма | ,(ВыборОстаткиОбороты.ПриходКоличество) КАК ПриходКоличество | ,(ВыборОстаткиОбороты.ПриходСумма) КАК ПриходСумма | ,(ВыборОстаткиОбороты.РасходКоличество) КАК РасходКоличество | ,(ВыборОстаткиОбороты.РасходСумма) КАК РасходСумма | ,ВЫБОР | КОГДА ВыборОстаткиОбороты.Документ_вид = $ВидДокумента.РасходнаяНакладная | ТОГДА ВыборНакладных.Выручка | ИНАЧЕ ВЫБОР | КОГДА ВыборОстаткиОбороты.Документ_вид = $ВидДокумента.ФактическаяПродажа | ТОГДА ВыборПродаж.Выручка | ИНАЧЕ ВыборОстаткиОбороты.РасходСумма | КОНЕЦ | КОНЕЦ КАК Выручка |ИЗ | (ВЫБРАТЬ | :ПустойИД КАК Документ | ,:ПустойИД КАК Документ_вид | ,ОстаткиОборотыОсновной.Субконто1 КАК Товар | ,ОстаткиОборотыОсновной.Субконто1_вид КАК Товар_вид | ,ОстаткиОборотыОсновной.Субконто2 КАК МестоХранения | ,ОстаткиОборотыОсновной.Субконто2_вид КАК МестоХранения_вид | ,СУММА(ОстаткиОборотыОсновной.КоличествоНачальныйОстаток) КАК НачОстКоличество | ,СУММА(ОстаткиОборотыОсновной.СуммаНачальныйОстаток) КАК НачОстСумма | ,СУММА(ОстаткиОборотыОсновной.КоличествоКонечныйОстаток) КАК КонОстКоличество | ,СУММА(ОстаткиОборотыОсновной.СуммаКонечныйОстаток) КАК КонОстСумма | ,0 КАК ПриходКоличество | ,0 КАК ПриходСумма | ,0 КАК РасходКоличество | ,0 КАК РасходСумма | ИЗ | $БИОстаткиОбороты.Основной(:ДатаНач,:ДатаКон~,ПЕРИОД,ДвиженияИГраницыПериода,#СчетаДт,(Номенклатура,МестаХранения),(Количество,Сумма),(" + ТекстУсловияЗапроса + ")) КАК ОстаткиОборотыОсновной | СГРУППИРОВАТЬ | ОстаткиОборотыОсновной.Субконто1 | ,ОстаткиОборотыОсновной.Субконто1_вид | ,ОстаткиОборотыОсновной.Субконто2 | ,ОстаткиОборотыОсновной.Субконто2_вид //| ) КАК ВыборОстатки | ОБЪЕДИНИТЬ | ВЫБРАТЬ | ОборотыОсновной.ТекущийДокумент КАК Документ | ,ОборотыОсновной.ВидДокумента КАК Документ_вид | ,ОборотыОсновной.Субконто1 КАК Товар | ,ОборотыОсновной.Субконто1_вид КАК Товар_вид | ,ОборотыОсновной.Субконто2 КАК МестоХранения | ,ОборотыОсновной.Субконто2_вид КАК МестоХранения_вид | ,0 КАК НачОстКоличество | ,0 КАК НачОстСумма | ,0 КАК КонОстКоличество | ,0 КАК КонОстСумма | ,СУММА(ОборотыОсновной.КоличествоОборотДт) КАК ПриходКоличество | ,СУММА(ОборотыОсновной.СуммаОборотДт) КАК ПриходСумма | ,СУММА(ОборотыОсновной.КоличествоОборотКт) КАК РасходКоличество | ,СУММА(ОборотыОсновной.СуммаОборотКт) КАК РасходСумма | ИЗ | $БИОбороты.Основной(:ДатаНач,:ДатаКон~,ДОКУМЕНТ,#СчетаДт,(Номенклатура,МестаХранения),,,(Количество,Сумма),(" + ТекстУсловияЗапроса + ")) КАК ОборотыОсновной | СГРУППИРОВАТЬ | ОборотыОсновной.ТекущийДокумент | ,ОборотыОсновной.ВидДокумента | ,ОборотыОсновной.Субконто1 | ,ОборотыОсновной.Субконто1_вид | ,ОборотыОсновной.Субконто2 | ,ОборотыОсновной.Субконто2_вид //| ) КАК ВыборОбороты collate_1C | ) КАК ВыборОстаткиОбороты | ЛЕВОЕ СОЕДИНЕНИЕ | #vt_product КАК РеквизитыТовара | ПО | (ВЫРАЗИТЬ(ПРАВО(ВыборОстаткиОбороты.Товар,9) КАК char(9)) = РеквизитыТовара.Товар) "; в выборке примерно 6500 документов Так вот, как только включаю типизацию [Документ $Документ] Запрос выполняется 5-6 минут, без типизации 1,5-2 сек. Как можно ускорить? А может и нельзя никак ускорить??? |
|||
1
Дык ё
18.11.15
✎
10:29
|
не использовать ПрямойЗапрос?
|
|||
2
ikea
18.11.15
✎
10:41
|
А если сделать типизацию документа через журнал документов с соединением по документу?
|
|||
3
daviels
18.11.15
✎
10:43
|
(2) делал я так ... не помогло
|
|||
4
daviels
18.11.15
✎
10:50
|
При чем я делал и так:
Отключал типизацию, получаю данные в ИТ когда вывожу в печатную форму преобразую значение обMetaDataWork = СоздатьОбъект("MetaDataWork"); обMetaDataWork.ЗначениеИзСтрокиБД("Документ." + СокрЛП(ИтоговаяТаблица.Документ_вид),ИтоговаяТаблица.Документ); время исполнения так же ДОЛГО |
|||
5
sapphire
18.11.15
✎
11:02
|
КАКАЯ СВОЛОЧЬ РУССИФИЦИРОВАЛА ПРЯМЫЕ ЗАПРОСЫ?!
|
|||
6
sapphire
18.11.15
✎
11:05
|
(0) Если не знаете как хранятся данные - не пишите прямые запросы.
Соединение с _1SJOURN(NOLOCK) там есть поле IDDOCDEF - оно отвечает за тип Сгруппировать по типу и типизировать отдельно |
|||
7
sapphire
18.11.15
✎
11:06
|
(3) Значит, неправильно делал
|
|||
8
daviels
18.11.15
✎
13:52
|
(7) ты прав.
Тема закрыта |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |