Меню

Пустые значения и операторы сравнения



Понятие «пустых» значений

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

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

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

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

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

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

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

Источник

Пустые значения

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

Хотя пустое значение отличается от нулевого значения, в большинстве случаев оно интерпретируется как ноль.

Читайте также:  12 фактов о крови самая редкая группа определение совместимость характер

Следующий запрос иллюстрирует поведение пустых и нулевых значений:

О пустых значениях необходимо знать следующее.

Функция IsEmpty возвращает значение true только в том случае, если ячейка, определенная кортежем, указанной в функции, пуста. В противном случае функция возвращает значение false.

Функция IsEmpty не может определить, возвращает ли выражение элемента значение null. Чтобы определить, возвращен ли из выражения элемент NULL, используйте оператор is.

Если пустое значение ячейки становится операндом для любого числового оператора (+, -, *, /), то оно интерпретируется как ноль, если другой операнд представляет собой непустое значение. Если оба операнда пусты, числовой оператор возвращает пустое значение ячейки.

Если пустое значение ячейки является операндом для оператора объединения строк (+), то оно интерпретируется как пустая строка, если другой операнд представляет собой непустое значение. Если оба операнда пусты, оператор объединения строк возвращает пустое значение ячейки.

Если пустое значение ячейки является операндом для любого оператора сравнения (=, <>, >=, , SELECT

//Comment out the following line to display all the empty rows for other Categories

FROM [Adventure Works]

В более общем случае для удаления пустых кортежей из набора можно использовать функцию NonEmpty. Следующий запрос показывает две вычисляемые меры, первая из которых показывает количество категорий продуктов, а вторая — количество категорий продуктов со значениями для меры [Internet Tax Amount] и календарного года 2001:

MEMBER MEASURES.CategoryCount AS

MEMBER MEASURES.NonEmptyCategoryCountFor2001 AS

,([Date].[Calendar].[Calendar Year].&[2001], [Measures].[Internet Tax Amount])

FROM [Adventure Works]

Дополнительные сведения см. в разделе Непустое ()многомерных выражений .

Пустые значения и операторы сравнения

Когда в данных содержатся пустые значения, логические операторы и операторы сравнения могут потенциально возвращать третий результат EMPTY вместо значений TRUE и FALSE. Эта тройственная логика является источником многих проблем в приложениях. В таблицах ниже содержатся сведения о результатах сравнений пустых значений.

В следующей таблице показаны результаты выполнения оператора AND над двумя логическими операндами.

AND true EMPTY FALSE
TRUE TRUE FALSE FALSE
УКАЗАНО FALSE EMPTY FALSE
FALSE FALSE FALSE FALSE

В следующей таблице показаны результаты выполнения оператора OR над двумя логическими операндами.

ИЛИ TRUE FALSE
TRUE TRUE TRUE
УКАЗАНО TRUE TRUE
FALSE TRUE FALSE

В следующей таблице показаны результаты отрицания (перемены знака) логического операнда оператором NOT.

Источник

Пустые значения

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

Хотя пустое значение отличается от нулевого значения, в большинстве случаев оно интерпретируется как ноль.

Следующий запрос иллюстрирует поведение пустых и нулевых значений:

О пустых значениях необходимо знать следующее.

Функция IsEmpty возвращает значение true только в том случае, если ячейка, определенная кортежем, указанной в функции, пуста. В противном случае функция возвращает значение false.

Функция IsEmpty не может определить, возвращает ли выражение элемента значение null. Чтобы определить, возвращен ли из выражения элемент NULL, используйте оператор is.

Если пустое значение ячейки становится операндом для любого числового оператора (+, -, *, /), то оно интерпретируется как ноль, если другой операнд представляет собой непустое значение. Если оба операнда пусты, числовой оператор возвращает пустое значение ячейки.

Если пустое значение ячейки является операндом для оператора объединения строк (+), то оно интерпретируется как пустая строка, если другой операнд представляет собой непустое значение. Если оба операнда пусты, оператор объединения строк возвращает пустое значение ячейки.

Если пустое значение ячейки является операндом для любого оператора сравнения (=, <>, >=, , SELECT

//Comment out the following line to display all the empty rows for other Categories

FROM [Adventure Works]

В более общем случае для удаления пустых кортежей из набора можно использовать функцию NonEmpty. Следующий запрос показывает две вычисляемые меры, первая из которых показывает количество категорий продуктов, а вторая — количество категорий продуктов со значениями для меры [Internet Tax Amount] и календарного года 2001:

MEMBER MEASURES.CategoryCount AS

MEMBER MEASURES.NonEmptyCategoryCountFor2001 AS

,([Date].[Calendar].[Calendar Year].&[2001], [Measures].[Internet Tax Amount])

FROM [Adventure Works]

Дополнительные сведения см. в разделе Непустое ()многомерных выражений .

Пустые значения и операторы сравнения

Когда в данных содержатся пустые значения, логические операторы и операторы сравнения могут потенциально возвращать третий результат EMPTY вместо значений TRUE и FALSE. Эта тройственная логика является источником многих проблем в приложениях. В таблицах ниже содержатся сведения о результатах сравнений пустых значений.

В следующей таблице показаны результаты выполнения оператора AND над двумя логическими операндами.

AND true EMPTY FALSE
TRUE TRUE FALSE FALSE
УКАЗАНО FALSE EMPTY FALSE
FALSE FALSE FALSE FALSE

В следующей таблице показаны результаты выполнения оператора OR над двумя логическими операндами.

ИЛИ TRUE FALSE
TRUE TRUE TRUE
УКАЗАНО TRUE TRUE
FALSE TRUE FALSE

В следующей таблице показаны результаты отрицания (перемены знака) логического операнда оператором NOT.

Источник

Как быстро заполнить пустые ячейки в Excel?

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

Заполнять пустоты или нет? Этот вопрос часто касается пустых ячеек в таблицах Excel. С одной стороны, ваша таблица выглядит аккуратнее и читабельнее, если вы не загромождаете ее повторяющимися значениями. С другой стороны, пустые ячейки могут вызвать проблемы при сортировке, фильтрации данных или создании сводной таблицы. В этом случае вам желательно заполнить все поля.

Таким образом, мой ответ — «Заполнить». А теперь посмотрим, как это сделать.

Есть разные способы решения этой проблемы. Я покажу вам несколько быстрых и один ОЧЕНЬ быстрый способ заполнить пустые ячейки значениями.

Как выделить пустые ячейки на листах Excel.

Перед тем, как заполнить пустоты в таблице Excel, сначала нужно их выделить. Если у вас большая таблица с десятками незаполненных областей, разбросанными по ней, то потребуется много времени, чтобы сделать это вручную. Вот быстрый приём для выбора пустых ячеек.

  1. Выберите столбцы или строки, в которых вы хотите заполнить пустоты.
  1. Нажмите Ctrl + G или же F5 для отображения диалогового окна “ Перейти”.
  2. Щелкните по кнопке «Выделить».
  3. Выберите «Пустые ячейки».

Совет. Если вы забыли сочетания клавиш, перейдите в группу « Найти и выделить» на вкладке Главная и выберите команду « Выделить группу ячеек» в раскрывающемся меню. Появится то же самое диалоговое окно.

  1. Далее выберите, что будем выделять. Например, формулы, комментарии, константы, пробелы и т. д.
  1. Установите переключатель « Пустые ячейки» и нажмите « ОК».

Теперь выделены только пустые ячейки из выбранного диапазона, и вы готовы к следующему шагу.

Формула Excel для заполнения пустых ячеек значениями, стоящими выше / ниже

Выбрав пустые ячейки в таблице, вы можете заполнить их значениями, стоящими сверху или снизу, или же просто вставить какое-то определенное содержимое.
Если вы собираетесь заполнить пробелы значением из ближайшей заполненной ячейки выше или ниже, вам нужно ввести очень простую формулу в одну из пустых ячеек. Затем просто скопируйте ее во все остальные. Вот как это сделать.

  1. Выделите все незаполненные ячейки, как описано выше.
  2. Нажмите F2 или просто поместите курсор в строку формул, чтобы начать писать формулу в активной ячейке.

Как видно на скриншоте ниже, активная ячейка – A3, то есть по умолчанию это самая левая верхняя из всех незаполненных.

  1. Введите знак равенства (=).
  2. Наведите курсор на ячейку, находящуюся выше или ниже, с помощью клавиши со стрелкой вверх или вниз или просто кликните по ней мышкой.

Формула (=A2) показывает, что A3 получит значение из A2, и будет заполнена предыдущим значением.

  1. Нажмите Ctrl + Enter , чтобы автоматически вставить формулу сразу во все выделенные позиции.

Ну вот! Теперь каждая выделенная ячейка ссылается на ячейку, находящуюся над ней.

Совет. Вы должны помнить, что все ячейки, которые раньше были пустыми, теперь содержат формулы. И если вы хотите, чтобы ваша таблица была в порядке, лучше эти формулы заменить на значения. В противном случае вы получите беспорядок при сортировке или же добавлении строк или столбцов в таблицу.

Поэтому рекомендую не останавливаться и сразу после ввода формул заменить их на значения. Выполните следующие простые шаги:

  1. У вас выделены все ячейки с формулами, которые вы только что ввели и хотите преобразовать.
  2. Нажмите Ctrl + C или же Ctrl + Ins , чтобы копировать формулы и их результаты в буфер обмена.
  3. Нажмите Shift + F10 а потом V , чтобы вставить обратно в выделенные позиции только значения.
    Shift + F10 + V — это самый быстрый способ использовать диалог Excel « Специальная вставка».

Заполните пустые ячейки нулями или другим определенным значением

Что, если вам нужно заполнить все пробелы в таблице нулями, любым другим числом или просто одинаковыми данными? Вот два способа решить эту проблему.

Способ 1.

  1. Выделите пустые ячейки, как мы уже делали.
  2. Нажмите F2 для активации режима редактирования в строке формул. Или просто кликните туда мышкой.
  3. Введите желаемое число или текст.
  4. Нажмите Ctrl + Enter .

Несколько секунд — и все пустые ячейки одинаково заполнены введенным вами словом, символом либо нулями при необходимости.

Способ 2.

  1. Выделите диапазон с пустыми ячейками.
  2. Нажмите Ctrl + H для отображения диалогового окна « Найти и заменить». Или используйте меню.
  3. В этом окне перейдите на вкладку « Заменить».
  4. Оставьте поле « Найти» пустым и введите необходимое значение в текстовое поле « Заменить на».
  5. Щелкните » Заменить все».

Пустые ячейки будут заполнены значением, которое вы указали.

Заполнение пустых ячеек при помощи макроса VBA.

Если подобную операцию вам приходится делать часто, то имеет смысл создать для неё отдельный макрос, чтобы не повторять всю вышеперечисленную цепочку действий вручную. Для этого жмём Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer), чтобы открыть редактор VBA, затем вставляем туда новый пустой модуль через меню Insert – Module. Далее копируем или вводим туда вот такой короткий код:

Sub Fill_Blanks()
For Each cell In Selection
If IsEmpty(cell) Then cell.Value = cell.Offset(-1, 0).Value
Next cell
End Sub

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

Для удобства, можно назначить этому макросу сочетание клавиш или даже поместить его в Личную Книгу Макросов (Personal Macro Workbook), чтобы он был доступен при работе в любом вашем файле Excel.

Какой бы способ вы ни выбрали, заполнение таблицы Excel займет у вас буквально минуту.

Теперь вы знаете приемы замены пустых ячеек в таблице разными значениями. Я уверен, что вам не составит труда сделать это при помощи любого из рассмотренных способов.

Источник

1с проверка на пустое значение с примерами

В 1С проверка на пустое значение осуществляется специальной функцией. Что бы проверить заполнен ли имеющийся у вас реквизит или переменная следует использовать функцию из глобального контекста ЗначениеЗаполнено( ).

В 1С 8 значение считается заполненным (не пустым) если оно отличается от значения по умолчанию для данного типа. Например для ссылочного типа значение по умолчанию — это Пустая ссылка (данного справочника, документа и т.п.). Также пустыми являются переменные и реквизиты содержащие значения Null и Неопределено.

1с проверка на пустое значение. Примеры

В данном случае переменная Проверка будет содержать значение Ложь. Также функцию ЗначениеЗаполнено( ). можно использовать напрямую в условиях.

В данном примере, если документ Авансовый отчет с номером 000000001 существует, то в переменной Проверка будет содержаться значение Истина, иначе Ложь.

Использовать функцию ЗначениеЗаполнено нельзя для переменных мутабельных типов, таких как Таблица значений, Дерево значений и т.п. Функция работает для всех конфигураций.

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

Пример 3. Пусть МояТаблица — таблица значений определенная выше в коде.

Этим же методом можно определить заполненность дерева значений и выборки результата запроса.

Пример 4. Пусть МоеДерево — дерево значений определенное выше в коде.

Как видите, в дереве значений мы проверяем наличие строк первого уровня, если их нет, то дерево пустое.

Пример 5. Пусть Запрос — запрос к базе данных 1С 8, определенный выше.

На этом описание основных приемов, при помощи которых осуществляется в 1с проверка на пустое значение, закончено. Если вы хотите узнать, как сделать проверку на пустое значение в запросе, прочитайте следующие статьи: Проверка на null в запросе и Проверка на Неопределено в запросе

Источник