1С из даты вычесть год

1С из даты вычесть год

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

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

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

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

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

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

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

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

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

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

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

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

Время

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

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

Программирование системы 18.04.2018 07:28 8572

Для работы с датами в 1С Предприятии существуют специальные методы встроенного языка. При работе с датами может потребоваться прибавить к дате или вычесть из даты секунду, минуту, час, день, год. Это можно сделать как в запросе, так и в программном коде, средствами встроенного языка.

Читайте также:  3Д ручка отзывы какая лучше рейтинг

В программном коде

Для решения данной задачи, можно прибавить к дате или вычесть из даты требуемое количество секунд.

В запросе

Для решения данной задачи, в языке запросов есть специальная функция ДОБАВИТЬКДАТЕ( , , ). Параметр "Тип" указывает вид увеличения и может принимать значения: СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ.

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

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

Дата

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

Литералы:

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

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

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

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

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

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

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

Читайте также:  Dragon s dogma online обзор

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

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

Ссылка на основную публикацию
Adblock detector