Разные результаты запроса в консоли запроса и схеме компоновки данных (СКД)
 
Описание ошибки:
Платформа 1С: Предприятие 8.3.16.1063. Клиент-серверный вариант работы базы. Конфигурация не указана, т.к., забегая вперед, не в ней проблема.

Найденные решения:

Столкнулся с проблемой при реализации отчета на СКД. При этом, как привычно - запрос для сбора данных тестировался с помощью обработки "Консоль запросов" для 1С 8. Удивительно, но получилось так, что выводимые данные результата запроса в консоли и реализованном отчете отличались. В консоли результат был верный, в СКД - не верный.

В частности, на примере, видно, что сумма из колонки "Полная оплата" в результате запроса консоли в результате отчета на СКД содержится в колонке "Без оплаты".

1C 8 в консоли запросов и скд разные данные

Было предположено, что возможно интерпретатор СКД и консоли все-таки по-разному воспринимают текст запроса. Т.е. СКД что-то еще проделывает с запросом, в результате чего получается, что в 1С 8 один и тот же запрос возвращает разные данные в консоли и СКД.

К сожалению предположение подтвердилось. В обсуждении на форуме infostart.ru "Разные данные в консоли запросов и СКД" было явно объяснено, что после обработки запроса СКД своим оптимизатором конечный запрос может получиться немного, но отличным от исходного. Одна из возможных и распространенных проблем - это параметры типа "Дата" вида "дата и время" - банально - не совпадение временных периодов в параметрах запроса в консоли и передаваемых в параметры в СКД, как например обсуждается в теме "Разные результаты выполнения запроса в консоли и в СКД" на сайте avprog.ru. Но это точно был не этот случай.

1c 8 скд и консоль разные данные

Ниже была получена еще одна подсказка, указывающая на проблему в моем случае и примерный вариант решения проблемы различия данных результата запроса в консоли и СКД

1с 8 КонсольЗапросов И Отчет СКД выводят разные данные

В моем случае "хитрым полем" оказалось не Минимум(), а Максимум() для поля с типом значений "Дата" (дата со временем):  МАКСИМУМ(РасчетыСКонтрагентамиОбороты.Период) КАК Период

На скрине ниже видно, что СКД его не обрабатывает прямо совсем.

1С 8 в консоли запросов данные правильные, а в СКД нет, не правильные

Вариант решения проблемы предполагался в том, чтобы заменить временную таблицу, т.к. именно временные таблицы СКД и преобразует, на вложенный запрос. И, как видно на скрине примера, как раз выражение Максимум() сдержится в тексте запроса, который помещается во временную таблицу. Как известно, вложенные запросы по методике - это наименее производительный результат для СКД, чем временные таблицы, но других очевидных вариантов не оставалось. Но вариант с вложенным запросом не решил проблему. Хотя некоторым помогает решить.

Проблема оказалась в ином, о чем можно найти в самом низу обсуждения все в той же ветке форума infostart.ru "Разные данные в консоли запросов и СКД", а еще более подробно по ссылке из нижепредложенного скрина  forum.infostart.ru/forum9/topic157926/

1C 8 Различаются результаты запроса и отчета в СКД

В моем запросе использовались таблицы оборотов регистров, но параметры в них не были указаны, т.к. подразумевалось, что выборка должна осуществляться за все время. Но, как отмечено в комментарии на скрине выше, СКД подставляет параметры &НачалоПериода и &КонецПериода все равно. Ситуацию усугубило (в плане поиска корня проблемы) то, что в используемом запросе уже использовались параметры с этими же названиями в других временных таблицах. После замены виртуальных таблиц оборотов регистров, на физическую таблицу, у которой нет виртуальных параметров, результат вывода данных в СКД стал таким же, как и в консоли запросов. Т.е. срабатывала ненужная выборка по периоду из-за одноименных параметров запроса &НачалоПериода и &КонецПериода и параметров виртуальной таблицы оборотов регистра накопления, хотя они явно и не указывались:

1С 8 почему разные данные результата запроса в СКД и консоли запросов

Хоть предыдущие варианты, кроме последнего, и не помогли решить конкретную проблему и не помогли, но их описание может помочь Вам в решении проблемы, т.к. они из наиболее встречающихся.

Оцените, помогло ли Вам предоставленное описание решения ошибки?

© www.azhur-c.ru 2014-2025. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

10-09-2020

Журавлев А.С. (Сайт azhur-c.ru)

 
 

Здесь можно
приобрести лицензии

1С 8
​ и типовые решения

ural-rosaudit.ru - Аудит в сфере ЖКХ, www.ural-rosaudit.ru
azhur-blog.ru - мошенничество в интернете, www.azhur-blog.ru
info-compas.ru - каталог, инфокурсы, видеокурсы, видео курсы, обучение он-лайн, www.info-compas.ru
https://vk.com/effective_ideas - Группа вКонтакте Методы заработка и работы при помощи Интернет

 

Проверить аттестат
Cистема приема платежей, касса для сайта
Cистема управления контентом Santafox&trade. Санкт-Петербург, Ленинский проспект, д. 23 (812) 545-47-48
Яндекс.Метрика