1с текущая дата плюс один день
Как в 1С 8.3 прибавить месяц, день, неделю и т.д.
Рассмотрим разные способы добавления различных периодов дат в 1С 8.3 — от месяца, до секунды.
Простой и «топорный» метод
Метод хорошо отрабатывает при добавлении дня. Что касается месяца, в таком способе нам придётся контролировать количество дней в прибавляемом месяце, учитывая количество дней в следующем, ещё високосный год. Получается совсем сложно и громоздко.
Таким образом для операций с месяцами во встроенном языке 1С, как стандарт, существует две функции это ДобавитьМесяц() и в языке запросов ДОБАВИТЬКДАТЕ(). Рассмотрим подробно работу с каждой из них.
Функция ДобавитьМесяц()
Где параметр это «наша дата», количество добавляемых месяцев (цифра).
Если следует отнимать месяцы, то количество месяцев необходимо указывать со знаком минус.
Функция ДОБАВИТЬКДАТЕ() — в запросах 1С
Получите понятные самоучители по 1С бесплатно:
Где параметры это «наша дата», это единица измерения временного интервала (ГОД, ПОЛУГОДИЕ, КВАРТАЛ, МЕСЯЦ, НЕДЕЛЯ, ДЕКАДА, ДЕНЬ, ЧАС, МИНУТА, СЕКУНДА), а в параметре указывается число прибавляемых временных интервалов.
Если необходимо отнять временной интервал параметр необходимо задавать со знаком минус.
Примечание — возможны ошибки
Если стоит задача отнять или прибавить к дате несколько месяцев. Используя данные функции, не стоит отнимать или прибавлять месяца последовательно, так как это приведёт к неверному результату. Допустим необходимо к дате 31 января 2020г. прибавить 2 месяца.
Работа с датами в 1С
Дата в 1С один из примитивных типов данных в системе. Дата всегда имеет формат год, месяц, день, час, минута, секунда. Таким образом, переменная типа дата содержит не только дату, но и время.
Очевидно, что очень часто программистам приходится работать с датой и временем и естественно, по мере работы возникают вопросы, ответы на которые приходится где то искать. Я накидал для себя небольшую шпаргалку по работе с датами.
Хранение дат в системе
В базе данных даты хранятся с точностью до секунд. Для реквизитов типа «дата» можно установить вариант хранения «дата и время», «только дата», «только время».
Переменные типа «дата» всегда представляют дату с секундами. Отсчет дат ведется с Рождества Христова (наша эра), т.е. с 01.01.0001 00:00:00 по Григорианскому календарю. Начальная дата — это не совсем дата. Это значение в системе используется для представления «пустой даты» (аналог пустой ссылки для ссылочных типов или пустой строки «» для строкового типа).
Максимальная дата — 31.12.3999 23:59:59
Как получить текущую дату и время?
Как явно указать нужную дату?
Пустая дата в 1С
Как соединить дату и время?
Как сложить две даты
Как вычислить количество дней между двумя датами
Если у вас есть еще какие то интересные заметки — пиши в комментариях, с радостью добавлю в эту статью.
Как добавить к дате секунду, минуту, час, день
Дата представляет собой количество секунд, прошедших с 1 января 0001 года 00:00:00. Поэтому, чтобы добавить к дате дни, часы, минуты и т.д., нужно прибавить соответствующее количество секунд:
Как в 1С прибавить к дате 1 день?
1. Дата в программе 1С
Дата в программе 1С – примитивный тип данных.
Дату можно задать прямо в коде программы 1С, в одинарных кавычках: первые 4 цифры — это год, затем 2 цифры — это месяц, и последние – день.
Дату можно задать командой Дата () и указать параметры этой команды в скобках, из которых будет сформирована дата.
Чтобы присвоить переменной «Дата» какое-либо значение, мы сначала определяем переменную, где будет храниться дата и присваиваем ей начальное значение 01.01.0001 00:00:00 – представление пустой даты.
В команде «Ввести Дату ()» указываем переменную, в которую будет помещено введенное значение.
Начальное или «Пустое» значение даты 1С можно вводить и так:
Дата () имеет формат год – месяц – день – час – минута – секунда, то есть дата содержит не только дату, но и время.
Текущую дату и время в системе можно получить следующим образом:
Явно указать нужную дату можно с помощью литералов встроенного языка запросов 1С «ГГГГММДДЧЧММСС», «20200825000012» – получим 25.08.2020 00:00:12
Либо через функцию Дата () или ДатаВремя ()\
Кроме того, в программах 1С возможно сложить две даты. Делается это следующим образом:
2. Прибавить к дате день в 1С – решение задачи
Выше мы перечислили основные манипуляции с типом данных Дата, изначально предусмотренные в 1С. Однако нет специальной встроенной функции, которая бы прибавляла к дате день в 1С, хотя у пользователей иногда возникает такая потребность. Далее попробуем разобраться, как реализовать подобное.
Итак, есть несколько вариантов решения этой задачи. Первый – прибавить к дате день в 1С при помощи оператора «+» секунды. Например, используя функцию КонецДня() :
Мы прибавляем секунду к 25.08.2020 23:59:59 и получаем следующий день 26.08.2020 00:00:00
Для прибавления целого дня, нужно прибавить количество секунд в одном дне.
Количество секунд в сутках 60*60*24 = 86400 секунд.
Второй способ – используя запрос:
Функция позволяет добавить и вычесть из даты нужное количество времени в произвольном количестве. ЕдиницаИзмерения – определяет единицу времени (год, месяц, день, час, минута, секунда).
Функции работы с датами в 1С 8
Дата — один из примитивных типов данных в системе 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) — вернет значение 14.07.2010 12:13:14
Этой же функцией можно преобразовать строку в дату.
Дата(20100714121314) — вернет значение 14.07.2010 12:13:14
Способ 3 (для запросов):
Использование выражения ДАТАВРЕМЯ (Год, Месяц, День, час, минута, секунда)
Для любого из способов указание часов, минут и секунд не является обязательным.
Дата (2010, 07, 14) — вернет значение 14.07.2010 0:00:00
Способ 4:
Еще можно попросить пользователя ввести нужную дату. Для этого необходимо воспользоваться функцией ВвестиДату(Дата, Подсказка, ЧастьДаты). Первый параметр задает переменную, которой будет присвоено введенное значение. Второй параметр — это заголовок диалогового окна, третий параметр определяет, какую часть типа дата необходимо ввести. Он может принимать следующие значения:
Способ 5 (получить текущую дату и время)
Проверка пустой даты
Часто бывает необходимо проверить, введена дата или нет. Пустая дата — это первое января 1 года, 0 часов, 0 минут, 0 секунд. Проверка может выглядеть следующим образом:
Использование даты в реквизитах
В реквизитах справочников, документов и т.д. можно использовать:
Получение отдельных составляющих даты
Программная работа с датой
Тип данных Дата позволяет привязывать события учета к шкале времени. Для этого значения типа Дата могут хранить три варианта даты:
На физическом уровне (в таблицах базы данных) тип Дата хранится в числовом виде, представляя количество секунд, прошедшее с 1 января 0001 года. Верхняя граница технически ограничена значением 31.12.3999 23:59:59
Дату в коде можно представить двумя способами:
Обратите внимание, что составные части даты имеют одну и ту же последовательность: год, месяц, день, час, минута, секунда. Схематично это можно представить так:
Операции с датой
Сложение
Поскольку дата на физическом уровне приводится к числовому значению, то прибавив к нему некоторое числовое значение, вы снова получите число. При сложении даты и числа, последнее воспринимается платформой, как количество прибавляемых секунд:
Здесь важно соблюдать последовательность операндов: на первом месте должна идти дата, а затем число. Например, следующий код будет ошибочным:
Причем, с ошибкой Вы столкнетесь только на этапе выполнения программы!
Вычитание
Вычитание — операция обратная от сложения. Это равноценно тому, что мы прибавляли бы к дате отрицательное значение. Здесь также важно соблюдать последовательность:
Кроме того, можно из одной даты, вычесть другую и мы получим длину интервала в секундах:
Склеивание (конкатенация)
В том случае, если вы работаете со строковыми представлениями даты, возможна обычная конкатенация (склеивание) строк:
Функции работы с датой
Дата() | функция преобразования к типу дата |
ТекущаяДата() | возвращает текущую дату |
НачалоДня() | возвращает дату и время начала дня для даты |
КонецДня() | возвращает дату и время конца дня для даты |
ДобавитьМесяц() | добавляет к дате целое число месяцев |
ДеньНедели() | возвращает номер дня недели для даты |
Внимание! В таблице перечислены не все функции работы с датой