Разные результаты запроса в SQL и DBF

Форум 1С: Одинэс.Ру

Найти!

Разные результаты запроса в SQL и DBF

Sk0rp
04.06.2009 - 16:06
Вот такой запрос:
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Клиент = Регистр.ВзаиморасчетыПокупателей.Клиент;
|КО = Регистр.ВзаиморасчетыПокупателей.КодОперации;
|Родитель = Регистр.ВзаиморасчетыПокупателей.Клиент.Родитель;
|Долг = Регистр.ВзаиморасчетыПокупателей.Долг;
|Фирма = Регистр.ВзаиморасчетыПокупателей.Фирма;
|Функция ОплатыТовара = Расход(Долг) Когда (КО = ОплатаТоваровИУслуг);
|Функция ОтгрузкаОплаченного = Приход(Долг) Когда (КО В СписокКодовОплаченныхПродаж);
|Группировка Клиент без групп все ВошедшиеВЗапрос;
|Условие(Фирма = _ПустаяФирма);
|"//}}ЗАПРОС

 
Релиз 27
В DBF версии Запрос.Родитель возвращает группу (как и предполагается)
а в SQL уже не группа, а ссылка на сам элемент справочника, т.е. тоже самое, что и в Запрос.Клиент
 
кто-нибудь боролся с этим?
 
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
24.10.2020 - 14:02
Смотри также:
Ограничение доступа
Открыть и заполнить несколько форм документов из внешней обработки не записывая их
Затирание информации в базе. Причины ?

Re: Разные результаты запроса в SQL и DBF

МимохожийОднако
1 - 04.06.2009 - 16:11
Убери без групп и Родителя

Re: Разные результаты запроса в SQL и DBF

Reaper
2 - 04.06.2009 - 16:13
1 - Запрос.ВключитьSQL(1)
2 - есть подозрение, что "без групп" тебя подрезает сейчас

Re: Разные результаты запроса в SQL и DBF

Reaper
3 - 04.06.2009 - 16:14
+(2) 1 - Запрос.ВключитьSQL(0) - fixed

Re: Разные результаты запроса в SQL и DBF

Sk0rp
4 - 04.06.2009 - 16:32
Убрал без групп, попробовал Запрос.ВключитьSQL(1) и Запрос.ВключитьSQL(0)
результат не меняется.
 
убрать Родителя не могу, мне этот параметр нужен.

Re: Разные результаты запроса в SQL и DBF

Billi
5 - 04.06.2009 - 17:25
4-Sk0rp >Может попробовать обозвать не Родитель, а как-нибудь по другому.

Интересные темы

odines.ru
24.10.2020 - 14:02
Смотри также:
Вопрос по внешней компоненте Formex
Изменить границу последовательности БЕЗ проведения документов
Нужно сконвертить Бух в БП (документами, а не оборотами)

Re: Разные результаты запроса в SQL и DBF

USSR
6 - 04.06.2009 - 18:09
При группировке "без групп" разве запрос обязан возвращать группу?

Re: Разные результаты запроса в SQL и DBF

DeiMos
7 - 04.06.2009 - 18:10
(5): Хорошая мысль. В качестве шаманства - может сработать вполне.
И клиента - тоже переименовать бы...

Re: Разные результаты запроса в SQL и DBF

DeiMos
8 - 04.06.2009 - 18:11
(6): Группу - не обязан.
А "Родителя" (или того, кого автор сейчас переименует) - ИМХО, обязан.

Re: Разные результаты запроса в SQL и DBF

DeiMos
9 - 04.06.2009 - 18:13
Запрос = СоздатьОбъект("Запрос");
Запрос.ВключитьSQL(0);

Re: Разные результаты запроса в SQL и DBF

USSR
10 - 04.06.2009 - 18:13
Честтно говоря непонятно зачем нужен родитель, его всегда можно получить из результатов запроса

Re: Разные результаты запроса в SQL и DBF

DeiMos
11 - 04.06.2009 - 18:15
(10): Мну тоже непонятно.

Re: Разные результаты запроса в SQL и DBF

USSR
12 - 04.06.2009 - 18:16
Когда пишешь прямой запрос, то контролируешь ход процесса. В 1с-ных запросах, на мой взгляд, надо быть проще. Мне лично непонятно как он выпоняется, и как выполняется группировка

Re: Разные результаты запроса в SQL и DBF

