Чтобы разместить ссылку на свой сайт с этой страницы воспользуйтесь системой платных ссылок
SAPE.
|
На главную 1с форева.ру
На страницу "Программисту \ Разработка (программирование) приложений на платформе 1с".
Операции с датой в 1c.
Платформа: 8.2, 8.3
Формы: Обычные, Управляемые
Конфигурация: любая
Релиз: любой
Страница актуализирована: 30.01.2017
Не претендуя на полноту обзора манипуляций с типом Дата в 1с приведу кое-что, что в свое время вызвало затруднения, либо как памятка, либо просто интересные и удобные приемы.
Получить нужную дату.
Присвоение переменной различных значений дата.
_дата = ДАТА("00010101")
;        // Пустая дата _дата = ДАТА("20170722")
;        // Присвоить дату строкой _дата = ДАТА("20170131235959");    // Присвоить дату и время строкой _дата = ДАТА(2017, 01, 31);        // Присвоить дату по составляющим. _дата = ДАТА(2017, 01, 31, 12, 0, 0); // Присвоить дату и время по составляющим.
Форматы отображения даты.
Вывести дату в разных форматах.
Сообщить(Формат(_Дата, "ДЛФ=Д"))
;         // 01.01.2015 Сообщить(Формат(_Дата, "ДЛФ=ДД"));         // 1 января 2015 г. Сообщить(ФОРМАТ(Дата, "ДФ='MMMM гггг ""г.""'")
);    // Январь 2015 г.
Конструктор форматной строки рулит. Там можно подобрать и настроить нужный формат.
Текущая дата.
Самая часто используемая функция - текущая дата и время.
_дата = ТекущаяДата();
Прибавить к дате, вычесть из даты.
Самое простое прибавлять и вычитать посекундно. Но для учета календарности нужно другими способами.
_дата = ТекущаяДата()
+ 1;            // Прибавить секунду _дата = ТекущаДата()
- 60*60*24;    // Вычесть сутки _дата = ДобавитьМесяц(ТекущаяДата()
, 1));     // прибавить месяц _дата = ДобавитьМесяц(ТекущаяДата()
, -1));    // вычесть месяц
Разные функции работы с датой.
По названию понятно какая для чего.
ДеньГода(_Дата); ДеньНедели(_Дата)
; НеделяГода(Дата);
НачалоГода(Дата);
КонецГода(Дата);
НачалоКвартала(Дата);
КонецКвартала(Дата);
НачалоМесяца(Дата);
КонецМесяца(Дата);
НачалоНедели(Дата);
КонецНедели(Дата);
НачалоДня(Дата);
КонецДня(Дата);
НачалоЧаса(Дата);
КонецЧаса(Дата);
НачалоМинуты(Дата);
КонецМинуты(Дата);
Несколько приемов работы с датой.
Начало и конец предудущего квартала от текущей даты.
_НачалоПредыдущегоКвартала = НачалоКвартала( НачалоКвартала(ТекущаяДата()) -1 );
_КонецПредыдущегоквартала = НачалоКвартала(ТекущаяДата()) -1;По аналогии можно получить предыдущий год, месяц, день.
Преобразоват строку вида "ДД.ММ.ГГГГ" в дату.
_стр = "21.10.2017";
_дата = Дата(Число(Сред(_стр,7,4)), Число(Сред(_стр,4,2)), Число(Лев(_стр,2)));
Дата в запросах 1с.
Манипуляции с датой в запросах смотри здесь.
|
|
|