Версия 8.3.18, консоль Инструменты разработчика, обычные формы
В первом случае работает ДобавитьКДате, во втором - выдает ошибку.
Ошибка:
Текст запроса: Строка кода 69: {(69,45)}: Неверные параметры "ДОБАВИТЬКДАТЕ"
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, <<?>>ВТ_Факт.СрокСвойства)
Хотя и ВТ_Факт, и ВТ_План находятся в одном запросе ))
В первом случае работает ДобавитьКДате, во втором - выдает ошибку.
ВЫБРАТЬ
ВТ_Факт.Подразделение,
ВТ_Факт.ФизЛицо,
ВТ_Факт.Номенклатура,
ВТ_Факт.ДатаПередачи,
1 КАК Количество_План,
ВТ_План.СрокНоски КАК СрокРегистра,
ВТ_Факт.СрокСвойства,
ВЫБОР
КОГДА ВТ_План.СрокНоски <> NULL Тогда
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_План.СрокНоски)
КОГДА ВТ_План.СрокНоски = NULL Тогда
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_Факт.СрокСвойства)
КОНЕЦ КАК ДатаИзноса
ПоказатьОшибка:
Текст запроса: Строка кода 69: {(69,45)}: Неверные параметры "ДОБАВИТЬКДАТЕ"
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, <<?>>ВТ_Факт.СрокСвойства)
Хотя и ВТ_Факт, и ВТ_План находятся в одном запросе ))
По теме из базы знаний
- Работаем с датами в запросе
- Неоплаченные долги при распределении оплаты по правилу ФИФО одним запросом и намного быстрее, чем Вы думали
- Добавление к датам рабочих дней в запросе
- Решение разработчика в зависимости от опыта работы. Как ограничить отображаемый пользователю список и ничего не потерять
- Нестандартные блокировки при работе с OLAP-нагрузкой
Найденные решения
(2) Да, сработал такой вариант:
ВЫБРАТЬ
ВТ_Факт.Подразделение,
ВТ_Факт.ФизЛицо,
ВТ_Факт.Номенклатура,
ВТ_Факт.ДатаПередачи,
1 КАК Количество_План,
ВТ_План.СрокНоски КАК СрокРегистра,
ВТ_Факт.СрокСвойства,
ВЫБОР
КОГДА ВТ_План.СрокНоски ЕСТЬ NULL Тогда
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВЫРАЗИТЬ(ВТ_Факт.СрокСвойства КАК ЧИСЛО))
ИНАЧЕ
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_План.СрокНоски)
КОНЕЦ КАК ДатаИзноса
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) какой тип данных в ВТ_Факт.СрокСвойства?
Ну и правильно использовать условия для ВЫБОР будет так:
Ну и правильно использовать условия для ВЫБОР будет так:
ВЫБОР
КОГДА НЕ ВТ_План.СрокНоски ЕСТЬ NULL Тогда
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_План.СрокНоски)
КОГДА НЕ ВТ_План.СрокСвойства ЕСТЬ NULL Тогда
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_Факт.СрокСвойства)
ИНАЧЕ ВТ_Факт.ДатаПередачи
КОНЕЦ КАК ДатаИзноса
(2)
Переписал так:
Все равно:
Текст запроса: Строка кода 67: {(67,45)}: Неверные параметры "ДОБАВИТЬКДАТЕ"
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, <<?>>ВТ_Факт.СрокСвойства)
Переписал так:
ВЫБОР
КОГДА ЕСТЬNULL(ВТ_План.СрокНоски,0) Тогда
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_Факт.СрокСвойства)
КОГДА НЕ ЕСТЬNULL(ВТ_План.СрокНоски,0) Тогда
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_План.СрокНоски)
КОНЕЦ КАК ДатаИзноса
Все равно:
Текст запроса: Строка кода 67: {(67,45)}: Неверные параметры "ДОБАВИТЬКДАТЕ"
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, <<?>>ВТ_Факт.СрокСвойства)
(2) Да, сработал такой вариант:
ВЫБРАТЬ
ВТ_Факт.Подразделение,
ВТ_Факт.ФизЛицо,
ВТ_Факт.Номенклатура,
ВТ_Факт.ДатаПередачи,
1 КАК Количество_План,
ВТ_План.СрокНоски КАК СрокРегистра,
ВТ_Факт.СрокСвойства,
ВЫБОР
КОГДА ВТ_План.СрокНоски ЕСТЬ NULL Тогда
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВЫРАЗИТЬ(ВТ_Факт.СрокСвойства КАК ЧИСЛО))
ИНАЧЕ
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_План.СрокНоски)
КОНЕЦ КАК ДатаИзноса
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот