1С выделить время из даты

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Дата

Значения данного типа содержит дату григорианского календаря (с 01 января 0001 года) и время с точностью до 0,1 миллисекунды.

Литералы:

Строка цифр, заключенная в одинарные кавычки вида: ‘ГГГГММДДччммсс’, где:

  • ГГГГ — четыре цифры года (включая тысячелетие и век);
  • ММ — две цифры месяца;
  • ДД — две цифры даты;
  • чч — две цифры часа (в 24-х часовом формате);
  • мм — две цифры минут;
  • сс — две цифры секунд;

Во встроенном языке в литерале типа Дата обязательно должно задаваться значение года, месяца и дня. Для задания даты соответствующей началу отсчета достаточно указать ‘00010101’. Допускается при указании литералов типа Дата опускать последние символы (секунды, минуты, часы и т.д.). Это означает, что данные параметры будут равны нулю (для времени) или единице (для даты). В литерале даты допускается использование различных разделителей.

Работа с типом Дата в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Читайте также:  Роутер wifi tp link tl mr3020

Нажмите одну из кнопок, чтобы поделиться:

В программе 1с 8-ой версии Дата это объект, который состоит из самой календарной даты и времени.

При программировании можно использовать следующие конструкции для оперирования временем:

Чтобы получить объект «Дата» существует несколько способов. Например, чтобы установить программно дату «30.12.2010 23:59:59»:

В запросах для получения даты используется метод «ДатаВремя»:

Пустая дата это нулевая секунда нулевого года, а т.к. отсчет идет от Рождества Христова, то и получается следующая запись:

В запросе это будет выглядеть проще:

Чтобы вычислить разницу дат нужно из большей даты вычесть меньшую, но при этом программа вернет разницу в секундах.

Поэтому надо исходить из того какой тип результата нас интересует. Например, если нас интересует только разница в днях, то можно написать так:

В случае если нужна полная разница(Лет, месяцев, дней) между датами то есть следующие варианты:
1. Алгоритм который первый приходит в голову, НЕ точный :

Ещё раз подчеркну, что предыдущий алгоритм приблизительный т.к. не учитывает точное количество дней в месяце.

2. Более точен следующий алгоритм описанный в типовой конфигурации, например, в ЗУП:

Для запросов же можно использовать способ предложенный здесь: http://kb.mista.ru/article.php? >
Автор взял за основу предыдущую процедуру и перевел её на язык запросов так для вычисления года нужно записать следующее(я немного изменил запрос для наглядности):

Время

Для получения значений времени используются следующие методы:

В запросах для получения времени используются функции с такими же названиями:

Иногда бывает необходимо из даты вида ‘20150120134450’ выделить просто время, т.е. сделать дату следующего вида ‘00010101134450’. Как это осуществить в запросе?
Очень просто!

Для этого вам необходимо с помощью функции РазностьДата узнать количество секунд между началом дня текущей даты и самой датой. Следующим шагом, Вы с помощью функции ДобавитьКДате, добавляете к пустой дате найденное количество секунд, и получаете дату нужного вида.

Читайте также:  Как зайти на локальный сайт

Например, как в этом запросе:

ВЫБРАТЬ
ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА,РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&ТекущаяДата,ДЕНЬ),&ТекущаяДата,СЕКУНДА)) КАК ТекущееВремя

Результат его выполнения можно посмотреть на картинке ниже

Если Вы всё еще «плаваете» в конструкциях языка запросов, и у Вас вызывают трудности даже самые простые запросы, то рекомендую вам мой курс «Запросы в 1С от новичка до профи». Где эти и многие другие вопросы рассматриваются более подробно.

В чем особенность этого курса:
• Курс рассчитан на тех, кто не знаком с языком запросов в 1С;
• Учебный материал грамотно скомпонован и прост в освоении;
• Несколько десятков уроков;
• Полезные практические примеры;
• Все уроки изложены понятным и простым языком

Для моих читателей, купон на скидку 25%: hrW0rl9Nnx

Я стараюсь как можно чаще выпускать различные интересные бесплатные статьи и видеоуроки. Поэтому буду очень рад, если Вы поддержите мой проект перечислив любую сумму:

Можете перечислить любую сумму напрямую:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655