Не работает ДобавитьКДате

1. tiger12 1 26.11.21 00:39 Сейчас в теме
Версия 8.3.18, консоль Инструменты разработчика, обычные формы

В первом случае работает ДобавитьКДате, во втором - выдает ошибку.

ВЫБРАТЬ
	ВТ_Факт.Подразделение,
	ВТ_Факт.ФизЛицо,
	ВТ_Факт.Номенклатура,
	ВТ_Факт.ДатаПередачи,
	1 КАК Количество_План,
	ВТ_План.СрокНоски КАК СрокРегистра,
	ВТ_Факт.СрокСвойства,
	ВЫБОР 
	  КОГДА ВТ_План.СрокНоски <> NULL Тогда	
	ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_План.СрокНоски) 
	  КОГДА ВТ_План.СрокНоски = NULL Тогда	
	ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_Факт.СрокСвойства)
	  КОНЕЦ	КАК ДатаИзноса
Показать


Ошибка:
Текст запроса: Строка кода 69: {(69,45)}: Неверные параметры "ДОБАВИТЬКДАТЕ"
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, <<?>>ВТ_Факт.СрокСвойства)

Хотя и ВТ_Факт, и ВТ_План находятся в одном запросе ))
По теме из базы знаний
Найденные решения
9. tiger12 1 26.11.21 10:10 Сейчас в теме
(2) Да, сработал такой вариант:

ВЫБРАТЬ
	ВТ_Факт.Подразделение,
	ВТ_Факт.ФизЛицо,
	ВТ_Факт.Номенклатура,
	ВТ_Факт.ДатаПередачи,
	1 КАК Количество_План,
	ВТ_План.СрокНоски КАК СрокРегистра,
	ВТ_Факт.СрокСвойства, 	
	ВЫБОР 
	  КОГДА ВТ_План.СрокНоски ЕСТЬ NULL  Тогда	
	ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВЫРАЗИТЬ(ВТ_Факт.СрокСвойства КАК ЧИСЛО))
	  ИНАЧЕ	
	ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_План.СрокНоски) 	  
	  КОНЕЦ	КАК ДатаИзноса
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. spacecraft 26.11.21 02:12 Сейчас в теме
(1) какой тип данных в ВТ_Факт.СрокСвойства?
Ну и правильно использовать условия для ВЫБОР будет так:
ВЫБОР 
      КОГДА НЕ ВТ_План.СрокНоски ЕСТЬ NULL Тогда    
    ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_План.СрокНоски) 
      КОГДА НЕ ВТ_План.СрокСвойства ЕСТЬ NULL Тогда    
    ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_Факт.СрокСвойства)
   ИНАЧЕ ВТ_Факт.ДатаПередачи
      КОНЕЦ    КАК ДатаИзноса
8. glek 119 26.11.21 07:23 Сейчас в теме
(1) Не видно, что такое у вас "СрокСвойства". Попробуйте явно выразить его как число.
2. Leon75 26.11.21 01:20 Сейчас в теме
Некорректно писать = Null или <> Null
Используйте ЕСТЬ NULL или НЕ ЕСТЬ NULL
4. tiger12 1 26.11.21 01:36 Сейчас в теме
(2)
Переписал так:

ВЫБОР 
	  КОГДА ЕСТЬNULL(ВТ_План.СрокНоски,0)  Тогда	
	ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_Факт.СрокСвойства)
	  КОГДА НЕ ЕСТЬNULL(ВТ_План.СрокНоски,0)   Тогда	
	ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_План.СрокНоски) 	  
	  КОНЕЦ	КАК ДатаИзноса


Все равно:

Текст запроса: Строка кода 67: {(67,45)}: Неверные параметры "ДОБАВИТЬКДАТЕ"
ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, <<?>>ВТ_Факт.СрокСвойства)
9. tiger12 1 26.11.21 10:10 Сейчас в теме
(2) Да, сработал такой вариант:

ВЫБРАТЬ
	ВТ_Факт.Подразделение,
	ВТ_Факт.ФизЛицо,
	ВТ_Факт.Номенклатура,
	ВТ_Факт.ДатаПередачи,
	1 КАК Количество_План,
	ВТ_План.СрокНоски КАК СрокРегистра,
	ВТ_Факт.СрокСвойства, 	
	ВЫБОР 
	  КОГДА ВТ_План.СрокНоски ЕСТЬ NULL  Тогда	
	ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВЫРАЗИТЬ(ВТ_Факт.СрокСвойства КАК ЧИСЛО))
	  ИНАЧЕ	
	ДОБАВИТЬКДАТЕ(ВТ_Факт.ДатаПередачи, МЕСЯЦ, ВТ_План.СрокНоски) 	  
	  КОНЕЦ	КАК ДатаИзноса
Показать
3. Leon75 26.11.21 01:25 Сейчас в теме
Нельзя указывать поле как количество добавляемых единиц даты.
5. tiger12 1 26.11.21 01:37 Сейчас в теме
(3) это о чем?

Вообще, здесь именно количество добавляется

ДОБАВИТЬКДАТЕ(<Исходная Дата>, <Единица Измерения>, <Количество>)
6. Leon75 26.11.21 01:44 Сейчас в теме
(5)не поле таблицы. Просто число. ЕСТЬ NULL в вышеуказанном случае пишется раздельно.
Оставьте свое сообщение

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