РЕКЛАМА

На главную страницу

РЕКЛАМА




Чтобы разместить ссылку на свой сайт с этой страницы воспользуйтесь системой платных ссылок 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с.
Манипуляции с датой в запросах смотри здесь.



Copyright (c) by iKai, 2016