Функции работы с датами в 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 секунд. Проверка может выглядеть следующим образом:

Если ПроверяемаяДата=Дата(1,1,1) Тогда
//действие при пустой дате
КонецЕсли;

Использование даты в реквизитах

В реквизитах справочников, документов и т.д. можно использовать:

  • дату, тогда время всегда равно 00:00:00;
  • только время, тогда дата равна 01.01.0001;
  • дату и время.

Получение отдельных составляющих даты

Получить год:

Результат=Год(Дата);

Получить месяц:

Результат=Месяц(Дата);

Получить номер дня в месяце:

Результат=День(Дата);

Получить номер дня в году:

Результат=ДеньГода(Дата);

Получить номер дня в неделе:

Результат=ДеньНедели(Дата);

Получить номер недели в году:

Результат=НеделяГода(Дата);

Получить час:

Результат=Час(Дата);

Получить минуту:

Результат=Минута(Дата);

Получить секунду:

Результат=Секунда(Дата);

Операции по преобразованию дат

Дата представляет собой количество секунд, прошедших с 1 января 0001 года 00:00:00. Поэтому, чтобы добавить к дате дни, часы, минуты и т.д., нужно прибавить соответствующее количество секунд.

Результат=Дата + 1; //Прибавили секунду
Результат=Дата + 2*60; //Прибавили 2 минуты
Результат=Дата + 3*60*60*24; //Прибавили 3 дня

Прибавить или отнять от даты один или несколько месяцев:

Результат=ДобавитьМесяц(Дата, 2); //Добавляет к дате 2 месяца
Результат=ДобавитьМесяц(Дата, -2) //Отнимает от даты 2 месяца

Получить конец или начало периода:

Результат=НачалоКвартала(Дата); // Возвращает дату начала квартала, время 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

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

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