Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
Дата
Значения данного типа содержит дату григорианского календаря (с 01 января 0001 года) и время с точностью до 0,1 миллисекунды.
Литералы:
Строка цифр, заключенная в одинарные кавычки вида: ‘ГГГГММДДччммсс’, где:
- ГГГГ — четыре цифры года (включая тысячелетие и век);
- ММ — две цифры месяца;
- ДД — две цифры даты;
- чч — две цифры часа (в 24-х часовом формате);
- мм — две цифры минут;
- сс — две цифры секунд;
Во встроенном языке в литерале типа Дата обязательно должно задаваться значение года, месяца и дня. Для задания даты соответствующей началу отсчета достаточно указать ‘00010101’. Допускается при указании литералов типа Дата опускать последние символы (секунды, минуты, часы и т.д.). Это означает, что данные параметры будут равны нулю (для времени) или единице (для даты). В литерале даты допускается использование различных разделителей.
Работа с типом Дата в языке 1С 8.3, 8.2 (в примерах)
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю). |
Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Нажмите одну из кнопок, чтобы поделиться:
Рассмотрим случай, когда в запросе нужно получить таблицу дат, состоящую из дат начала или окончания периодов в заданном интервале дат.
На примере типовой функции
ЗапросВТПериоды() общего модуля ЗарплатаКадрыОбщиеНаборыДанных конфигурации ЗУП 3.1.
Подробнее на примере:
Часть 1. Использование типовой функции.
Нужно получить таблицу с датами начала месяцев в интервале с 01.01.16 по 01.09.16 (т.е. таблицу с датами 01.01.16, 01.02.16, 01.03.16, 01.04.16, 01.05.16, 01.06.16, 01.07.16, 01.08.16, 01.09.16):
НачалоИнтервала = Дата(2016, 1, 1);
ОкончаниеИнтервала = Дата(2016, 9, 1);
Периодичность = «МЕСЯЦ»; //может принимать значения «ГОД», «КВАРТАЛ», «МЕСЯЦ», «ДЕНЬ» – определяет дату начала какого периода хотим получить
ИмяПоляПериод = «Месяц»; //имя поля колонки таблицы, в которой будут полученные даты
ИмяВТ = «ВТ_Месяцы»; //имя временной таблицы, в которой будут храниться полученные даты
ИспользоватьКонецПериода = Ложь; //Ложь – т.к. хотим получить даты начала каждого месяца в интервале
Запрос = ЗапросВТПериоды(НачалоИнтервала, ОкончаниеИнтервала, Периодичность, ИмяПоляПериод, ИмяВТ, ИспользоватьКонецПериода);
Часть 2. Запрос для получения дат.
Дата — один из примитивных типов данных в системе 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;
- дату и время.
Получение отдельных составляющих даты