Sk0rp
13 - 05.06.2009 - 07:05
2(5) Не влияет
2(6) Группу - нет, ссылку должен. Впрочем "без групп" уже тоже советовали убрать чуть выше по тексту - не влияет.
2(9) Это советовали 5 постами выше, не влияет.
2(10, 11) Проблема не в том, что я не могу обойтись или обойти этот баг, вопрос в том есть ли возможность добиться одинакового исполнения запроса на DBF и SQL. А нужен он для оптимизации, что бы не делать потом лишнего прогона по результатам запроса только для выставления родителя.

Re: Разные результаты запроса в SQL и DBF

USSR
14 - 05.06.2009 - 07:50
Это не оптимизация, это ловля блох

Re: Разные результаты запроса в SQL и DBF

USSR
15 - 05.06.2009 - 08:02
Ты тогда видимо должен группировать по родителю тоже, потому как непонятно, как дожна 1С правильно вывести родителя при группмровке только по дочерним элементам

Re: Разные результаты запроса в SQL и DBF

Sk0rp
16 - 05.06.2009 - 10:38
2(14) - при большом количестве элементов это оказывается существенной оптимизацией. И вопрос не в том, можно ли отказаться, а в том как сделать, что бы работало.
2(15) - это называется дополнительная переменная, значение у неё абсолютно однозначное и в случае DBF базы все рассчитывается верно.

Re: Разные результаты запроса в SQL и DBF

Reaper
17 - 05.06.2009 - 10:42
Оптимизация в клиент-серверном варианте - это прямые запросы. Остальное от лукавого.

Re: Разные результаты запроса в SQL и DBF

USSR
18 - 05.06.2009 - 10:54
(16)Никакой существенной оптимизации не будет. Я вообще часто предпочитаю выгружать все в ТЗ и не иметь дело с запросом. 1С твоего родителя в запросе тоже не из кармана достает, надо лезть в таблицу и таскать, причем в DBF варианте - именно каждый раз лезть. И чаще быстрее получается потом что-то получить из ТЗ, чем писать длинные пути в запросе. Написать то нетрудно, но надо понимать что за этим стоит обычное лазание в таблицу по ключу, и часто огоромная потеря идет именно на запросе. Страннно что не влияет Запрос.ВключитьSQL() Мне думалось что в нем и дело, c родителем 1С может строить кривоватый запрос. Я обычно с такими проблемами не морочусь, это ничего не дает ни уму, ни сердцу. 1С в ТИС не пишет контрагента в регистры взаиморасчетов, только договор и не морочится. Мне думается, что вариант с короткими путями в запросе и последующей обработкой в подавляющем большинстве случаев работает быстрее

Re: Разные результаты запроса в SQL и DBF

DeiMos
19 - 05.06.2009 - 13:12
(18): "Страннно что не влияет Запрос.ВключитьSQL() Мне думалось что в нем и дело, c родителем 1С может строить кривоватый запрос"
- Мне тоже очень странно. Поэтому я и продублировал (расшифровал совсем) твой постинг в своём посте (9).
Всё это прекрасно работало на 25 релизе.
Посмотрите, у автора - 27-й релиз.
Не могло ли получиться так, что глюк в 27 остался (до конца не вылечен, возникает при редких особых условиях), но уже не лечиццо методом (9)?
 
Автор, большая просьба: Исполни (9) на 25-м релизе.
Результаты - в студию, будем потом думать дальше.

Re: Разные результаты запроса в SQL и DBF

Reaper
20 - 05.06.2009 - 13:23
+(19) и кстати, раз уж пошла такая пьянка - какой SQL - то??? А вообще, если в 27-й платформе стал отказывать ВключитьSQL() - это катастрофа какая-то...

Re: Разные результаты запроса в SQL и DBF

Пацталоцци
21 - 05.06.2009 - 15:44
(18) "Никакой существенной оптимизации не будет."
+1000
 
автор, делай как предложил USSR. Выгрузи в ТЗ, добавь колонку, добавь цикл заполняющий колонку. Никакой потери времени не ощутищь.
Даже если в справочнике 10 тыс. контрагентов, второй цикл будет незаметен.
Не парь могз себе и людям.
К списку тем 1 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
« Не могу получить табличную часть документа-основания. Переход от ключа LPT к ключу USB »
© 2009 Форум 1С: Одинэс.Ру