1с как в запросе проверить на пустую дату
Перейти к содержимому

1с как в запросе проверить на пустую дату

  • автор:

Пустая ссылка, дата или строка в запросе 1С 8.3 и 8.2

В этой статье будут рассмотрены способы проверки на пустое значение в зависимости от типа проверяемого реквизита в запросе 1С 8.3, в том числе пустой ссылки.

запрос

Проверка на NULL

Значение NULL возвращается в том случае, когда реквизита попросту нет. Тип в этом случае будет тоже NULL. Например, вы объединяете две таблицы через левое соединение. В том случае, когда для левой таблицы не будет найдено ни одного значения в правой, вернется NULL.

Проверку на данное значение можно осуществить при помощи конструкции «ЕСТЬ NULL» и «ЕСТЬNULL()». В первом случае возвращается Истина или Ложь. Во втором случае можно сразу задать другое значение в том случае, когда возвращается NULL.

В приведенном ниже запросе 1С 8.3 будут возвращен список контактных лиц тех партнеров, у кого не задан сегмент.

ВЫБРАТЬ
КонтактныеЛицаПартнеров.Ссылка
ИЗ
Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СегментыПартнеров КАК СегментыПартнеров
ПО КонтактныеЛицаПартнеров.Владелец = СегментыПартнеров.Родитель
ГДЕ
СегментыПартнеров.Ссылка ЕСТЬ NULL

Пустая дата

Проверка значения на пустую дату производится путем сравнения с конструкцией ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0). Пример использования приведен ниже:

ВЫБРАТЬ
Встреча.Ссылка
ИЗ
Документ.Встреча КАК Встреча
ГДЕ
Встреча.Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

Пустая ссылка в запросе 1С

В случае, когда возвращаемый реквизит имеет ссылочный тип, например, это элемент какого-либо справочника, документа и т. п., используется следующая конструкция: ЗНАЧЕНИЕ(Справочник.ИмяСправочника.ПустаяСсылка).

В приведенном ниже примере запрос выбирает всех партнеров, у которых не указан бизнес-регион.

ВЫБРАТЬ
Партнеры.Ссылка
ИЗ
Справочник.Партнеры КАК Партнеры
ГДЕ
Партнеры.БизнесРегион = ЗНАЧЕНИЕ(Справочник.БизнесРегионы.ПустаяСсылка)

Чтобы проверить на «ЗначениеЗаполнено» нужно сделать обратное условие:

Пустая строка

Для проверки строковых типов производится сравнение с другим образцом. В данном случае – «».

Получите понятные самоучители по 1С бесплатно:

Приведенный ниже запрос отберет всех партнеров с незаполненным наименованием.

ВЫБРАТЬ
Партнеры.Ссылка
ИЗ
Справочник.Партнеры КАК Партнеры
ГДЕ
Партнеры.Наименование = «»

Текущая дата в запросе

В данной статье будет рассмотрено определение текущей даты в запросах в 1С 8.3, а именно: сделан обзор на общее понятие и организацию даты в запросах 1С 8.3, осуществлена проверка на пустую дату в запросе с примером, определено, как прописывать любую произвольную дату в языке запросов и рассмотрен пример вызова текущей даты в запросе 1С.

При помощи запросов в системе 1С 8.3 можно осуществить и провести почти любое действие или процедуру для получения информационных данных внутри платформы 1С. Тип «Дата» является одним из самых распространённых информационных типов.

Стоит отметить, что в системе 1С можно выполнять сортировку по датам и времени, при этом сортировка должна быть кратна секунде.

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

Отображение даты происходит согласно настройкам в операционной системе в компьютере.

2. Пустая дата в запросах 1С

Для начала, сделаем проверку значения по пустой дате в запросе. Как пример, пусть существуют в справочнике некоторые счета от банка, и нужно сделать выборку с теми счетами, которые не были закрыты. Поможет в определении того, что счёт не был закрыт, значение пустой даты, которое присвоено полю «ДатаЗакрытия». В этом случае запрос с проверкой на пустую дату будет выглядеть следующим образом:

Рис. 1 Проверка на пустую дату в запросе в 1С

3. Любая дата в запросе в 1С 8.3

Рассмотрим следующую функцию, в которой можно задавать любую дату для запроса в 1С 8.3 – функцию «ДатаВремя». Допустим, необходимо отобрать всю возможную документацию с наименованием «Счёт на оплату покупателю» за февраль. В таком случае текст запроса будет выглядеть так:

Рис. 2 Пример использования функции ДатаВремя

4. Текущая дата в 1С

Рассмотрим случай, когда необходимо получить текущую дату внутри запроса. Аналогов метода «ТекущаяДата()» для запросов в системе 1С нет, так что необходимо будет передать значение текущей даты в 1С через параметр в запрос, как показано в примере на скриншоте далее:

Рис. 3 Передать значение текущей даты в 1С через параметр в запрос

5. Примеры различных действий с датой в запросе 1С 8.3

Далее будут представлены различные иные манипуляции с датой в системе 1С:

Рассмотрим, как будет выглядеть полученное посредствам запроса определение начала нынешнего месяца:

Рис. 4 Выбор начала месяца с датой в запросе 1С 8.3

Конец года, можно определить при помощи следующей строчки в запросе:

Рис. 5 Конец года – дата в запросе 1С 8.3

Далее представлено получение полудня в текущей дате внутри запроса:

Рис. 6 Полдень текущей даты в запросе в 1С

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

Рис. 7 Только дата в запросе 1С 8.3

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

Рис. 8 Дата в запросе 1С 8.3 как константа

Последнее действие – это задание максимально точной даты, то есть точность до секунды, это действие может реализовать следующий запрос:

Пустая дата в запросе в 1С

Значение пустой даты — когда дата не выбрана, можно получить в запросе через функцию ДАТАВРЕМЯ() или передать в качестве параметра запроса.

Как получить пустую дату?

Запрос = Новый Запрос;

Запрос.Текст line-height: 1.5;»> ДАТАВРЕМЯ(0001, 01, 01, 0, 0, 0)

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

Вот интересный вариант, которым в запросе можно получить пустую из произвольной даты (в примере дату мы инициализировали произвольной для универсальности запроса)

ВЫБРАТЬ ДобавитьКДате(ДатаВремя(2016,10,1),ГОД,-3000) КАК ПустаяДата

В данном случае, вычитая 3000 лет, мы привели значение к пустой дате (в примере достаточно отнять 2017 лет, чтобы получить).

pustaya-data-zapros

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

Спасибо за внимание!

Клиент получает ту рекламу, которую он заслуживает!

— Дэвид Огилви

Как в запросе указать пустую дату? — ДАТАВРЕМЯ()

ДАТАВРЕМЯ ( <Целое число>, <Целое число>, <Целое число>[, <Целое число>, <Целое число>, <Целое число>] )
Значения типа дата задаются с помощью ключевого слова ДАТАВРЕМЯ, после которого в скобках последовательно указываются год, месяц, день, час, минута, секунда. Последние три указывать необязательно.

Максимальная дата которую возможно задать при помощи литерала ДАТАВРЕМЯ31.12.3999 23:59:59.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *