Разность дат в запросе 1С 8.3
РазностьДат() — конструкция встроенного языка запросов 1С 8.3, с помощью которой непосредственно в запросе можно получить разницу между различными датами.
Функция рассчитывает календарную разницу между двумя датами, и ее нельзя использовать в местах, где необходимо рассчитать разницу банковских или рабочих дней. Временные единицы задаются на усмотрение разработчика — от секунды до года. РазностьДат часто используется в отчетах, например, для динамического расчета временного периода в параметрах запроса.
РАЗНОСТЬДАТ(>Дата1>, <Дата2>, <ЕдиницаВремени>)
Дата1 и Дата2 — даты, из которых необходимо получить разность.
ЕдиницаВремени — показатель, для которого необходимо получить разность. Допустимые значения: СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, МЕСЯЦ, КВАРТАЛ, ГОД.
Примеры:
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2005, 09, 12, 10, 15, 34), ДАТАВРЕМЯ(2005, 09, 14, 9, 18, 06), ДЕНЬ) — вернет «2»
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 10, 12), (ДАТАВРЕМЯ(2002, 11, 03), МЕСЯЦ) — вернет «1»
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 10, 12), (ДАТАВРЕМЯ(2004, 11, 03), ГОД) — вернет «2»
Пример использования в рабочей конфигурации 1С для получения разности дат в днях:
ВЫБРАТЬ
ДанныеДляРасчета.Организация КАК Организация,
ДанныеДляРасчета.Склад КАК Склад,
СУММА(ДанныеДляРасчета.СтоимостьКонечныйОстаток) КАК СтоимостьОстатковЗапасов,
ДанныеДляРасчета.ДатаРасчета,
СУММА(ДанныеДляРасчета.СтоимостьРасход) КАК СебестоимостьРеализованныхТоваров,
РАЗНОСТЬДАТ(&НачалоПериода, КОНЕЦПЕРИОДА(&ДатаРасчета, ДЕНЬ), ДЕНЬ) КАК ДнейВПериодеПоЗапасам
ИЗ
(ВЫБРАТЬ
ОборотныеСредства.Организация КАК Организация,
ОборотныеСредства.Склад КАК Склад,
СУММА(ОборотныеСредства.СуммаКонечныйОстаток) КАК СтоимостьКонечныйОстаток,
&ДатаРасчета КАК ДатаРасчета,
0 КАК СтоимостьРасход
ИЗ
ОборотныеСредства КАК ОборотныеСредства
Читайте и другие статьи по запросам 1С
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
Петр Петров:
Здравствуйте!
>> и ее нельзя использовать в местах, где необходимо рассчитать разницу банковских или рабочих дней.
А что предлогается делать в таких случаях, когда надо считать именно банковские дни или рабочие?
Аноним:
Использовать регистр сведений Регламентированный календарь
Аноним:
А если первая дата будет больше второй, то всё равно вернет 2, а не -2?
Аноним:
Жаль что никто не ответил.
Вернёт -2! Порядок дат важен.