Как добавить год в 1с 8
Перейти к содержимому

Как добавить год в 1с 8

Как добавить к дате год?

Программисту 1С на практике часто приходится сталкиваться с приращением дат. В частности, бывают задачи, когда нужно получить тот же день месяца в следующем году или в предыдущем. Зная, что в сутках 86400 секунд (3600 * 24), а в году 365 дней, можно быстренько написать такую нехитрую формулу:

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

Как в 1С 8.3 прибавить месяц, день, неделю и т.д.

Рассмотрим разные способы добавления различных периодов дат в 1С 8.3 — от месяца, до секунды.

Простой и «топорный» метод

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

Таким образом для операций с месяцами во встроенном языке 1С, как стандарт, существует две функции это ДобавитьМесяц() и в языке запросов ДОБАВИТЬКДАТЕ(). Рассмотрим подробно работу с каждой из них.

Функция ДобавитьМесяц()

ДобавитьМесяц(<Дата>, <ЧислоМесяцев>)

Где параметр <Дата> это «наша дата», <ЧислоМесяцев> количество добавляемых месяцев (цифра).

Если следует отнимать месяцы, то количество месяцев необходимо указывать со знаком минус.

Функция ДОБАВИТЬКДАТЕ() — в запросах 1С

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

ДОБАВИТЬКДАТЕ(<Дата>, <Тип>, <Количество>)

Где параметры <Дата> это «наша дата», <Тип> это единица измерения временного интервала (ГОД, ПОЛУГОДИЕ, КВАРТАЛ, МЕСЯЦ, НЕДЕЛЯ, ДЕКАДА, ДЕНЬ, ЧАС, МИНУТА, СЕКУНДА), а в параметре <Количество> указывается число прибавляемых временных интервалов.

Если необходимо отнять временной интервал параметр <Количество> необходимо задавать со знаком минус.

Примечание — возможны ошибки

Если стоит задача отнять или прибавить к дате несколько месяцев. Используя данные функции, не стоит отнимать или прибавлять месяца последовательно, так как это приведёт к неверному результату. Допустим необходимо к дате 31 января 2020г. прибавить 2 месяца.

Работа с датами в 1С

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

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

Хранение дат в системе

В базе данных даты хранятся с точностью до секунд. Для реквизитов типа “дата” можно установить вариант хранения “дата и время”, “только дата”, “только время”.

Переменные типа “дата” всегда представляют дату с секундами. Отсчет дат ведется с Рождества Христова (наша эра), т.е. с 01.01.0001 00:00:00 по Григорианскому календарю. Начальная дата – это не совсем дата. Это значение в системе используется для представления “пустой даты” (аналог пустой ссылки для ссылочных типов или пустой строки “” для строкового типа).

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

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