Сворачивание детальных записей в СКД #805466


#0 by yaroshenko_p
Доброго времени суток! Я столкнулся с такой проблемой при работе с СКД В наборе данных с помощью временных таблиц формируется запрос о соответствии партнеров работающим с ними менеджерам. На выходе получается примерно такой запрос (пишу в упрощенном виде): ВТ.Партнер КАК Партнер, ВТ.Менеджер КАК Менеджер, 1 КАК Всего ИЗ ВТ КАК ВТ                                  Каждому менеджеру в базе соотвествует несколько партнеров. На закладке "Настройки" в схеме компоновки данных я задаю группировку "Детальные записи" и в ней указываю выбранные поля "Менеджер" и "Всего". Казалось бы, по каждому менеджеру должно быть выведено несколько строк со значением 1 в поле "Всего". Но выводится только одна строка с 1 по каждому менеджеру! А если к выбранным полям добавить поле "Партнер", то по каждому менеджеру выводится много строк с 1 в поле "Всего", по одной для каждого партнера. Получается, что детальные записи с одинаковыми значениями полей сворачиваются в одну. И чтобы они не сворачивались, в отчет надо выводить также и партнера. Но партнер в отчете мне не нужен. Я понимаю, что можно использовать функцию КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Партнер). Но все равно, интересно, почему детальные записи с одинаковыми полями сворачиваются в одну и как этого избежать? Ведь происходит это не всегда - например, когда информация извлекается без использования временных таблиц, такого сворачивания не происходит. Заранее благодарю за помощь.
#1 by h-sp
ИЗ ВТ КАК ВТ покажите как формируете вт там ведь тоже партнер выкинут.
#2 by yaroshenko_p
ВТ формируется сложным запросом с использованием других временных таблиц, но партнер в ней присутствует - когда я пробовал такой же запрос сделать внешней обработкой и прочитать из ВТ результат, то получилось много строк с сочетаниями "Партнер" - "Менеджер" - 1
#3 by yaroshenko_p
Сложный запрос формируется программно - в процедуре ПриКомпоновкеРезультата используется СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос = ... и далее формирование текста
#4 by rabbidX
Можно скриншот настроек?
#5 by h-sp
там даже слова "Партнер" не будет в вашем этом сложном запросе. Это основная теорема СКД. Если нет партнера, то он будет безжалостно выкинут абсолютно во всех запросах, независимо, сложные они или не сложные.
#6 by yaroshenko_p
Не понимаю, даже из запросов, которые формируют временные таблицы?
#7 by rabbidX
Тут посмотрите, какой запрос в итоге получается.
#8 by h-sp
временные таблицы - это в первую очередь, это даже не обсуждается.
#9 by yaroshenko_p
Я посмотрел параметры макета компоновки в отладчике. Да, Вы правы, действительно, из запросов партнер вырезается. Но не из всех - только из последнего запроса и из запроса, формирующего последнюю временную таблицу. Предыдущие запросы оставлены в неприкосновенности - там много полей, не участвующих в компоновке, например, значения констант, обращения к которым также идут из временных таблиц. Но даже с учетом того, что оптимизатор вырезал из двух последних запросов Партнера, непонятно, почему он детальные записи сворачивает? Ну нет там партнера - так вывел бы одинаковые строки в отчет?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С