Здравствуйте, может кто нибудь помочь запросом?
Мне нужно сделать так что бы в колонке "Просрочка" не выходило значение (737 653)
Я понимаю что она выходит с результата (ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ))
У меня получается где колонки "Срок оплаты дата " не заполнена , там значение (01.01.0001.0.0.0.0)
минус текущая дата = 737 653
И вот теперь не получается убрать 737 653, хотелось бы просто пустым оставить незаполненные колонки
Вот сам запрос:
ВЫБРАТЬ
ДоговорыКонтрагентов.Наименование КАК ДоговорКонтрагента,
ДоговорыКонтрагентов.тн_БазовыйДоговор КАК ДопСоглашение,
ДоговорыКонтрагентов.Владелец КАК Контрагент,
ДоговорыКонтрагентов.ВидДоговора,
ДоговорыКонтрагентов.тн_ОтветственныйИсполнитель КАК Ответственный,
ДоговорыКонтрагентов.тн_СрокПоставки КАК СрокПоставки,
ДоговорыКонтрагентов.СрокОплаты КАК СрокОплатыУсловие,
ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) КАК СрокОплатыДата,
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) < &ТекДата
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ)
ИНАЧЕ ""
КОНЕЦ КАК Просрочка,
"" КАК Поставка
ИЗ
Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
Мне нужно сделать так что бы в колонке "Просрочка" не выходило значение (737 653)
Я понимаю что она выходит с результата (ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ))
У меня получается где колонки "Срок оплаты дата " не заполнена , там значение (01.01.0001.0.0.0.0)
минус текущая дата = 737 653
И вот теперь не получается убрать 737 653, хотелось бы просто пустым оставить незаполненные колонки
Вот сам запрос:
ВЫБРАТЬ
ДоговорыКонтрагентов.Наименование КАК ДоговорКонтрагента,
ДоговорыКонтрагентов.тн_БазовыйДоговор КАК ДопСоглашение,
ДоговорыКонтрагентов.Владелец КАК Контрагент,
ДоговорыКонтрагентов.ВидДоговора,
ДоговорыКонтрагентов.тн_ОтветственныйИсполнитель КАК Ответственный,
ДоговорыКонтрагентов.тн_СрокПоставки КАК СрокПоставки,
ДоговорыКонтрагентов.СрокОплаты КАК СрокОплатыУсловие,
ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) КАК СрокОплатыДата,
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) < &ТекДата
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ)
ИНАЧЕ ""
КОНЕЦ КАК Просрочка,
"" КАК Поставка
ИЗ
Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
Прикрепленные файлы:

