1с текущая дата добавить день

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Как в 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С для всех

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

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

В 1С имеется возможность получить текущую дату, ту дату, которая выставлена в данный момент в операционной системе компьютера. Делается это при помощи метода ТекущаяДата.

Этот метод является функцией, не имеет параметров и с его помощью можно получить текущую дату в 1С 8.3.

Посмотрим, что возвращает этот код

Как вы могли заметить, текущая дата получена в полном формате (год, месяц, день, час, минута и секунда), т.е. текущая дата у нас возвращается с точностью до секунды.

Определить год, месяц, день, час, минуту и секунду даты в 1С

В платформе 1С имеются методы, которые возвращают числовое представление года, месяца, дня, часа, минут и секунды определенной даты. Данные методы так и называются

Год( ) – возвращает год даты

Месяц( ) – возвращает месяц даты

День( ) – возвращает день даты

Час( ) – возвращает час даты

Минута( ) – возвращает минут даты

Секунда( ) – возвращает секунду даты

Рассмотрим пример, в котором возьмем текущую дату и вернем год, месяц, час, минуту и секунду этой даты.

И результат работы этого кода.

Дата начала и дата конца периода в 1С

В платформе 1С 8.3. имеется возможность определить начало и конец периода даты, которому она принадлежит.

Делается это при помощи следующих методов:

И противоположные методы:

Данные методы являются функциями, которые имеют один параметр с типом дата и возвращают соответствующую дату.

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

И результат работы этих методов.

Неделя года, день года и день недели

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

НеделяГода( ) – возвращает порядковый номер недели в году, на которую приходится дата.

ДеньГода( ) – возвращает порядковый номер дня года указанной даты.

ДеньНедели( ) – возвращает порядковый номер дня недели указанной даты.

Сделаем пример, в котором у текущей даты определим какой день недели (понедельник, вторник и т.д.), какой день года, и какая неделя в году.

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

Добавить месяц к дате в 1С

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

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

И если такая задача возникает, то нужно использовать метод ДобавитьМесяц. При помощи этого метода, можно добавить к дате или убавить от даты нужное количество месяцев.

Этот метод является функцией, возвращает переменную с типом дата и имеет следующий синтаксис:

Этот метод добавляет или вычитает из даты в первом параметре количество месяцев из второго параметра.

Рассмотрим пример: добавим к текущей дате месяц и год, а также вычтем из текущей даты месяц и год.

Читайте также:  Урган что где когда

И результат этого кода:

Другие статьи о примитивных типах:

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Книга написана понятным и простым языком — для новичка.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Источник

Функции для работы с датой в 1С

Получение частей даты

С помощью функций Год, Месяц, День, Час, Минута, Секунда из даты можно получить какую-либо ее часть:

День года и день недели

Функция День возвращает порядковый номер в месяце. То есть для 3 июня это будет 3. Функция ДеньГода вернет порядковый номер дня в году:

Для определения дня недели есть функция ДеньНедели, которая возвращает порядковый номер дня недели:

Начало и конец периода

Чтобы привести дату к началу определенного периода можно использовать функции НачалоМинуты, НачалоЧаса, НачалоДня, НачалоНедели, НачалоМесяца, НачалоКвартала, НачалоГода:

С помощью функций КонецМинуты, КонецЧаса, КонецДня, КонецНедели, КонецМесяца, КонецКвартала, КонецГода можно получить конец определенного периода:

Арифметические операции с датами

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

Текущая дата

Функция ТекущаяДата возвращает системную дату компьютера. Может использоваться как на впс» target=»_blank»>сервере, так и на клиенте. Причем если впс» target=»_blank»>сервер и клиент это разные компьютеры и дата или время на них не совпадает, то данная функция вернет разные значения:

Часовые пояса

1С позволяет работать в одной информационной базе из разных часовых поясов. Часовой пояс может быть определен для:

Если часовой пояс не задан для сеанса, то используется часовой пояс информационной базы. Если для информационной базы часовой пояс тоже не задан, то используется часовой пояс впс» target=»_blank»>сервера.

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

