ДобавитьКДате в запросе 1С 8.3 и 8.2
ДобавитьКДате() — встроенная функция языка запросов 1С 8.3. Функция позволяет добавить или вычесть из даты нужное количество времени в произвольных единицах.
Функция позволяет получить результат сложения произвольной даты с нужным значением времени. Достаточно часто применяется для получения расчетного времени. Например, времени поставки или оплаты товара.
Синтаксис функции:
ДОБАВИТЬКДАТЕ(<Исходная Дата>, <Единица Измерения>, <Количество>)
- Исходная дата — дата, к которой необходимо прибавить или вычесть требуемое количество временных единиц.
- Единица измерения — параметр, который определяет единицу прибавляемого времени. Возможные значения: Год, Квартал, Месяц, День, Час, Минута, Секунда.
- Количество — количество временных единиц, которые необходимо прибавить к исходному значению.
Пример использования функции. Необходимо получить две даты — 1 день до открытия банковского счета, 5 дней после. Для добавления количества дней используем в параметре «Количество» положительное число, для вычитания — отрицательное. «Единица измерения» времени в нашем случае — день:
ВЫБРАТЬ
БанковскиеСчета.Ссылка,
ДОБАВИТЬКДАТЕ(БанковскиеСчета.ДатаОткрытия, ДЕНЬ, 5) КАК ДатаОткрытияПлюс5,
ДОБАВИТЬКДАТЕ(БанковскиеСчета.ДатаОткрытия, ДЕНЬ, -5) КАК ДатаОткрытияМинус5
ИЗ
Справочник.БанковскиеСчета КАК БанковскиеСчета
Пример использования добавления к дате в запросе из типовой конфигурации:
«ВЫБРАТЬ
| НДФЛДоходыПредыдущегоМестаРаботы.МесяцНалоговогоПериода,
| НДФЛДоходыПредыдущегоМестаРаботы.Размер — ЕСТЬNULL(НДФЛДоходыПредыдущегоМесяца.Размер, 0) КАК Размер
|ИЗ
| ВТДоходыНарастающимИтогом КАК НДФЛДоходыПредыдущегоМестаРаботы
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДоходыНарастающимИтогом КАК НДФЛДоходыПредыдущегоМесяца
| ПО (НДФЛДоходыПредыдущегоМестаРаботы.МесяцНалоговогоПериода = ДОБАВИТЬКДАТЕ(НДФЛДоходыПредыдущегоМесяца.МесяцНалоговогоПериода, МЕСЯЦ, 1))«;
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
вайнот:
мне кажется ошибка в коде. 1 день открытия это до открытия это
ДОБАВИТЬКДАТЕ(БанковскиеСчета.ДатаОткрытия, ДЕНЬ, -1)
Влад:
Не совсем верно:
«Единица измерения — параметр, который определяет единицу прибавляемого времени. Возможные значения: Год, Квартал, Месяц, День, Час, Минута, Секунда.»
Согласно СП:
ДОБАВИТЬКДАТЕ(, СЕКУНДА | МИНУТА | ЧАС | ДЕНЬ | НЕДЕЛЯ | МЕСЯЦ | КВАРТАЛ | ГОД | ДЕКАДА | ПОЛУГОДИЕ, )