Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

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

Сворачивание детальных записей в СКД
Я
   yaroshenko_p
 
26.09.17 - 10:55
Доброго времени суток!

Я столкнулся с такой проблемой при работе с СКД

В наборе данных с помощью временных таблиц
формируется запрос о соответствии партнеров
работающим с ними менеджерам.
На выходе получается примерно такой запрос
(пишу в упрощенном виде):

ВЫБРАТЬ
ВТ.Партнер КАК Партнер,
ВТ.Менеджер КАК Менеджер,
1 КАК Всего
ИЗ ВТ КАК ВТ
                                
Каждому менеджеру в базе соотвествует несколько партнеров.
На закладке "Настройки" в схеме компоновки данных я задаю
группировку "Детальные записи" и в ней указываю выбранные поля
"Менеджер" и "Всего". Казалось бы, по каждому менеджеру
должно быть выведено несколько строк со значением 1
в поле "Всего". Но выводится только одна строка с 1
по каждому менеджеру!
А если к выбранным полям добавить поле "Партнер", то
по каждому менеджеру выводится много строк с 1 в поле "Всего",
по одной для каждого партнера.
Получается, что детальные записи с одинаковыми значениями
полей сворачиваются в одну. И чтобы они не сворачивались, 
в отчет надо выводить также и партнера. Но партнер в отчете
мне не нужен.
Я понимаю, что можно использовать функцию КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Партнер).
Но все равно, интересно, почему детальные записи с одинаковыми
полями сворачиваются в одну и как этого избежать?
Ведь происходит это не всегда - например, когда информация извлекается
без использования временных таблиц, такого сворачивания не происходит.

Заранее благодарю за помощь.
 
 
   h-sp
 
1 - 26.09.17 - 11:12
(0) ИЗ ВТ КАК ВТ 

покажите как формируете вт

там ведь тоже партнер выкинут.
   yaroshenko_p
 
2 - 26.09.17 - 11:23
(1)ВТ формируется сложным запросом с использованием других временных таблиц, но партнер в ней присутствует - когда я пробовал такой же запрос сделать внешней обработкой и прочитать из ВТ результат, то получилось много строк с сочетаниями "Партнер" - "Менеджер" - 1
   yaroshenko_p
 
3 - 26.09.17 - 11:25
(1) Сложный запрос формируется программно - в процедуре ПриКомпоновкеРезультата( ) используется
СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос = ...
и далее формирование текста
   rabbidX
 
4 - 26.09.17 - 11:29
(0) Можно скриншот настроек?
   h-sp
 
5 - 26.09.17 - 11:29
(2) там даже слова "Партнер" не будет в вашем этом сложном запросе. Это основная теорема СКД. Если нет партнера, то он будет безжалостно выкинут абсолютно во всех запросах, независимо, сложные они или не сложные.
   yaroshenko_p
 
6 - 26.09.17 - 12:09
(5) Не понимаю, даже из запросов, которые формируют временные таблицы?
   rabbidX
 
7 - 26.09.17 - 12:13
(6) http://catalog.mista.ru/public/15036/
Тут посмотрите, какой запрос в итоге получается.
   h-sp
 
8 - 26.09.17 - 13:53
(6) временные таблицы - это в первую очередь, это даже не обсуждается.
   yaroshenko_p
 
9 - 26.09.17 - 15:00
(6) Я посмотрел параметры макета компоновки в отладчике. Да, Вы правы, действительно, из запросов партнер вырезается. Но не из всех - только из последнего запроса и из запроса, формирующего последнюю временную таблицу. Предыдущие запросы оставлены в неприкосновенности - там много полей, не участвующих в компоновке, например, значения констант, обращения к которым также идут из временных таблиц.
Но даже с учетом того, что оптимизатор вырезал из двух последних запросов Партнера, непонятно, почему он детальные записи сворачивает? Ну нет там партнера - так вывел бы одинаковые строки в отчет?

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует