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

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

Найти!

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

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

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

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

odines.ru
24.11.2024 - 22:17
Смотри также:
Учёт и отчётность предпринимателя 7.70.154 - Не завершается обновление ИБ :)
Подключение кассы
Плоский справочник как лог - вопросы

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 базы все рассчитывается верно.

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

odines.ru
24.11.2024 - 22:17
Смотри также:
проводки
В каких случаях вызывается ОбработкаУдаленияПроведения?
Вышел релиз 632 Бухгалтерии для бюджетных учреждений

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С: Одинэс.Ру