|
Выполнение пакетного запроса на сервере | ☑ | ||
---|---|---|---|---|
0
Maлblш
18.04.13
✎
17:18
|
День добрый. Столкнулась с такой проблемой. Есть пакетный запрос, при выполнении его в файловой ИБ проблем не возникает. Но в той же базе на сервере запрос выполняется с ошибками (неверно рассчитывается сумма в одном из запросов). В чем может быть причина и какие варианты решения этой ситуации существуют?
|
|||
1
Classic
18.04.13
✎
17:19
|
Текст запроса мы должны угадать?
|
|||
2
shuhard
18.04.13
✎
17:19
|
(0)[В чем может быть причина] -кривая сортировка
[ какие варианты решения этой ситуации существуют] - переписать запрос - нанять специалиста |
|||
4
Maлblш
18.04.13
✎
17:21
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
Аналит_ИзделияДляРаспределенияЗатратЗаПериод.НоменклатурнаяГруппа, Аналит_ИзделияДляРаспределенияЗатратЗаПериод.ДокументОснование, Аналит_ИзделияДляРаспределенияЗатратЗаПериод.Количество ПОМЕСТИТЬ ВТ_ПлановыйВыпуск ИЗ РегистрСведений.Аналит_ИзделияДляРаспределенияЗатратЗаПериод КАК Аналит_ИзделияДляРаспределенияЗатратЗаПериод ГДЕ Аналит_ИзделияДляРаспределенияЗатратЗаПериод.Период МЕЖДУ НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ) И КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ) И Аналит_ИзделияДляРаспределенияЗатратЗаПериод.Организация = &Организация ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Аналит_СпецификацияНаИзделие.Регистратор, Аналит_СпецификацияНаИзделие.Изделие, Аналит_СпецификацияНаИзделие.СтатьяЗатрат, Аналит_СпецификацияНаИзделие.Сумма ПОМЕСТИТЬ ВТ_ПлановыеЗатраты ИЗ РегистрСведений.Аналит_СпецификацияНаИзделие КАК Аналит_СпецификацияНаИзделие ГДЕ Аналит_СпецификацияНаИзделие.Регистратор В (ВЫБРАТЬ А.ДокументОснование ИЗ ВТ_ПлановыйВыпуск КАК А) И Аналит_СпецификацияНаИзделие.СтатьяЗатрат <> &ПустаяСтатьяЗатрат И Аналит_СпецификацияНаИзделие.Месяц МЕЖДУ НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ) И КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ) И Аналит_СпецификацияНаИзделие.Сумма <> 0 И Аналит_СпецификацияНаИзделие.Организация = &Организация ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Аналит_СпецификацияНаИзделиеЕжемесячная.Регистратор, Аналит_СпецификацияНаИзделиеЕжемесячная.Изделие, Аналит_СпецификацияНаИзделиеЕжемесячная.СтатьяЗатрат, Аналит_СпецификацияНаИзделиеЕжемесячная.Сумма ПОМЕСТИТЬ ВТ_ПлановыеЗатратыЕж ИЗ РегистрСведений.Аналит_СпецификацияНаИзделиеЕжемесячная КАК Аналит_СпецификацияНаИзделиеЕжемесячная ГДЕ Аналит_СпецификацияНаИзделиеЕжемесячная.Регистратор В (ВЫБРАТЬ А.ДокументОснование ИЗ ВТ_ПлановыйВыпуск КАК А) И Аналит_СпецификацияНаИзделиеЕжемесячная.Организация = &Организация И Аналит_СпецификацияНаИзделиеЕжемесячная.СтатьяЗатрат <> &ПустаяСтатьяЗатрат И Аналит_СпецификацияНаИзделиеЕжемесячная.Сумма <> 0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ПлановыйВыпуск.НоменклатурнаяГруппа, ВТ_ПлановыйВыпуск.ДокументОснование, ВТ_ПлановыйВыпуск.Количество, ВТ_ПлановыеЗатраты.СтатьяЗатрат, ВТ_ПлановыеЗатраты.Сумма, ВТ_ПлановыеЗатратыЕж.СтатьяЗатрат КАК СтатьяЗатратЕж, ВТ_ПлановыеЗатратыЕж.Сумма КАК СуммаЕж, ЕСТЬNULL(ВТ_ПлановыеЗатраты.СтатьяЗатрат, ВТ_ПлановыеЗатратыЕж.СтатьяЗатрат) КАК СтатьяЗатратОб, ЕСТЬNULL(ВТ_ПлановыеЗатраты.Сумма, ВТ_ПлановыеЗатратыЕж.Сумма) * ВТ_ПлановыйВыпуск.Количество КАК СуммаОб ПОМЕСТИТЬ ВТ_ПланРазвернутый ИЗ ВТ_ПлановыйВыпуск КАК ВТ_ПлановыйВыпуск ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПлановыеЗатраты КАК ВТ_ПлановыеЗатраты ПО ВТ_ПлановыйВыпуск.ДокументОснование = ВТ_ПлановыеЗатраты.Регистратор ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПлановыеЗатратыЕж КАК ВТ_ПлановыеЗатратыЕж ПО ВТ_ПлановыйВыпуск.ДокументОснование = ВТ_ПлановыеЗатратыЕж.Регистратор ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ПланРазвернутый.НоменклатурнаяГруппа, ВТ_ПланРазвернутый.СтатьяЗатратОб, СУММА(ВТ_ПланРазвернутый.СуммаОб) КАК СуммаОб ПОМЕСТИТЬ ВТ_План ИЗ ВТ_ПланРазвернутый КАК ВТ_ПланРазвернутый СГРУППИРОВАТЬ ПО ВТ_ПланРазвернутый.НоменклатурнаяГруппа, ВТ_ПланРазвернутый.СтатьяЗатратОб ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ХозрасчетныйОбороты.Субконто1 КАК НоменклатурнаяГруппа, ВЫБОР КОГДА ХозрасчетныйОбороты.Субконто2.Родитель = &НакладныеРасходыРодитель ТОГДА &НакладныеРасходыЭлемент ИНАЧЕ ХозрасчетныйОбороты.Субконто2 КОНЕЦ КАК СтатьяЗатрат, ХозрасчетныйОбороты.СуммаОборотДт ПОМЕСТИТЬ ВТ_РазвернутыйФакт ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), , Счет В ИЕРАРХИИ (&ЗатратныеСчета20), &Субконто20, Организация = &Организация, , ) КАК ХозрасчетныйОбороты ГДЕ ХозрасчетныйОбороты.Субконто2 <> &ПустаяСтатьяЗатрат ОБЪЕДИНИТЬ ВЫБРАТЬ ХозрасчетныйОбороты.Субконто1, ВЫБОР КОГДА ХозрасчетныйОбороты.Субконто2.Родитель = &НакладныеРасходыРодитель ТОГДА &НакладныеРасходыЭлемент ИНАЧЕ ХозрасчетныйОбороты.Субконто2 КОНЕЦ, ХозрасчетныйОбороты.СуммаОборотДт ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), , Счет В ИЕРАРХИИ (&ЗатратныеСчета08), &Субконто08, Организация = &Организация, , ) КАК ХозрасчетныйОбороты ГДЕ ХозрасчетныйОбороты.Субконто2 <> &ПустаяСтатьяЗатрат ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_РазвернутыйФакт.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа, ВТ_РазвернутыйФакт.СтатьяЗатрат, СУММА(ВТ_РазвернутыйФакт.СуммаОборотДт) КАК СуммаФакт ПОМЕСТИТЬ ВТ_Факт ИЗ ВТ_РазвернутыйФакт КАК ВТ_РазвернутыйФакт СГРУППИРОВАТЬ ПО ВТ_РазвернутыйФакт.НоменклатурнаяГруппа, ВТ_РазвернутыйФакт.СтатьяЗатрат ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЕСТЬNULL(ВТ_План.НоменклатурнаяГруппа, ВТ_Факт.НоменклатурнаяГруппа) КАК НоменклатурнаяГруппа, ЕСТЬNULL(ВТ_План.СтатьяЗатратОб, ВТ_Факт.СтатьяЗатрат) КАК СтатьяЗатрат, ВТ_План.СуммаОб, ВТ_Факт.СуммаФакт, ЕСТЬNULL(ВТ_План.СуммаОб, 0) - ЕСТЬNULL(ВТ_Факт.СуммаФакт, 0) КАК ПланМинусФакт ИЗ ВТ_План КАК ВТ_План ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Факт КАК ВТ_Факт ПО ВТ_План.НоменклатурнаяГруппа = ВТ_Факт.НоменклатурнаяГруппа И ВТ_План.СтатьяЗатратОб = ВТ_Факт.СтатьяЗатрат УПОРЯДОЧИТЬ ПО НоменклатурнаяГруппа, СтатьяЗатрат |
|||
5
Maлblш
18.04.13
✎
17:22
|
На выходе сумма фактическая получается равна плановой и это неправильно.
|
|||
6
Classic
18.04.13
✎
17:23
|
(5)
У тебя там три суммы |
|||
7
Maлblш
18.04.13
✎
17:25
|
(6) Да, ВТ_Факт.СуммаФакт и ПланМинусФакт равны ВТ_План.СуммаОб. Этого быть не должно. На клиенте запрос выполняется верно.
|
|||
8
GANR
18.04.13
✎
17:28
|
круто! напиши [email protected]
|
|||
9
Maxus43
18.04.13
✎
17:35
|
есть различия между файловой и клиент-серверной конечно, а вот искать их тут незнаю даже как. Может итоги покривились в клиент-серверной? сравните результаты например куска по Хозрасчетный.Обороты
|
|||
10
Maлblш
18.04.13
✎
17:35
|
(8) косяк платформы?)
|
|||
11
Maxus43
18.04.13
✎
17:36
|
сравни все отдельные пакеты запросов с файловой, вычлени косячный
|
|||
12
Maлblш
18.04.13
✎
17:36
|
(9) Если выполнять в клиент-серверной базе все запросы по отдельности, все отрабатывают правильно.
|
|||
13
Maлblш
18.04.13
✎
17:37
|
А пакет кривой получается %)
|
|||
14
Maxus43
18.04.13
✎
17:37
|
(12) в каком месте конкретно косяк тогда? в каком пакете?
|
|||
15
Maxus43
18.04.13
✎
17:39
|
хотя если в отдельности всё норм - то чудеса...
|
|||
16
Maлblш
18.04.13
✎
17:44
|
(14) в последнем
|
|||
17
Maлblш
18.04.13
✎
17:44
|
(15) вот именно! чудеса)
|
|||
18
Maxus43
18.04.13
✎
17:45
|
ЕСТЬNULL(ВТ_План.СуммаОб, 0),
ЕСТЬNULL(ВТ_Факт.СуммаФакт, 0) на всякий тоже сделай |
|||
19
Maлblш
18.04.13
✎
17:46
|
(18) непонятно зачем, но попробую))
|
|||
20
Maxus43
18.04.13
✎
17:47
|
(19) чтобы просто было красиво и не было в результате запроса Null в колонках
|
|||
21
Classic
18.04.13
✎
17:50
|
(19)
А если послушать (2) и убрать упорядочивание? Или хотя бы переписать его на УПОРЯДОЧИТЬ ПО ЕСТЬNULL(ВТ_План.НоменклатурнаяГруппа, ВТ_Факт.НоменклатурнаяГруппа), ЕСТЬNULL(ВТ_План.СтатьяЗатратОб, ВТ_Факт.СтатьяЗатрат) |
|||
22
GANR
18.04.13
✎
17:58
|
(11) +1. Вот точно (0) раздели запрос на отдельные подзапросы вроде http://ximage.ru/data/imgs/1366272523.jpg и посмотри отладчиком каком именно подзапросе результат расходится. Только помимо создания ВТ там надо будет, естественно, просто выгружать её ещё.
|
|||
23
Maлblш
19.04.13
✎
09:46
|
(18) поставила ЕстьNull, проблема ушла)))
ЕСТЬNULL(ВТ_План.СуммаОб, 0), ЕСТЬNULL(ВТ_Факт.СуммаФакт, 0) спасибо, ребят! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |