Имя: Пароль:
1C
1С v8
Сворачивание детальных записей в СКД
,
0 yaroshenko_p
 
26.09.17
10:55
Доброго времени суток!

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

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

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

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

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

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