Имя: Пароль:
1C
1С v8
Запрос 1С, условие в Поле(Произвольное выражение)
0 bfss-732
 
26.01.22
15:36
Всем привет!
Есть таблица, в которой есть колонки обязательные к отображению, в этой же таблице есть колонки где из 12 колонок надо вывести одну по условию, в зависимости от параметра (значение параметра должно быть равно значению имени колонки - "Тип - Строка").
Как и где написать условие в запросе, чтоб отобрать одну из 12 колонок?
1 Dmitrii
 
гуру
26.01.22
15:42
А с каких пор у нас запросы умеют управлять отображением?
Отображение происходит на клиенте.
Запросы выполняются на сервере.
Какая связь?

Сформулируй вопрос на русском языке.
То ли речь идёт о динамическом формировании текста запроса, то ли об управлением видимостью колонок табличного поля на форме.... Хрен поймешь.
2 bfss-732
 
26.01.22
15:47
(1) Есть таблица, в ней есть название колонок (10 колонок). Из 10 колонок 5 надо отобрать(отобразить, получить в результат... пох как назвать, главное чтоб потом они появились в таблице значений) без условий, а остальные 5 колонок имеют имена 6,7,8,9,10.
Когда пользователь указывает параметр 9, то должны появится  в таблице значений ШЕСТЬ колонок под номерами 1,2,3,4,5,9
3 FIXXXL
 
26.01.22
15:49
(0) в тексте запроса вместо этой колонки пиши &КолонкаПоПараметру, затем перед выполнением запроса СтрЗаменить(Запрос.Текст, "&КолонкаПоПараметру", чегототамколонка)
если не нудна - просто затри в тексте
4 Dmitrii
 
гуру
26.01.22
15:49
Запрос.Текст =
"ВЫБРАТЬ
Таб.Поле01,
Таб.Поле01,
Таб.Поле01,
Таб.Поле01,
Таб.Поле01,
Таб.Поле01,
Таб.Поле01,
Таб.Поле01,
5 FIXXXL
 
26.01.22
15:51
(2) если результат запроса выгружаешь в ТЗ - просто удили из ТЗ лишнее...
6 Dmitrii
 
гуру
26.01.22
15:52

Запрос.Текст =
"ВЫБРАТЬ
| Таб.Поле01,
| Таб.Поле02,
| Таб.Поле03,
| Таб.Поле04,
| Таб.Поле05,
| Таб.Поле" + ЗначениеПараметра
|ИЗ
| Таб КАК Таб";
7 FIXXXL
 
26.01.22
15:54
(6) конструктор сломал :)
можно изучить на досуге СхемаЗапроса, в данном случае норм ляжет на условия...
8 Dmitrii
 
гуру
26.01.22
15:56
(7) В конструкторе такой текст не откроется. К тому же я ошибку допустил. Должно быть.
    
Запрос.Текст =
"ВЫБРАТЬ
| Таб.Поле01,
| Таб.Поле02,
| Таб.Поле03,
| Таб.Поле04,
| Таб.Поле05,
| Таб.Поле" + ЗначениеПараметра + "
|ИЗ
| Таб КАК Таб";
9 FIXXXL
 
26.01.22
15:59
(8) поэтому - лучше через якобы параметр
10 Dmitrii
 
гуру
26.01.22
16:07
Я вообще не уверен, что тема ветки имеет какое-то отношение к запросам.
Если читать (2) буквально, то речь идёт просто о тупом удалении из таблицы значений лишних колонок.
Тогда должно быть что-то типа.

ТаблицаЗначений = ТаблицаЗначений.Скопировать(, "1,2,3,4,5," + ЗначениеПараметра);
11 Dmitrii
 
гуру
26.01.22
16:10
Хотя не исключено, что речь об управлении видимостью колонок в табличном поле на форме. Когда пользователь меняет значение какого-то параметра должна отрабатывать процедура управления видимостью элементов формы.
Но автор ветки пишет, что ему "пох как назвать", а потому хер поймешь чего ему надо на самом деле.
12 Dmitrii
 
гуру
26.01.22
16:13
(9) Вкусовщина. Имеет смысл для сложных запросов, которые действительно проще открыть в конструкторе для изменения. Для простых коротких запросов проще текст собирать конкатенацией. Но это уже дело личной привычки.
13 hhhh
 
26.01.22
16:41
(12) конструктор открывается не для изменения, а для синтаксического контроля. Если конструктор открылся, значит ошибок в запросе нет.
14 bfss-732
 
27.01.22
08:40
(8) Красава! Спасибо!