powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Null _Неопределено_0
19 сообщений из 19, страница 1 из 1
Null _Неопределено_0
    #37704229
TVA_11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как правильно учесть все эти три варианта?
Сейчас не работает..


ВЫБОР
КОГДА СТО.Количество = Null или СТО.Количество = неопределено или СТО.Количество = 0
ТОГДА 1
ИНАЧЕ СТО.Количество
КОНЕЦ КАК Количество,
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704259
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КОГДА СТО.Количество = Null ТОГДА 1
КОГДА СТО.Количество = неопределено ТОГДА 1
КОГДА СТО.Количество = 0
ТОГДА 1
ИНАЧЕ СТО.Количество
КОНЕЦ КАК Количество
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704260
LexaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Первое: Количество, если вы завели этот реквизит должно быть типом Число, (хотя может быть и логическим или строковым все зависит от полета фантазии) но по любому не ссылочным, тем более мультиссылочным. Поэтому на Неопределено нет смысла сравнивать.
А запросе, ести вы через левое соединение подтягиваете объект СТО, естественно Количество может отсутствовать и быть NULL.
Для это случая в 1С есть Функция ЕСТЬNULL()
и ваш пример я бы написал так

Выбрать
...
ЕстьNULL(СТО.Количество,1) как Количество
...
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704269
TVA_11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LexaK,
Да, именно в запросе, поэтому и бывают все три случая.

Ваше предложение решает только одну проблему, а не все три.
Мне нельзя пропускать значение Неопределено.
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704275
TVA_11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такой вариант пройдет?

КОГДА ЕстьNULL(СТО.Количество,1) как Количество
КОГДА СТО.Количество = неопределено ТОГДА 1
КОГДА СТО.Количество = 0
ТОГДА 1
ИНАЧЕ СТО.Количество
КОНЕЦ КАК Количество
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704290
TVA_11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, так не проходит.
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704301
Александр Пузаков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TVA_11LexaK,
Да, именно в запросе, поэтому и бывают все три случая.

Ваше предложение решает только одну проблему, а не все три.
Мне нельзя пропускать значение Неопределено.

Какой тип имеет поле Количество? Неопределено может содержаться только в поле составного типа, если данное поле имеет числовой тип, то никакого Неопределено там быть не может..
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704338
TVA_11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня сама база формируется в запросе, поэтому может.
Но наверно могу переделать так, чтобы неопределено небыло, ладно.

Но как проверить хотябы два последних значения:

Null и 0


Была бы это простая база, можно было бы не мучится, и в цикле по ней проходится и раздельными

Если Null Тогда
КонецЕсли
Если 0 Тогда
КонецЕсли

Все решить, не заморачиваясь.
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704363
LexaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно весь запрос выложить? просто интересно на чужие загибы мыслей глянуть.
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704400
TVA_11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LexaK,

Обычная таблица формируется из двух других.
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704411
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TVA_11,

Выбрать
...
ЕстьNULL(СТО.Количество,0) как Количество

И не заморачиваться.
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704432
TVA_11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pail,

0 недопустимое значение, это ошибка.
Но она в базе встречается, поэтому попадает в СТО. Мне надо в таких случаях выводить 1.
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704450
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TVA_11,
Тогда вариант ЕстьNULL(СТО.Количество,1) и был правильным
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704461
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TVA_11,

ВЫБОР
КОГДА СТО.Количество = 0
ТОГДА 1
ИНАЧЕ ЕстьNULL(СТО.Количество,1)
КОНЕЦ КАК Количество
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704531
TVA_11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pail,

Гениально Пауль.
Правда, для трех разных значений уже так не выкрутится,
но и это уже здорово!
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704873
Александр Пузаков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TVA_11pail,

Гениально Пауль.
Правда, для трех разных значений уже так не выкрутится,
но и это уже здорово!

Да откуда у Вас там берется одновременно три значения?
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704882
Александр Пузаков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TVA_11,

Когда у Вас наконец-то станет там возможным либо число либо NULL, тогда проверку делайте так:

ВЫБОР КОГДА ЕСТЬNULL(СТО.Количество, 0) = 0 ТОГДА 1 ИНАЧЕ СТО.Количество КОНЕЦ

Выражение ЕСТЬNULL(СТО.Количество, 0) вернет значение 0 в двух случаях:
1. когда СТО.Количество = 0
2. когда СТО.Количество = NULL
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37704911
Фотография XenoX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А
Код: sql
1.
СТО.Количество ЕСТЬ NULL 


забыли ?
...
Рейтинг: 0 / 0
Null _Неопределено_0
    #37705127
TVA_11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, все заработало!
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Null _Неопределено_0
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]