Перейти к содержимому

Как к дате добавить время 1с

  • автор:

Как к дате добавить время 1с

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Владимир Милькин

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

Нажмите одну из кнопок, чтобы поделиться:

Прибавить к дате или вычесть из даты секунду, минуту, час, день, год

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

В программном коде

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

//Прибавить секунду
Дата = Дата + 1;

//Вычесть минуту
Дата = Дата - 60;

//Вычесть час
Дата = Дата - 60 * 60;

//Вычесть день
Дата = Дата - 60 * 60 * 24;

//Вычесть определенное количество дней
Дата = Дата - 60 * 60 * 24 * Количество;

//.

//.

//.

В запросе

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

//Прибавить секунду
"ДОБАВИТЬКДАТЕ(Дата, СЕКУНДА, 1)"

//Вычесть минуту
"ДОБАВИТЬКДАТЕ(Дата, МИНУТА, -1)"

//Вычесть час
"ДОБАВИТЬКДАТЕ(Дата, ЧАС, -1)"

//Вычесть день
"ДОБАВИТЬКДАТЕ(Дата, ДЕНЬ, -1)"

//.

//.

//.

Как программно в 1с прибавить к дате день

В 1С 8 нет специальной встроенной функции для программного добавления дней к переменной типа Дата. Но есть несколько способов, которые помогут в 1с прибавить к дате день.

Программно в 1с прибавить к дате день. Способ 1

К дате можно прибавлять (и убавлять) секунды, при помощи оператора +.

В одном дне: 24*60*60 = 86400 секунд. 

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

Пример. Пусть в переменной МояДата содержится искомая дата.

ДатаПлюсДень = МояДата + 86400; 

В 1с добавить день к дате. Способ 2

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

НоваяДата = КонецДня(МояДата) + 1; 

Таким образом мы прибавили к концу заданного дня одну секунду и получили начало следующего дня.

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

Способ 3

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

Запрос = Новый Запрос; Запрос.УстановитьПараметр("Дата", ТекущаяДата()); Запрос.Текст = "ВЫБРАТЬ | ДОБАВИТЬКДАТЕ(&Дата, ДЕНЬ, 1) КАК НоваяДата"; Результат = Запрос.Выполнить().Выбрать(); Результат.Следующий(); НоваяДата = Результат.НоваяДата; 

Если вы не умеете писать запросы на встроенном языке 1с, то советую вам прочитать статью Язык запросов 1с — оператор Выбрать, в ней подробно описывается из каких блоков состоит запрос в 1С 8 и как его правильно использовать. После этой статьи прочтите следующую ее часть Запросы 1с 8 — Программная работа. Изучение языка запросов поможет вам стать более грамотным программистом. На этом все, теперь вы знаете три способа, как программно в 1с прибавить к дате день.

Как программно в 1с прибавить к дате день

В 1С 8 нет специальной встроенной функции для программного добавления дней к переменной типа Дата. Но есть несколько способов, которые помогут в 1с прибавить к дате день.

Программно в 1с прибавить к дате день. Способ 1

К дате можно прибавлять (и убавлять) секунды, при помощи оператора +.

В одном дне: 24*60*60 = 86400 секунд. 

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

Пример. Пусть в переменной МояДата содержится искомая дата.

ДатаПлюсДень = МояДата + 86400; 

В 1с добавить день к дате. Способ 2

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

НоваяДата = КонецДня(МояДата) + 1; 

Таким образом мы прибавили к концу заданного дня одну секунду и получили начало следующего дня.

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

Способ 3

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

Запрос = Новый Запрос; Запрос.УстановитьПараметр("Дата", ТекущаяДата()); Запрос.Текст = "ВЫБРАТЬ | ДОБАВИТЬКДАТЕ(&Дата, ДЕНЬ, 1) КАК НоваяДата"; Результат = Запрос.Выполнить().Выбрать(); Результат.Следующий(); НоваяДата = Результат.НоваяДата; 

Если вы не умеете писать запросы на встроенном языке 1с, то советую вам прочитать статью Язык запросов 1с — оператор Выбрать, в ней подробно описывается из каких блоков состоит запрос в 1С 8 и как его правильно использовать. После этой статьи прочтите следующую ее часть Запросы 1с 8 — Программная работа. Изучение языка запросов поможет вам стать более грамотным программистом. На этом все, теперь вы знаете три способа, как программно в 1с прибавить к дате день.

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

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