Имя: Пароль:
1C
 
Как в запросе получить булево - есть чего-то в хранилище значений или нет?
,
0 los_hooliganos
 
15.01.16
09:47
Вообщем есть строки РС, там один ресурс я присобачил ХрЗначений. Теперь в динамическом списке хочу показать, есть тама картинка или ее нету. И вот вопрос как ето делать?
Идеально мне запрос должен вернуть булево - есть тама что-то или оного нету ничего.
1 FIXXXL
 
15.01.16
09:50
добавь еще булево "ПустоеХранилище" и его уже пользуй при работе с Хранилищем и потом в запросах

ибо только вариант Хранилище.Получить() работает
2 НЕА123
 
15.01.16
09:50
никак
3 los_hooliganos
 
15.01.16
09:50
Видимо никак это не сделать, придется делать дополнительное булево для РС, как реквизит строки
4 los_hooliganos
 
15.01.16
09:51
(1) вот видимо это и придется делать, это я уже понял.
5 los_hooliganos
 
15.01.16
09:52
Остается тока пожелание, что бы в будущих запросах реализовали проверку, что ХЗ пустое.
6 FIXXXL
 
15.01.16
09:57
(5) им некогда, они кнопки новые рисуют
шютка :)
весьма затратно будет в запросе ХЗ дергать, не станут такого делать
7 los_hooliganos
 
15.01.16
10:38
(6) Вообще это принято хранить в страницах статистики для ms sql, так что теоретически эта функция не должна быть затратной.
8 los_hooliganos
 
15.01.16
10:38
На закуску:

DATALENGTH (Transact-SQL)

SQL Server 2014 Другие версии
Возвращает число байтов, использованных для представления выражения.

https://msdn.microsoft.com/ru-ru/library/ms173486(v=sql.120).aspx
9 mehfk
 
15.01.16
10:44
(8) Не поможет. Даже в хранилище значений, созданном так на основе значения = Неопределено, будут ненулевые данные с точки зрения MS SQL.

К = Новый ХранилищеЗначения(Неопределено);
й = ЗначениеВСтрокуВнутр(К);
10 dmpl
 
15.01.16
10:53
(0) Лень проверять - а что 1С кладет в поле БД, если программист явно не присвоил значения реквизиту с типом ХЗ?
11 los_hooliganos
 
15.01.16
13:44
(10) 2 байта, это контрольная сумма байтов в поле.
12 los_hooliganos
 
15.01.16
13:45
+(11) тока речь не о 1С, а о ms sql
1C может ничего не делать
Программист всегда исправляет последнюю ошибку.