Имя: Пароль:
1C
1С v8
Как установить в запросе значение поля по условию?
,
0 Zhuravlik
 
08.05.13
16:31
Добрый день.
Мучаю запросы, есть такая задача: необходимо выбрать строки из табличной части справочника с фильтром по ссылке на справочник, и по значению в первом столбце табл. части.
В табличной части всего четыре поля:
"Отчет" (Строка), "Элемент" (Строка), зн_УниТип (Составной: Число, Дата, Булево, ВсеСсылки), зн_Строка (Строка неограниченной длины).

Необходимо выбрать значения поля "Элемент", и - если "зн_Строка" - пустая, то "зн_УниТип", иначе - "зн_Строка" с алиасом "Значение".

Делаю так:


   "ВЫБРАТЬ
   |    тчНастройки.Элемент КАК Элемент,
   |    ВЫБОР
   |        КОГДА тчНастройки.зн_Строка = "" ТОГДА тчНастройки.зн_Унитип
   |        ИНАЧЕ тчНастройки.зн_Строка
   |    КОНЕЦ КАК Значение
   |            
   |ИЗ
   |    Справочник.Пользователи.НастройкиОтчетов КАК тчНастройки
   |ГДЕ
   |    тчНастройки.Ссылка.Ссылка = &Пользователь
   |    И тчНастройки.Отчет = &Отчет"


Но мне на это ругается конструктор запросов и сама программа. Рыл-рыл тырнет, понял что без мисты не справлюсь...
1 Defender aka LINN
 
08.05.13
16:35
да уж...
""""
2 Zhuravlik
 
08.05.13
16:35
(1) Делал так, не проходит.
3 Zhuravlik
 
08.05.13
16:36
Собственно, строчкой "тчНастройки.зн_Строка = """ я хотел показать что у меня там проверка на пустоту...
4 Zhuravlik
 
08.05.13
16:38
(1) Ругается вот так: "Нельзя сравнивать поля неограниченной длинны и поля несовместимых типов"
5 Defender aka LINN
 
08.05.13
16:39
(2) Врешь
6 Fragster
 
гуру
08.05.13
16:39
Выразить(чНастройки.зн_Строка как Строка(1))
7 Defender aka LINN
 
08.05.13
16:39
(4) А, ну так и говори. ПОДОБНО.
8 Fragster
 
гуру
08.05.13
16:39
(2) вообще-то глядя на запрос (0) именно (1) приходит в голову
9 Zhuravlik
 
08.05.13
16:40
(5) Ей-богу не вру)))))))
(7) И так вроде пробовал, сейчас попробую еще раз...
10 Zhuravlik
 
08.05.13
16:42
(6)
   |    ВЫБОР
   |        КОГДА Выразить(тчНастройки.зн_Строка как Строка(1)) = """" ТОГДА тчНастройки.зн_Унитип
   |        ИНАЧЕ тчНастройки.зн_Строка
   |    КОНЕЦ КАК Значение


Ругается, говорит "Несовместимые типы "ВЫБОР" <<?>> ВЫБОР"
11 Zhuravlik
 
08.05.13
16:43
(8) Видимо это прокатило бы, если бы строка не была неограниченной длины.
12 Zhuravlik
 
08.05.13
16:48
Все никак...
13 Zhuravlik
 
08.05.13
16:52
|    ВЫБОР
   |        КОГДА Выразить(тчНастройки.зн_Строка как Строка(1)) ПОДОБНО """"  ТОГДА тчНастройки.зн_Унитип
   |        ИНАЧЕ тчНастройки.зн_Строка
   |    КОНЕЦ КАК Значение


Тоже "Несовместимые типы "ВЫБОР" <<?>> ВЫБОР"<
14 Fragster
 
гуру
08.05.13
16:54
(13) а весь секст запроса можешь?
15 Zhuravlik
 
08.05.13
16:55
"ВЫБРАТЬ
   |    тчНастройки.Элемент КАК Элемент,
   |    ВЫБОР
   |        КОГДА Выразить(тчНастройки.зн_Строка как Строка(1)) ПОДОБНО """"  ТОГДА тчНастройки.зн_Унитип
   |        ИНАЧЕ тчНастройки.зн_Строка
   |    КОНЕЦ КАК Значение
   |ИЗ
   |    Справочник.Пользователи.НастройкиОтчетов КАК тчНастройки
   |ГДЕ
   |    тчНастройки.Ссылка = &Пользователь
   |    И тчНастройки.Отчет = &Отчет"
16 Fragster
 
гуру
08.05.13
17:03
фигня какая-то. у меня работает
17 Fragster
 
гуру
08.05.13
17:03
с другой ТЧ, но тоже неопределенной длины
18 Fragster
 
гуру
08.05.13
17:04
добавляй конструкцию "выбор" в запросе
19 acsent
 
08.05.13
17:06
у тебя там не хранилище ли случайно?
20 Zhuravlik
 
08.05.13
17:09
(18) Так ведь одна есть уже, куда добавлять?
(19) Нет
21 Zhuravlik
 
08.05.13
17:10
йо, платформа 8.1, если что...
22 Fragster
 
гуру
08.05.13
17:12
(20) приведи в вид, который жрет конструктор, и внутри конструктора работая
23 Zhuravlik
 
08.05.13
17:19
(22) Так я так и хотел, можно сказать в том и проблема, что конструктор ругается без конца.
На всякий: тестирую и в конструкторе и в базе.
24 Zhuravlik
 
08.05.13
17:19
(23) + Ток не получаицца(((
25 Zhuravlik
 
08.05.13
17:21
Лан, фих с ним. Проверяю на тип при выборке результатов запроса, потом поморочусь если время будет.
Спасибо всем за беспокойство.
26 hhhh
 
08.05.13
17:35
(25)

КОГДА ПОДСТРОКА(тчНастройки.зн_Строка, 1, 1) = """"
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.