Для установки часового пояса сеанса используется функция УстановитьЧасовойПоясСеанса. Чтобы получить текущее значение часового пояса сеанса предназначена функция ЧасовойПоясСеанса:

Для работы с часовым поясом информационной базы предназначены функции УстановитьЧасовойПоясИнформационнойБазы и ПолучитьЧасовойПоясИнформационнойБазы. Изменение часового пояса информационной базы возможно только в монопольном режиме. Чтобы изменение часового пояса информационной базы вступило в силу нужно перезайти в базу.

Чтобы получить часовой пояс впс» target=»_blank»>сервера нужно использовать функцию ЧасовойПояс:

На впс» target=»_blank»>сервере для получения текущей даты и времени нужно использовать функцию ТекущаяДатаСеанса. Данная функция получает дату и время с учетом часового пояса. То есть если впс» target=»_blank»>сервер физически установлен в часовом поясе «Europe/Moscow», а подключение к нему выполняется из часового пояса «Asia/Krasnoyarsk», то функция ТекущаяДата вернет дату и время впс» target=»_blank»>сервера, что не будет корректным. А если при старте сеанса в Красноярке установить часовой пояс «Asia/Krasnoyarsk», то функция ТекущаяДатаСеанса приведет время к часовому поясу сеанса пользователя.

Читайте также:  Фиброаденома молочной железы что это такое как

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

С помощью функции ПредставлениеЧасовогоПояса можно получить представление часового пояса:

Универсальная дата

С помощью функции ТекущаяУниверсальнаяДата можно получить дату и время UTC. С помощью функции ТекущаяУниверсальнаяДатаВМиллисекундах можно получить количество миллисекунд, начиная с 01.01.0001 года:

С помощью функции ТекущаяУниверсальнаяДатаВМиллисекундах можно получить замер времени в миллисекундах:

Также есть функции МестноеВремя и УниверсальноеВремя, которые позволяют получить местное время из универсального и универсальное время из местного:

Сравнение функций

Для сравнения функций работы с часовыми поясами представим, что есть информационная база, которая физически находится в Москве. Для данной базы методом УстановитьЧасовойПоясИнформационнойБазы был установлен часовой пояс «Europe/Moscow». А также есть пользователи из Красноярска, которые тоже работают с этой информационной базой. Для них при старте системы, в модуле сеанса устанавливается часовой пояс «Asia/Krasnoyarsk» с помощью метода УстановитьЧасовойПоясСеанса. Результаты представлены в таблице, вызовы всех функций были выполнены на впс» target=»_blank»>сервере:

Источник

Программная работа с датой

Тип данных Дата позволяет привязывать события учета к шкале времени. Для этого значения типа Дата могут хранить три варианта даты:

На физическом уровне (в таблицах базы данных) тип Дата хранится в числовом виде, представляя количество секунд, прошедшее с 1 января 0001 года. Верхняя граница технически ограничена значением 31.12.3999 23:59:59

Дату в коде можно представить двумя способами:

Обратите внимание, что составные части даты имеют одну и ту же последовательность: год, месяц, день, час, минута, секунда. Схематично это можно представить так:

Операции с датой

Сложение

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

Здесь важно соблюдать последовательность операндов: на первом месте должна идти дата, а затем число. Например, следующий код будет ошибочным:

Причем, с ошибкой Вы столкнетесь только на этапе выполнения программы!

Вычитание

Вычитание — операция обратная от сложения. Это равноценно тому, что мы прибавляли бы к дате отрицательное значение. Здесь также важно соблюдать последовательность:

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

Склеивание (конкатенация)

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

Функции работы с датой

Дата() функция преобразования к типу дата
ТекущаяДата() возвращает текущую дату
НачалоДня() возвращает дату и время начала дня для даты
КонецДня() возвращает дату и время конца дня для даты
ДобавитьМесяц() добавляет к дате целое число месяцев
ДеньНедели() возвращает номер дня недели для даты

Внимание! В таблице перечислены не все функции работы с датой

Источник

Онлайн портал