Разность дат в пользовательских полях

1. djek2305 27.06.22 13:40 Сейчас в теме
Добрый день!
Стандартный отчет Движение товаров по складам.
Подскажите, как в пользовательском поле вычесть две даты?

У серии товара есть доп. свойство ДатаОкончания
Нужно что бы в отчете показывалось на сколько дней просрочена дата относительно текущей
На сколько я понимаю, нужно составить формулу ДатаОкончания - ТекущаяДата, результат количество дней.
Если просто вычитать одно поле из другого пустой результат.
По теме из базы знаний
Найденные решения
4. Zevzm 27.06.22 14:14 Сейчас в теме
(3) Кавычки не забыли?
Пример:
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 10, 12, 10, 15, 34),
ДАТАВРЕМЯ(2002, 10, 14, 9, 18, 06), "ДЕНЬ")
djek2305; +1 Ответить
7. spacecraft 27.06.22 14:30 Сейчас в теме
(3) В пользовательских полях используется Язык выражений системы компоновки данных
Из справки:

РазностьДат (DateDiff)
Функция предназначена для получения разницы между двумя датами.
Синтаксис:
РазностьДат(Выражение1 , Выражение2 , ТипРазности)
Параметры:
Выражение1 - тип Дата. Вычитаемая дата;
Выражение2 - тип Дата. Исходная дата;
ТипРазности - тип Строка. Содержит одно из значений:
Секунда;
Минута;
Час;
День;
Месяц;
Квартал;
Год.
Пример:
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 10, 12, 10, 15, 34),
ДАТАВРЕМЯ(2002, 10, 14, 9, 18, 06), "ДЕНЬ")
Результат:
2
Показать

Следовательно выражение должно быть таким:
:
РАЗНОСТЬДАТ([Серия.Дата окончания ], [Параметры.Текущая дата], "ДЕНЬ")
djek2305; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ignorant 27.06.22 13:45 Сейчас в теме
РАЗНОСТЬДАТ(>Дата1>, <Дата2>, <ЕдиницаВремени>)
3. djek2305 27.06.22 14:03 Сейчас в теме
(2) Такое уже пробовал
РАЗНОСТЬДАТ([Серия.Дата окончания ], [Параметры.Текущая дата], ДЕНЬ)

Получаю ошибку
Поле не найдено "ДЕНЬ"

Если
РАЗНОСТЬДАТ(Серия.Дата окончания, Параметры.Текущая дата, ДЕНЬ)

Неверные параметры "РазностьДат"

Если
РАЗНОСТЬДАТ(Серия.ДатаОкончанияДействияСертификата, Параметры.ТекущаяДата, ДЕНЬ)

Поле не найдено "Серия.ДатаОкончания"

Возможно, я не правильно обращаюсь к доп. свойствам?
4. Zevzm 27.06.22 14:14 Сейчас в теме
(3) Кавычки не забыли?
Пример:
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 10, 12, 10, 15, 34),
ДАТАВРЕМЯ(2002, 10, 14, 9, 18, 06), "ДЕНЬ")
djek2305; +1 Ответить
8. djek2305 27.06.22 14:36 Сейчас в теме
(4) (7) Спасибо, кавычки я забыл.
5. lmnlmn 69 27.06.22 14:15 Сейчас в теме
(3) Неясно где вы пишете выражение. Если в запросе, то надо ДЕНЬ без кавычек. А ежели в выражениях СКД, то "ДЕНЬ" в кавычках ибо строка.
6. djek2305 27.06.22 14:20 Сейчас в теме
(5) В пользовательских полях отчета.
См. скрин во вложении.
Прикрепленные файлы:
7. spacecraft 27.06.22 14:30 Сейчас в теме
(3) В пользовательских полях используется Язык выражений системы компоновки данных
Из справки:

РазностьДат (DateDiff)
Функция предназначена для получения разницы между двумя датами.
Синтаксис:
РазностьДат(Выражение1 , Выражение2 , ТипРазности)
Параметры:
Выражение1 - тип Дата. Вычитаемая дата;
Выражение2 - тип Дата. Исходная дата;
ТипРазности - тип Строка. Содержит одно из значений:
Секунда;
Минута;
Час;
День;
Месяц;
Квартал;
Год.
Пример:
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 10, 12, 10, 15, 34),
ДАТАВРЕМЯ(2002, 10, 14, 9, 18, 06), "ДЕНЬ")
Результат:
2
Показать

Следовательно выражение должно быть таким:
:
РАЗНОСТЬДАТ([Серия.Дата окончания ], [Параметры.Текущая дата], "ДЕНЬ")
djek2305; +1 Ответить
9. N0t_F0und 10 27.06.22 14:42 Сейчас в теме
10. djek2305 27.06.22 14:43 Сейчас в теме
(9) Не обращайте внимания, я сократил.
Решение найдено.
Ответы 4, 7.

РАЗНОСТЬДАТ([Серия.Дата окончания ], [Параметры.Текущая дата], "ДЕНЬ")
Я кавычки забыл поставить.
Тему можно закрывать.
11. insurgut 207 25.04.23 13:04 Сейчас в теме
На всякий случай... добавил поле как тут прописано - а в отчете какая-то ерунда выводилась, остаток дней был гораздо больше срока годности.
Помогло это:
МАКСИМУМ(РАЗНОСТЬДАТ(ТЕКУЩАЯДАТА(), [Серия.Дата окончания ], "ДЕНЬ"))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот