Ограничение ссылочных типов через настройки СКД

1. Kaiden 11.06.20 18:50 Сейчас в теме
Всем привет.

Есть один теоретический вопрос по СКД / оптимизации.

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

Как мы знаем, 1С в таких случаях (при обращении через точку к полям составного типа) построит запрос для СУБД, где через левое соединение добавит все таблицы, которые входят в состав составного типа. Т. е. для примера выше будет 15 левых соединений. В запросе мы можем использовать ВЫРАЗИТЬ и ограничить число таких левых соединений.

А можно ли как-то достигнуть такого же эффекта только с помощью настроек варианта отчета СКД? Как-то указать СКД через ее настройки варианта отчета, что Документ.Номер нужно искать только в 1ой таблице, а не 15?.

Пробовал сделать это с помощью пользовательских полей и функции языка компоновки ВЫРАЗИТЬ, но она, увы, не дает писать выражения вида ВЫРАЗИТЬ(Документ, "Документ.МойДокумент).Номер.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. motiask 11.06.20 19:18 Сейчас в теме
Нет. СКД это другой инструмент. При формировании он сам запрос оптимизирует.
Нуанс запрос в консоли выдает одно, а в СКД другое.
3. toypaul 63 12.06.20 20:26 Сейчас в теме
Да можно. Цепляем одну эту конкретную таблицу (вида документа) к полю Документ и берем номер не через точку (фу бе), а через прицепленную таблицу. Причем цепляем таблицу эту на закладке компоновки данных - при этом она в запросе появится в фигурных скобках ({}). Ну и ... если твое поле номер будет выбрано в запросе (или еще какие из прицепленной таблицы), то эта таблица окажется в запросе и ясень пень запрос будет сформирован только по этому виду документа (если конечно соединение будет внутреннее). А вот если никакие поля из этой таблицы не будут использоваться, то таблица эта выкидывается из запроса.

Предлагаю прочитать цикл наших статей на эту тему https://infostart.ru/public/1219807/
4. Kaiden 13.06.20 09:28 Сейчас в теме
(3) Спасибо, но в исходном посте был вопрос можно ли сделать это одними настройками СКД, без изменения схемы.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот