Как получить пустое значение данного типа

  • Автор темы Автор темы Дайнеко
  • Дата начала Дата начала
Д

Дайнеко

Задача такова: в универсальной процедуре сделать запрос по справочнику записей с пустым полем.
Но имя поля передается параметром. Следовательно тип поля может быть любым: строка, число, ссылка.
В запросе пишу:
|ГДЕ
| ТекСправочник."+ Поле+ "= &ЗначПустое")+"
.....
Запрос.УстановитьПараметр("ЗначПустое", ЗначПустое);

Как бы родить значение для параметра "ЗначПустое" ?
Причем можно считать, что в распоряжении есть другая переменная "ЗначТекущее", которая содержит нужный тип значения для данного поля, но чем-то заполнена.
 
Значение = Новый (ТипЗначения)
+ Не забыть что значения составного типа = Неопределено
Получить тип по значению просто.

вот немного немного не оттудава - но рациональное зерно вырвать можно

Функция ПолучитьПустуюСсылкуТипа(ЗначениеТипа) Экспорт
Если ЗначениеТипа = Тип("Неопределено") Тогда //Изменить на проверку описания типов
Возврат Неопределено;
ИначеЕсли ЗначениеТипа = Тип("NULL") Тогда
Возврат NULL;
ИначеЕсли ЗначениеТипа = Тип("Строка") Тогда
Возврат "";
ИначеЕсли ЗначениеТипа = Тип("Число") Тогда
Возврат 0;
ИначеЕсли ЗначениеТипа = Тип("Дата") Тогда
Возврат Дата('00010101');
ИначеЕсли ЗначениеТипа = Тип("Булево") Тогда
Возврат Ложь;
ИначеЕсли ЗначениеТипа = Тип("РежимПроведенияДокумента") Тогда
Возврат РежимПроведенияДокумента.Неоперативный;
Иначе
ТипВозврата = Неопределено;
Попытка
ТипВозврата = Новый(ЗначениеТипа.Типы()[0]);
Исключение
ТипВозврата = Неопределено;
КонецПопытки;
Возврат ТипВозврата;
КонецЕсли;
КонецФункции //ПолучитьПустуюСсылкуТипа
 
Спасибо. Вот результаты проверки:

Значение = Новый (ТипЗнч(ЗначОбразец))

Прекрасно отработало для объектов Справочник, Перечисление. А вот на число ругнулось:
"С помощью встроенной функции Новый (New) не могут создаваться значения примитивных типов (Число)"

Так что, буду комбинировать с приведенной функцией.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab