• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

Дайнеко

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

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

Mirage

Значение = Новый (ТипЗначения)
+ Не забыть что значения составного типа = Неопределено
Получить тип по значению просто.

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

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

Дайнеко

Спасибо. Вот результаты проверки:

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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!