По теме из базы знаний
Найденные решения
...
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) < &ТекДата
И ДоговорыКонтрагентов.тн_СрокПоставки<> ДАТАВРЕМЯ(1,1,1)
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ)
ИНАЧЕ ""
КОНЕЦ КАК Просрочка,
...
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
Вот я попробовал так, но что то не работает
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА 0
ИНАЧЕ ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты)
КОНЕЦ
Вот я попробовал так, но что то не работает
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА 0
ИНАЧЕ ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты)
КОНЕЦ
(3) может дело в NULL?
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ИЛИ ДоговорыКонтрагентов.тн_СрокПоставки ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты)
КОНЕЦ
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ИЛИ ДоговорыКонтрагентов.тн_СрокПоставки ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты)
КОНЕЦ
Так и проверяйте СРОКОПЛАТЫ, а не то выражение, которое проверяете Вы на пустую дату.
И, кстати, ДобавитьКДате тоже возвращает дату.
И, кстати, ДобавитьКДате тоже возвращает дату.
....
ВЫБОР
КОГДА ДоговорыКонтрагентов.СрокОплаты = ДАТАВРЕМЯ(1,1,1)
ТОГДА ДАТАВРЕМЯ(1,1,1)
КОГДА....
...
(10) А Вам что нужно, 0 ?, тогда напишите 0.
Я, так понимаю, нужно что-то вроде этого:
....
...
Я, так понимаю, нужно что-то вроде этого:
....
ТОГДА ВЫБОР КОГДА ДоговорыКонтрагентов.СрокОплаты = ДАТАВРЕМЯ(1,1,1)
ТОГДА 0
ИНАЧЕ
РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ)
КОНЕЦ
...
Вот так сделайте:
ВЫБРАТЬ
ДоговорыКонтрагентов.Наименование КАК ДоговорКонтрагента,
ДоговорыКонтрагентов.тн_БазовыйДоговор КАК ДопСоглашение,
ДоговорыКонтрагентов.Владелец КАК Контрагент,
ДоговорыКонтрагентов.ВидДоговора,
ДоговорыКонтрагентов.тн_ОтветственныйИсполнитель КАК Ответственный,
ДоговорыКонтрагентов.тн_СрокПоставки КАК СрокПоставки,
ДоговорыКонтрагентов.СрокОплаты КАК СрокОплатыУсловие,
ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) КАК СрокОплатыДата,
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) < &ТекДата
И ДоговорыКонтрагентов.СрокОплаты <> ДАТАВРЕМЯ(1,1,1)
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ)
ИНАЧЕ ""
КОНЕЦ КАК Просрочка,
"" КАК Поставка
ИЗ
Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
Показать
(15)
Я вот сделал как вы написали, результат колонки "Просрочка" остаётся 737 653 если не заполнены остальные колонки
Я вот сделал как вы написали, результат колонки "Просрочка" остаётся 737 653 если не заполнены остальные колонки
ВЫБРАТЬ
ДоговорыКонтрагентов.Наименование КАК ДоговорКонтрагента,
ДоговорыКонтрагентов.тн_БазовыйДоговор КАК ДопСоглашение,
ДоговорыКонтрагентов.Владелец КАК Контрагент,
ДоговорыКонтрагентов.ВидДоговора,
ДоговорыКонтрагентов.тн_ОтветственныйИсполнитель КАК Ответственный,
ДоговорыКонтрагентов.тн_СрокПоставки КАК СрокПоставки,
ДоговорыКонтрагентов.СрокОплаты КАК СрокОплатыУсловие,
ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) КАК СрокОплатыДата,
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) < &ТекДата
ТОГДА
ВЫБОР КОГДА ДоговорыКонтрагентов.СрокОплаты = ДАТАВРЕМЯ(1,1,1)
ТОГДА ""
ИНАЧЕ
РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ)
КОНЕЦ
ИНАЧЕ ""
КОНЕЦ КАК Просрочка,
"" КАК Поставка
ИЗ
Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
ПоказатьДоговорыКонтрагентов.Наименование КАК ДоговорКонтрагента,
ДоговорыКонтрагентов.тн_БазовыйДоговор КАК ДопСоглашение,
ДоговорыКонтрагентов.Владелец КАК Контрагент,
ДоговорыКонтрагентов.ВидДоговора,
ДоговорыКонтрагентов.тн_ОтветственныйИсполнитель КАК Ответственный,
ДоговорыКонтрагентов.тн_СрокПоставки КАК СрокПоставки,
ДоговорыКонтрагентов.СрокОплаты КАК СрокОплатыУсловие,
ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) КАК СрокОплатыДата,
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) < &ТекДата
ТОГДА
ВЫБОР КОГДА ДоговорыКонтрагентов.СрокОплаты = ДАТАВРЕМЯ(1,1,1)
ТОГДА ""
ИНАЧЕ
РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ)
КОНЕЦ
ИНАЧЕ ""
КОНЕЦ КАК Просрочка,
"" КАК Поставка
ИЗ
Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
(16)
Тогда проблема не только в сроке оплаты. Выведете всё и посмотрите.
т.е. добавьте в список выводимых полей:
ДоговорыКонтрагентов.тн_СрокПоставки,
ДоговорыКонтрагентов.СрокОплаты,
ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты),
РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ),
&ТекДата
И сразу поймете, где у Вас чего нету. Вдруг параметр &ТекДата заполнен непонятно как.
тн_СрокПоставки
Тогда проблема не только в сроке оплаты. Выведете всё и посмотрите.
т.е. добавьте в список выводимых полей:
ДоговорыКонтрагентов.тн_СрокПоставки,
ДоговорыКонтрагентов.СрокОплаты,
ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты),
РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ),
&ТекДата
И сразу поймете, где у Вас чего нету. Вдруг параметр &ТекДата заполнен непонятно как.
(17) ТекДата заполненом текущей датой (17.08.2020)
Проблема в том что например СрокОплаты заполнен число 01.08.2020
Далее поле "СрокОплатыУсловие" заполнен числом 10
Далее делаем вычисляемое поле = СрокОплаты + СрокОплатыУсловие = получаем 11.08.2020
В этом моменте проблема как бы начинается - если оба поля пустые, мы получаем пустую дату
Далее добавляем вычисляемое "Просрочка" и там в начале мы сравниваем с текущей датой и если
текущая дата больше 11.08.2020 тогда выводим формула (Первое вычисляемое поле где мы получили 11.08.2020 - текущая дата, например текдата 17.08.2020 = должно вывести 6 (это работает))
А когда мы текдату - вычисляемое поле (в котором пустая дата) = мы получаем 737 653
А я хотел сделать чтоб пустая колонка тогда была
Проблема в том что например СрокОплаты заполнен число 01.08.2020
Далее поле "СрокОплатыУсловие" заполнен числом 10
Далее делаем вычисляемое поле = СрокОплаты + СрокОплатыУсловие = получаем 11.08.2020
В этом моменте проблема как бы начинается - если оба поля пустые, мы получаем пустую дату
Далее добавляем вычисляемое "Просрочка" и там в начале мы сравниваем с текущей датой и если
текущая дата больше 11.08.2020 тогда выводим формула (Первое вычисляемое поле где мы получили 11.08.2020 - текущая дата, например текдата 17.08.2020 = должно вывести 6 (это работает))
А когда мы текдату - вычисляемое поле (в котором пустая дата) = мы получаем 737 653
А я хотел сделать чтоб пустая колонка тогда была
...
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) < &ТекДата
И ДоговорыКонтрагентов.тн_СрокПоставки<> ДАТАВРЕМЯ(1,1,1)
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ)
ИНАЧЕ ""
КОНЕЦ КАК Просрочка,
...
(20)
ООО круто))) помогло))) Спасибо большое)
ООО круто))) помогло))) Спасибо большое)
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) ДАТАВРЕМЯ(1,1,1)
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ)
ИНАЧЕ ""
КОНЕЦ
КОГДА ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты) ДАТАВРЕМЯ(1,1,1)
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорыКонтрагентов.тн_СрокПоставки, ДЕНЬ, ДоговорыКонтрагентов.СрокОплаты), &ТекДата, ДЕНЬ)
ИНАЧЕ ""
КОНЕЦ
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот