Результаты запроса в консоли и в отчёте разные

1. nodalt 9 19.11.12 17:01 Сейчас в теме
Здравствуйте!
Ситуация очень странная и непонятная.
Делаю внешний отчёт. Предварительно разработал запрос по выборке данных. В запросе используется 5 временных таблиц, он получает данные по задолженности контрагентов.
Так вот, в консоли запросов данные получаются правильные (по нужному контрагенту 27000 руб. долга), а когда формирую внешний отчёт на основе универсального, то выводится сумма 29000 руб.
Всё что знал проверил. Параметры в запросе все правильные, запросы идентичные.

Вот ещё: в модуле универсального отчёта до строки
ПостроительОтчета.Выполнить();

в отладчике показывает правильный результат, а после уже неправильный.

Почему так происходит?!
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Ягг 495 19.11.12 17:39 Сейчас в теме
(1) nodalt, может быть поможет:

Построитель отчета методом ПостроительОтчета.ПолучитьЗапрос() возвращает тот запрос (со всеми отборами и прочим) который будет выполняться, и этот запрос (из-за заданных параметров) может отличаться от первоначального (условиями и т.д.). Может быть стоит получить это запрос (перед выполнением команды (ПостроительОтчета.Выполнить), посмотреть его текст и параметры, и уже его сравнивать с запросом из консоли.

ЗЫ. Если честно я не сталкивался с "универсальным отчетом" так что если глупость ляпнул - виноват :)
rusmm93; корум; DimkoZah; nodalt; +4 Ответить
4. nodalt 9 19.11.12 17:52 Сейчас в теме
(2) Ягг, не глупость, как раз так я и проверял. Параметры, текст запроса - всё копировал в консоль и опять тоже самое!!! Разные результаты! Причём если провести несколько документов "Платёжное поручение входящее", то результат может выровняться, потом провести ещё несколько и результат может опять различаться на непредсказуемую сумму. Кошмар!
9. Ягг 495 20.11.12 07:37 Сейчас в теме
(4) nodalt, может быть проблема в выводе (а не получении данных) отчета на основании универсального? По моему все татот же построитель отчета позволяет вывести данные в таблицу значений (подкорректируй код или в отладчике и посмотри правильные ли там цифры)?

Второе, возможно требуется тестирование и исправление информационной базы.
12. nodalt 9 20.11.12 10:40 Сейчас в теме
(9) Ягг, вот как раз построитель выгружает данные в таблицу значений уже с неправильным результатом. Кстати, есть одна особенность - все строчки в таблице задвоены. Т.е. в самом отчёте в последствии они уже выводятся по одной, но при отладке в таблице значений видно, что они дублируются.
Тестирование и исправление учитывая реструктуризацию и пересчет итогов ситуацию не изменили.

Попробую теперь оптимизировать запрос или же просто как-то по-другому сделать выборку данных, может быть поможет. Больше ничего на ум не приходит.
3. PoZiTiFFF 914 19.11.12 17:48 Сейчас в теме
(1) nodalt, очень внимательно проверьте параметры. Чаще всего такое бывает из за несовпадения параметров.
5. nodalt 9 19.11.12 17:53 Сейчас в теме
(3) Lancer666, проверял, копировал - бесполезно. Там 5 параметров, все даты, но правильные
8. Win98 19.11.12 18:55 Сейчас в теме
(1) nodalt,
В запросе используется 5 временных таблиц, он получает данные по задолженности контрагентов.
вот с этого места поподробнее: что именно делаете с этими таблицами? Соединения есть? Полные?
11. nodalt 9 20.11.12 09:50 Сейчас в теме
(8) Win98, соединения есть. Соединения все левые. Есть пара соединений виртуальной таблицы с регистром накопления (остатки, остатки и обороты) и пара соединений ещё с одной виртуальной таблицей.
13. Win98 20.11.12 15:15 Сейчас в теме
(11) nodalt, если есть соединения более чем двух таблиц одновременно, например трех (или четырех), попробуйте сначала две таблицы (или попарно) соединить во временную, а потом присоединить к ней третью (или соединить получившиеся). Разбираться было лень, но как-то столкнулся с тем при соединение более чем двух таблиц, в некоторых случаях, появляются дублирующиеся строки - ошибается (кто и где не разобрался) с ключом (с тем полем по которому идет соединение).
6. andrewks 1368 19.11.12 18:01 Сейчас в теме
во всех других отчётах (типовых) суммы долга правильные?
может, попробовать сделать реиндексацию базы?
10. nodalt 9 20.11.12 09:49 Сейчас в теме
(6) andrewks, по остальным отчётам проверить данные нет возможности так как разрабатываемый отчёт нужен для вывода колонки по задолженности с учетом отсрочки, а эта отсрочка проставляется у контрагента путём доработки справочника.
7. andrewks 1368 19.11.12 18:05 Сейчас в теме
и ещё: повнимательнее с параметрами-датами, иногда глаз "замыливается", и долго удивляешься, почему запрос не даёт нужный результат, а в итоге потом находишь, что нужно подавать не 19.11.2012 0:00:00, а 19.11.2012 23:59:59 (или отрабатывать этот момент в самом запросе)
14. nodalt 9 21.11.12 11:00 Сейчас в теме
Проблема решена, по крайней мере пока данные правильные. Не знаю в чём конкретно было дело.
Проблему решил написав другой запрос, по другому алгоритму, включающий только 2 виртуальные таблицы.
А данные в отладчике задваивались из-за того что построитель отчёта модифицировал текст моего запроса, добавляя в него поле по расчету итогов, а сами ресурсы не включал.
Спасибо всем за участие.
15. DimkoZah 4 19.05.17 15:27 Сейчас в теме
используем ПолучитьЗапрос() берем из него текст запроса смотрим каких ресурсов не хватает в виртуальных таблицах и в исходном запросе прокидываем их в конечную выборку иначе построитель их отсечет т.к. они не используются, а если исходная таблица остаточная тогда записи будут считаться с нулевым ресурсом.
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день