1С сравнение с неопределено

1С сравнение с неопределено

Значение типа Неопределено используется прежде всего как значение по умолчанию (незаданное значение) для полей с составным типом. Например, если есть реквизит, который имеет составной тип, включающий СправочникСсылка.Товары и СправочникСсылка.Материалы, то значением реквизита по умолчанию будет Неопределено . Так же это значение используется и в других случаях для обозначения неуказанного значения.

Значение типа Null используется при работе с таблицами прикладных объектов. Оно обозначает отсутствие значения поля в выборке. Прежде всего оно используется в результатах запросов выполняющих левое или правое соединение. Поля невыбранных записей таблиц участвующих в таких соединениях будут иметь значение Null . Кроме того, значение типа Null будет иметь, например, реквизит иерархического справочника для элементов-групп, если в метаданных указано, что этот реквизит используется только для элементов не являющихся группами.

Значение типа Неопределено используется прежде всего как значение по умолчанию (незаданное значение) для полей с составным типом. Например, если есть реквизит, который имеет составной тип, включающий СправочникСсылка.Товары и СправочникСсылка.Материалы, то значением реквизита по умолчанию будет Неопределено. Так же это значение используется и в других случаях для обозначения неуказанного значения.

Значение типа Null используется при работе с таблицами прикладных объектов. Оно обозначает отсутствие значения поля в выборке. Прежде всего оно используется в результатах запросов выполняющих левое или правое соединение. Поля невыбранных записей таблиц участвующих в таких соединениях будут иметь значение Null. Кроме того, значение типа Null будет иметь, например, реквизит иерархического справочника для элементов-групп, если в метаданных указано, что этот реквизит используется только для элементов не являющихся группами.

В 1С:Предприятии 8 отсутствует такое понятие как "пустое" значение.

Существует значение Неопределено (типа Неопределено ). Оно применяется в основном как значение по умолчанию реквизитов (а также колонок таблиц значений и т.д.), имеющих составной тип. То есть, если в некотором реквизите могут содержаться значения более чем одного типа, то по умолчанию этот реквизит будет иметь значение Неопределено . Соответственно можно присвоить такому реквизиту значение Неопределено , как значение, обозначающее, отсутствие значения какого-либо другого из доступных типов. Такое значение будет иметь и объявленная переменная модуля пока ей не присвоили какое-либо значение. Заметим, что в объекте ОписаниеТипов фактически присутствует тип Неопределено , если в нем содержится более одного типа, так как если могут храниться значения двух типов, то всегда может быть и значение Неопределено . Таким образом, значение Неопределено обозначает отсутствие значения какого-либо определенного типа.

Читайте также:  Ремонт модулей управления посудомоечных машин

Существует значение Null (типа Null ). Оно обозначает отсутствие значения в выборке полученной из базы данных. Например, при выполнении левого и правого соединения поля невыбранных записей будут иметь значения Null . Кроме того, значение типа Null будут иметь реквизиты иерархического справочника для элементов-групп, если в метаданных указано, что этот реквизит используется только для элементов не являющихся группами. Аналогично и для элементов, значения Null будут иметь реквизиты доступные только для групп.

Заметим, что и значение Неопределено и значение Null имеют соответствующие типы и используются в специальных (описанных выше) случаях, а не в качестве "пустых" значений каких-либо типов.

Для большинства типов существуют значения по умолчанию, то есть значения, устанавливаемые системой в реквизите (колонке таблицы значений и т.д.) если для него задан соответствующий тип. Например, для числа – пустым значением является 0, для строки – строка, не содержащая ни одного символа, для даты – дата начала отсчета (‘00010101’).
Для типов ссылок на объекты базы данных существуют значения пустых ссылок. Их можно получить у соответствующих менеджеров вызовом метода ПустаяСсылка() . Именно это значение является значением по умолчанию для соответствующих типов. Заметим, что если реквизит имеет составной тип, включающий тип ссылки на объект базы данных, то данному реквизиту можно присвоить как значение Неопределено , так и значение соответствующей пустой ссылки. Соответственно в этих двух случаях будут храниться два разных значения. Решения, какое значение присваивать зависит от прикладного смысла. Например, если реквизит может иметь значения двух ссылочных типов и, исходя из значений других реквизитов, очевидно, что в нем должно быть значение определенного (одного из этих двух) ссылочного типа, но конкретная ссылка еще не выбрана пользователем, то можно присвоить значение пустой ссылки соответствующего типа. Например, это необходимо для того, чтобы поле ввода позволило бы пользователю ввести значение необходимого типа. А если, исходя из значений других реквизитов, этот реквизит вообще не должен быть заполнен, то тогда ему нужно присвоить значение Неопределено .

Читайте также:  Последние снимки из космоса

В 1С:Предприятии 8 используется понятие "незаполненного значения". Оно применяется для различных сервисных возможностей. Например, у измерений регистров можно установить свойство Запрет незаполненных значений . Тогда система при записи будет автоматически проверять заполнено соответствующее измерение или нет. Так же существуют свойства АвтоОтметкаНезаполненного и свойство АвтоВыборНезаполненного . Они управляют соответственно автоматическим подчеркиванием незаполненного значения и автоматическим началом выбора незаполненного значения.
Во всех случаях для проверки того заполнено значение или нет, используется единый принцип. Значение считается незаполненным, если оно равно значению по умолчанию для своего типа. Соответственно незаполненными значениями будет число 0, строка, не содержащая символов, пустая ссылка на элемент справочника и т.д.

Для строкового типа существует встроенная функция ПустаяСтрока() , однако, не следует считать, что он проверяет, является ли строковое значение значением по умолчанию. Данный метод проверяет, что строка не содержит ни одного значащего символа. При этом строка может содержать незначащие символы, такие как "пробел", "неразрывный пробел" и т.д.

Ссылка на основную публикацию
Adblock detector