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

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Функции работы с датами в 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:
Еще можно попросить пользователя ввести нужную дату. Для этого необходимо воспользоваться функцией ВвестиДату(Дата, Подсказка, ЧастьДаты). Первый параметр задает переменную, которой будет присвоено введенное значение. Второй параметр — это заголовок диалогового окна, третий параметр определяет, какую часть типа дата необходимо ввести. Он может принимать следующие значения:
- ЧастиДаты.Дата — будут введены только год, месяц и день;
- ЧастиДаты.Время — будут введены только часы, минуты, секунды. В этом случае дата будет иметь вид 0001.01.01 чч:мм:сс.
- ЧастиДаты.ДатаВремя — будут введены все составляющие даты и времени.
Способ 5 (получить текущую дату и время)
Проверка пустой даты
Часто бывает необходимо проверить, введена дата или нет. Пустая дата — это первое января 1 года, 0 часов, 0 минут, 0 секунд. Проверка может выглядеть следующим образом:
Использование даты в реквизитах
В реквизитах справочников, документов и т.д. можно использовать:
- дату, тогда время всегда равно 00:00:00;
- только время, тогда дата равна 01.01.0001;
- дату и время.
Получение отдельных составляющих даты
Получить номер дня в месяце:
Получить номер дня в году:
Получить номер дня в неделе:
Получить номер недели в году:
Операции по преобразованию дат
Дата представляет собой количество секунд, прошедших с 1 января 0001 года 00:00:00. Поэтому, чтобы добавить к дате дни, часы, минуты и т.д., нужно прибавить соответствующее количество секунд.
Прибавить или отнять от даты один или несколько месяцев:
Получить конец или начало периода:
Результат = НачалоКвартала ( Дата ) ; // Возвращает дату начала квартала, время 00:00:00
Результат = КонецКвартала ( Дата ) ; //Возвращает дату конца квартала, время 23:59:59
Результат = НачалоМесяца ( Дата ) ; // Возвращает дату начала месяца, время 00:00:00
Результат = КонецМесяца ( Дата ) ; //Возвращает дату конца месяца, время 23:59:59
Результат = НачалоНедели ( Дата ) ; // Возвращает дату начала недели, время 00:00:00
Результат = КонецНедели ( Дата ) ; //Возвращает дату конца недели, время 23:59:59
Результат = НачалоДня ( Дата ) ; // Дата остается прежней, время 00:00:00
Результат = КонецДня ( Дата ) ; // Дата остается прежней, время 23:59:59
Результат = НачалоЧаса ( Дата ) ; //Дата и час остаются прежними, минуты и секунды 00:00
Результат = КонецЧаса ( Дата ) ; //Дата и час остаются прежними, минуты и секунды 59:59
Результат = НачалоМинуты ( Дата ) ; //Дата, час и минута остаются прежними, секунды 00
Результат = КонецМинуты ( Дата ) ; //Дата, час и минута остаются прежними, секунды 59
Работа с датами в 1С
Дата в 1С один из примитивных типов данных в системе. Дата всегда имеет формат год, месяц, день, час, минута, секунда. Таким образом, переменная типа дата содержит не только дату, но и время.
Очевидно, что очень часто программистам приходится работать с датой и временем и естественно, по мере работы возникают вопросы, ответы на которые приходится где то искать. Я накидал для себя небольшую шпаргалку по работе с датами.
Хранение дат в системе
В базе данных даты хранятся с точностью до секунд. Для реквизитов типа “дата” можно установить вариант хранения “дата и время”, “только дата”, “только время”.
Переменные типа “дата” всегда представляют дату с секундами. Отсчет дат ведется с Рождества Христова (наша эра), т.е. с 01.01.0001 00:00:00 по Григорианскому календарю. Начальная дата – это не совсем дата. Это значение в системе используется для представления “пустой даты” (аналог пустой ссылки для ссылочных типов или пустой строки “” для строкового типа).