|
Не понял как в запросе поймать пустая ссылка | ☑ | ||
---|---|---|---|---|
0
Chameleon1980
12.03.14
✎
12:49
|
Что-то не понял.
Выборка из Рег.Св. Цены номенклатуры. Как в запросе через "выбор когда" полю проставить истина или ложь в зависимости от пустая ссылка или нет у записи РС. Поле в РС - "Способ расчета" цены - типа перечисление. Важно как понять пустая там ссылка или нет. Сейчса примерно так: ВЫБОР КОГДА ЦеныНоменклатурыСрезПоследних.СпособРасчетаЦены = ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаЦены.ПустаяСсылка) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК Поле1 не взлетает |
|||
1
ДенисЧ
12.03.14
✎
12:52
|
еще на NULL проверь
|
|||
2
Chameleon1980
12.03.14
✎
12:53
|
Ну понятно. Запрос возвращает поле:
<пустая ссылка Перечисление ссылка: Способы расчета цены> |
|||
3
MaSSimo
12.03.14
✎
12:55
|
есть NULL, не?
|
|||
4
Ненавижу 1С
гуру
12.03.14
✎
12:55
|
(1) и на Неопределено, даешь больше разных пустот!
|
|||
5
H A D G E H O G s
12.03.14
✎
12:56
|
(4) Дарю
КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.СпособРасчетаЦены,НЕОПРЕДЕЛЕНО) В (НЕОПРЕДЕЛЕНО, ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаЦены.ПустаяСсылка)) |
|||
6
Мыш
12.03.14
✎
12:57
|
(0) Огласите текст запроса вместе с источником данных, пожалуйста!
|
|||
7
shuhard
12.03.14
✎
12:58
|
(5) ыыыыыыыыыыыыы
|
|||
8
H A D G E H O G s
12.03.14
✎
12:58
|
(7) Бывает и такое для составных полей.
|
|||
9
ShoGUN
12.03.14
✎
13:00
|
(8) Всё верно, такое уж пустое значение у 1с загадочное :)
|
|||
10
H A D G E H O G s
12.03.14
✎
13:01
|
(7) Ты тут ыыыыыыкаешь, а я вот красивый кусочек дал Ненавижу.
Опять таки - ДЛЯ составных полей таблицы (могущих иметь НЕОПРЕДЕЛЕНО, не выбран тип), участвующей в Соединении (могущей иметь null). Естественно вариант должен иметь вид, примерно ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.СпособРасчетаЦены,НЕОПРЕДЕЛЕНО) В (НЕОПРЕДЕЛЕНО, ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаЦены.ПустаяСсылка), ЗНАЧЕНИЕ(Перечисление.СпособыПересчетаЦены.ПустаяСсылка)) |
|||
11
Ненавижу 1С
гуру
12.03.14
✎
13:01
|
(10) проблему надо создать, чтобы потом ее героически решать ))
|
|||
12
shuhard
12.03.14
✎
13:02
|
(10) использовать В вместо ИЛИ не есть хорошо в силу неудобочитаемости запроса
|
|||
13
H A D G E H O G s
12.03.14
✎
13:02
|
(11) Никаких проблем нет. Это у тебя психологическое что-то.
|
|||
14
H A D G E H O G s
12.03.14
✎
13:02
|
(12) С чего бы это? Отлично читается.
|
|||
15
ShoGUN
12.03.14
✎
13:03
|
(12) Это предубеждение, нормально всё читается.
|
|||
16
Ненавижу 1С
гуру
12.03.14
✎
13:04
|
(13) да, главное не забывать, что если ты поле сделал составным, то будь добр во всех запросах измени пустую ссылку на неопределено, да и старые данные подправь (там же остались пустые ссылки)
костыль в (5) шикарен, спасибо |
|||
17
ShoGUN
12.03.14
✎
13:06
|
Да ладно, haters gonna hate ;) В других местах тоже бывают прибабахи.
|
|||
18
H A D G E H O G s
12.03.14
✎
13:06
|
(16) "что если ты поле сделал составным"
В работающей системе данное событие - экстремально, редко и приводит к перелопачиванию кода, связанного с данным регистром/документом/и.т.д а такде тестированию. |
|||
19
Chameleon1980
12.03.14
✎
13:06
|
Может это не имеет значения, но в данном случае поле не составное.
|
|||
20
ShoGUN
12.03.14
✎
13:07
|
(19) Имеет. Какой тип у поля?
|
|||
21
Ненавижу 1С
гуру
12.03.14
✎
13:07
|
(19) допускаю, но теплый ламповый NULL мне гораздо приятнее
|
|||
22
ShoGUN
12.03.14
✎
13:09
|
(21) Мне тёплый ламповый SQL-ный NULL всю малину недавно испоганил. Конкатенация строки с NULL-ом в MS SQL - NULL. Недавно на эти грабли наступил. Точней, грабли были комбинированные.
|
|||
23
Ненавижу 1С
гуру
12.03.14
✎
13:10
|
(22) это нормальное поведение теплого лампового SQL-ного NULL
|
|||
24
shuhard
12.03.14
✎
13:10
|
(14)
(15) извращенцы |
|||
25
H A D G E H O G s
12.03.14
✎
13:13
|
(24) Портяночник.
|
|||
26
ShoGUN
12.03.14
✎
13:15
|
(24) Батенька, это не вы пятиэтажные условия в коде пишете? ИЛИ всегда будет более многословным, чем В.
|
|||
27
PR
12.03.14
✎
13:15
|
(14) Хреново читается.
|
|||
28
ShoGUN
12.03.14
✎
13:16
|
(23) Я в курсе, что нормально поведение. Ненормальное поведение - у Entity в .NET, который вместо пустой строки пихает в поле NULL, если оно Nullable.
|
|||
29
PR
12.03.14
✎
13:17
|
(26) Зачем использовать язык 1С, если можно использовать С, да? Там в одну строчку кода можно полалгоритма запихнуть.
|
|||
30
Ненавижу 1С
гуру
12.03.14
✎
13:17
|
(27) нормально читается и гораздо проще когда там еще всякие И в перемешку
|
|||
31
ShoGUN
12.03.14
✎
13:18
|
(29) Если условие - тройное, то тоже через ИЛИ будешь делать? В глазах не зарябит?
|
|||
32
PR
12.03.14
✎
13:19
|
(30) Сомнительно
|
|||
33
PR
12.03.14
✎
13:19
|
(31) Да. Нет.
|
|||
34
ShoGUN
12.03.14
✎
13:19
|
Я не сторонник кода в стиле брейнфака, но многословность ничуть не лучше.
|
|||
35
Ненавижу 1С
гуру
12.03.14
✎
13:19
|
(32) ну это на любителя думаю
|
|||
36
ShoGUN
12.03.14
✎
13:20
|
(35) Именно. Но сразу извращенцами обзываются :)
|
|||
37
fisher
12.03.14
✎
13:55
|
(5) А что, ничо так... Особенно если поле вычисляемое.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |