Про наши гаджеты. Понятные инструкции для всех

1с проверить пустую дату в запросе. Получение отдельных составляющих даты.

| Дата: 4 Февраль, 2016

Очень часто в запросах 1С приходится работать с датами. Особенно когда запрос строится к объектам метаданных в которых содержится периодическая информация. Как правило это регистры (сведений, накопления, расчета, бухгалтерии). Рассмотрим наиболее часто используемые функции языка запросов 1С для работы с датами. Примеры будем строить на основе регистра сведений РаботникиОрганизаций Конфигурации ЗУП редакция 2.5.

Добавить условие для действия макроса

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

  • ДАТАВРЕМЯ

    Позволяет получить в запросе дату (со временем или без) путем указания года, месяца, дня, часа, минуты, секунды.
    Синтаксис:
    ДАТАВРЕМЯ(Год, Месяц, День, Час, Минута, Секунда)
    Обычно час, минута и секунда не указываются. Давайте приведем мини пример. Введите в консоли запросов следующий текст:

    ВЫБРАТЬ ДАТАВРЕМЯ(2016, 1, 1)

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

    В результате выполнения запроса получаем дату - 01.01.2016
    На самом деле трудно представить ситуацию в которой в запросе дата будет указываться таким образом. Ведь когда надо указать период используются параметры. Но есть случай когда эта функция представляет особую ценность. Это когда нам надо в полях или в условиях запроса указать пустую дату. Напомню, что для языка 1С пустая дата имеет вид - 0001.01.01. Таким образом, чтобы получить пустую дату в запросе достаточно указать ДАТАВРЕМЯ(1, 1, 1) . В качестве примера выберем из регистра сведений РаботникиОрганизаций записи у которых не заполнен ПериодЗавершения :

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

    Типы данных Все поля в таблице имеют тип данных, который ограничивает то, что пользователи могут писать. Например, поле даты и времени принимает только значения даты и времени, поле валюты принимает только данные валюты и т.д. свойства полей Некоторые свойства поля ограничивают ввод данных. Например, свойство поля «Размер поля» ограничивает ввод, ограничивая объем данных. Эти методы проверки данных могут использоваться изолированно или в сочетании друг с другом. Типы данных не являются необязательными и сообщают о самой базовой проверке типа данных.

    ВЫБРАТЬ РаботникиОрганизаций.Период, РаботникиОрганизаций.Сотрудник, РаботникиОрганизаций.Должность, РаботникиОрганизаций.ПодразделениеОрганизации ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1)

  • НАЧАЛОПЕРИОДА

    Для указанной даты возвращает начало периода в который она входит.
    Синтаксис:
    НАЧАЛОПЕРИОДА(Дата, ТипПериода)
    ТипПериода может принимать следующие значения: МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ
    В консоли запросов введите:

    В разделе Введение в типы данных и свойства поля. Вы можете создать два основных типа правил проверки. Правила проверки полей Используйте правило проверки поля для проверки значения, указанного в поле при выходе из поля. Правило заставляет пользователей вводить даты, которые соответствуют или позже 1 января. В отличие от правила проверки поля, правило проверки журнала относится к другим полям в одной таблице. Правила проверки журнала создаются, когда необходимо проверять значения одного поля относительно значений другого поля. Например, представьте, что ваша компания требует, чтобы вы отправляли продукты в течение 30 дней, и, если вы этого не сделаете, вам придется возместить клиенту часть покупной цены. Раздел, где объясняется синтаксис, и вы можете увидеть некоторые примеры правил проверки.

    ВЫБРАТЬ НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(2016, 1, 15), МЕСЯЦ)

    Запрос вернет - 01.01.2016
    А теперь пример. Как известно периодичность у регистра РаботникиОрганизаций один день. Составим запрос в котором вместо действительного периода записей будет отображаться дата начала месяца.

    ВЫБРАТЬ НАЧАЛОПЕРИОДА(РаботникиОрганизаций.Период, МЕСЯЦ) КАК НачалоМесяца, РаботникиОрганизаций.Сотрудник, РаботникиОрганизаций.Должность, РаботникиОрганизаций.ПодразделениеОрганизации ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций

    Где использовать правила валидации

    Правила проверки могут быть определены для полей таблицы и элементов управления формой. При определении правил для таблиц эти правила применяются при импорте данных. Чтобы добавить правила проверки в таблицу, откройте таблицу и используйте команды на вкладке «Области ленты». Чтобы добавить правила проверки в форму, форма открывается в представлении «Макет», а правила добавляются к свойствам отдельных элементов управления.

    Добавить правило проверки в таблицу

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

  • КОНЕЦПЕРИОДА

    Синтаксис такой же как и у начала периода. И как ясно из названия возвращает конец периода по дате и типу периода. Подробно рассматривать не будем. Ограничимся мини примером.
    Запрос:

    ВЫБРАТЬ КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(2016, 1, 15), МЕСЯЦ)

    Возвращает 31.01.2016 23:59:59
    Как видим значение возвращается с точностью до секунды.

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

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

    Создать правило проверки реестра

    В группе «Проверка поля» на вкладке «Поля» нажмите «Проверка», а затем нажмите «Правило проверки записи».

    Создать сообщение, которое открывается, когда запись в реестре недействительна

    Откройте таблицу, где необходимо отобразить сообщение, если указанные данные недействительны. В группе «Проверка полей» на вкладке «Поля» нажмите «Проверка», а затем нажмите «Записать подтверждение проверки».

    Контрастность существующих данных с новым правилом валидации

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

  • ДОБАВИТЬКДАТЕ

    Добавляет к дате указанное количество временных интервалов.
    Синтаксис:
    ДОБАВИТЬКДАТЕ(Дата, ТипПериода, Количество)
    ТипПериода принимает те же значения, что и для функции НАЧАЛОПЕРИОДА
    Для примера выберем февральскую дату:

    ВЫБРАТЬ ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(2016, 2, 15), МЕСЯЦ, 2)

    Получаем дату 15.04.2016 0:00:00 Несмотря на то, что февраль короткий месяц, день полученной даты тот же самый, что и у исходной. Очень удобно, что не приходится задумываться о количестве дней в месяцах.
    Количество может быть и отрицательным. Тогда отсчет интервала производится в обратную сторону.

    Добавить правило проверки в форму

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

    • Откройте таблицу, которую вы хотите проверить в представлении «Дизайн».
    • В группе «Инструменты» на вкладке «Дизайн» нажмите «Проверить правила проверки».
    • Нажмите «Да», чтобы закрыть предупреждающее сообщение и запустить тест.
    • Если вам будет предложено сохранить таблицу, нажмите «Да».
    • Несколько предупреждающих сообщений могут появляться по мере продвижения.
    Элемент управления может иметь другое правило проверки, чем поле таблицы, к которому привязан этот элемент управления, что может быть полезно, если вы хотите, чтобы форма была более ограничительной, чем таблица.

  • РАЗНОСТЬДАТ

    Расчитыват разность между двумя датами в указанных единицах измерения.
    Синтаксис:
    РАЗНОСТЬДАТ(ДатаНачала, ДатаОкончания, ТипПериода)
    Тип периода может принимать значения: СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, МЕСЯЦ, КВАРТАЛ, ГОД
    Например:

    ВЫБРАТЬ РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2016, 2, 15), ДАТАВРЕМЯ(2016, 3, 1), ДЕНЬ)

    Правило формы применяется, а затем правило таблицы. Если таблица более ограничительна, чем форма, правило, определенное для поля таблицы, будет иметь приоритет. Если оба правила исключены друг от друга, данные не могут быть записаны. Например, предположим, что вы применяете следующее правило к полю даты в таблице.

    Создать правило проверки для элемента управления

    Но затем примените это правило к элементу управления формы, связанному с полем даты. Щелкните правой кнопкой мыши форму, которую вы хотите изменить, и выберите «Представление презентации».

    Ссылка на правила проверки

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

    возвращает 15

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

Дата — один из примитивных типов данных в системе 1С:Предприятие. Дата всегда имеет формат год, месяц, день, час, минута, секунда. Таким образом, переменная типа дата содержит не только дату, но и время.

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

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

Создать переменную с типом дата можно несколькими способами:

Способ 1:

Присвоение переменной значения типа ‘ГГГГММДДччммсс’ или ‘ГГГГ.ММ.ДД:чч:чч:сс’

‘20100304235959’ — вернет дату 04.03.2010 23:59:59.

‘2011.10.09:22:10:12’ — вернет дату 09.10.2011 22:10:12.

Способ 2:

Использование функции глобального контекста Дата (Год, Месяц, День, час, минуты, секунды).

Преимущества использования прилагаемого запроса данных

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

Основные шаги для создания прилагаемого запроса данных

По запросу все данные выбираются сразу, а затем копируются. . Процесс создания прилагаемого запроса данных состоит из следующих основных шагов.

Дата(2010, 07, 14, 12, 13, 14) —

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

Дата(20100714121314) — вернет значение 14.07.2010 12:13:14

Способ 3 (для запросов):

Использование выражения ДАТАВРЕМЯ (Год, Месяц, День, час, минута, секунда)

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

Создайте запрос выбора: во-первых, вы должны выбрать данные, которые хотите скопировать. Вы можете настроить запрос выбора по мере необходимости и запустить его столько раз, сколько хотите, чтобы вы выбрали данные, которые хотите скопировать. Просмотрите запрос и запустите его, чтобы добавить записи. Преобразуйте запрос выбора в прикрепленный запрос данных. . Важно: Запросы для прикрепленных данных не могут быть отменены. Рассмотрите возможность создания резервной копии базы данных или целевой таблицы.

Создание и выполнение прилагаемого запроса данных

Создайте запрос для выбора записей, которые нужно скопировать

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


Шаг 3: Выберите целевые поля

Как вы должны выбрать целевые поля, зависит от того, как вы создали запрос выбора на этапе. Если оставить поле цели пустым, запрос не будет добавлять данные в это поле. Шаг 4: Предварительный просмотр и запрос прилагаемого запроса данных.

Запретить отключенный режим блокировать запрос

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

Дата (2010, 07, 14) вернет значение 14.07.2010 0:00:00

Способ 4:

Еще можно попросить пользователя ввести нужную дату. Для этого необходимо воспользоваться функцией ВвестиДату(Дата, Подсказка, ЧастьДаты). Первый параметр задает переменную, которой будет присвоено введенное значение. Второй параметр — это заголовок диалогового окна, третий параметр определяет, какую часть типа дата необходимо ввести. Он может принимать следующие значения:

  • ЧастиДаты.Дата — будут введены только год, месяц и день;
  • ЧастиДаты.Время — будут введены только часы, минуты, секунды. В этом случае дата будет иметь вид 0001.01.01 чч:мм:сс.
  • ЧастиДаты.ДатаВремя — будут введены все составляющие даты и времени.

Способ 5 (получить текущую дату и время)

Дата= ТекущаяДата() ;

Проверка пустой даты

Часто бывает необходимо проверить, введена дата или нет. Пустая дата — это первое января 1 года, 0 часов, 0 минут, 0 секунд. Проверка может выглядеть следующим образом:

Если ПроверяемаяДата= Дата(1 , 1 , 1 ) Тогда
//действие при пустой дате
КонецЕсли ;

Использование даты в реквизитах

В реквизитах справочников, документов и т.д. можно использовать:

  • дату, тогда время всегда равно 00:00:00;
  • только время, тогда дата равна 01.01.0001;
  • дату и время.

Получение отдельных составляющих даты

Получить год:

Результат= Год(Дата) ;

Получить месяц:

Результат= Месяц(Дата) ;

Получить номер дня в месяце:

Результат= День(Дата) ;

Получить номер дня в году:

Результат= ДеньГода(Дата) ;

Получить номер дня в неделе:

Результат= ДеньНедели(Дата) ;

Получить номер недели в году:

Результат= НеделяГода(Дата) ;

Получить час:

Результат= Час(Дата) ;

Получить минуту:

Результат= Минута(Дата) ;

Получить секунду:

Результат= Секунда(Дата) ;

Операции по преобразованию дат

Дата представляет собой количество секунд, прошедших с 1 января 0001 года 00:00:00. Поэтому, чтобы добавить к дате дни, часы, минуты и т.д., нужно прибавить соответствующее количество секунд.

Результат= Дата + 1 ; //Прибавили секунду
Результат= Дата + 2 * 60 ; //Прибавили 2 минуты
Результат= Дата + 3 * 60 * 60 * 24 ; //Прибавили 3 дня

Прибавить или отнять от даты один или несколько месяцев.

Загрузка...