Имя: Пароль:
1C
1С v8
СКД. Логика использования полей в запросе
0 Solitar
 
09.09.18
12:34
Всем привет.

Если в СКД в выбранных полях снять для поля "Использование", то в результирующем запросе данного поля не будет. Это понятно и логично.

Но как убрать запрос к этому полю во всех других запросах (временных таблицах и т.д.), которые используется в итоговом ? Псевдноим у поля везде одинаковый.
1 Sasha_H
 
09.09.18
12:45
а зачем его оттуда убирать?...

Функциональной опцией разве только или вручную удалить из запроса.
2 Solitar
 
09.09.18
12:54
(1) чтобы в итоговом запросе не было связи по этому полю
3 Sasha_H
 
09.09.18
13:02
В отчете добавьте Параметр: ВыводитьРезультатСДопСвязью (например).

В самом запросе напишите. ВЫБОР КОГДА &ВыводитьРезультатСдопСвязью ТОГДА .... СоединениеВИтоговомЗапросе = КакБыло

Иначе

ИСТИНА //игнорируем соединение

КОНЕЦ
4 Sasha_H
 
09.09.18
13:03
Это конечно для оптимизатора ЗЛО... но результат будет как хотели
5 Solitar
 
09.09.18
13:17
(3) очень не красивое решение. придется программно устанавливать этот параметр в зависимости от того, выбраное ли это поле или нет, или же пользователю нужно будет устанавливать этот параметр в значение ИСТИНА или ЛОЖЬ.

так же в одной из ВТ анализируются остатки по этому полю. И по идее, если это поле не выбрано, я не хочу смотреть остатки по этому полю.
6 Sasha_H
 
09.09.18
13:23
(5) Зачем его устанавливать программно? Если достаточно это вывести на параметры и дать этот флаг пользователю в параметрах указать!
7 Sasha_H
 
09.09.18
13:24
Красивым решением в таком случае будет два запроса и программно манипулировать.
- функциональная опция
- либо через параметр.
8 Solitar
 
09.09.18
13:40
(6) а если потом такая же проблема возникнет с другим полем, то придется делать таких параметров столько, сколько ситуаций не отрабатывается....
и связь по этому полю в других ВТ тоже есть.
у меня ощущение, что должен же быть какой то простой выход из ситуации.
2 + 2 = 3.9999999999999999999999999999999...