|
Вопрос по запросу. | ☑ | ||
---|---|---|---|---|
0
asder117
28.07.22
✎
15:34
|
ВЫБОР
КОГДА РАЗНОСТЬДАТ(ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ИЛИ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности ЕСТЬ NULL ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.Дата ИНАЧЕ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности КОНЕЦ, &КонецПериода, ДЕНЬ) > 7 И РАЗНОСТЬДАТ(ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ИЛИ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности ЕСТЬ NULL ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.Дата ИНАЧЕ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности КОНЕЦ, &КонецПериода, ДЕНЬ) <= 14 И ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток > 0 И РАЗНОСТЬДАТ(ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ИЛИ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности ЕСТЬ NULL ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.Дата ИНАЧЕ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности КОНЕЦ, &КонецПериода, ДЕНЬ) > 0 ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ = ИСТИНА ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход - ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход ИНАЧЕ ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход КОНЕЦ ИНАЧЕ 0 КОНЕЦ Приветствую. Такая конструкция имеет место быть или как-то упростить можно? Цель - проверить если есть установленная в документе дата погашения задолженности то использовать ее в разности дат с текущей если пусто тогда использовать дату дока |
|||
1
lubitelxml
28.07.22
✎
15:44
|
(0) зачем здесь выбор?:
ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход ИНАЧЕ ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход КОНЕЦ |
|||
2
Ненавижу 1С
гуру
28.07.22
✎
15:44
|
(0)
1. используйте МЕЖДУ 2. вы уже проверили величину, что она больше 7, она тем более будет больше 0 (1 и 3 условие) 3. ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход ИНАЧЕ ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход КОНЕЦ //идентичные ветки |
|||
3
Ненавижу 1С
гуру
28.07.22
✎
15:47
|
ВЫБОР
КОГДА РАЗНОСТЬДАТ(ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности> ДАТАВРЕМЯ(1, 1, 1) ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности ИНАЧЕ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.Дата КОНЕЦ, &КонецПериода, ДЕНЬ) МЕЖДУ 8 и 14 ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот ИНАЧЕ 0 КОНЕЦ |
|||
4
asder117
28.07.22
✎
15:59
|
(3) Понял. Спасибо покручу
|
|||
5
asder117
28.07.22
✎
16:39
|
(3) проверил сработало
У меня идут группировки: -Контрагент --Договор ---Заказ Регистратор (он может быть как реализация так и платежка) так вот в поле где реализация там все норм стоит 0 а вот в поле платежка стоит -сумма. Я понимаю из-за чего (у дока нет поля даты погашения вообще) я проверкой на NULL данного поля и хотел проверять наличие ИЛИ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности ЕСТЬ NULL или ИЛИ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности = неопределено вот в чем загвоздка |
|||
6
asder117
28.07.22
✎
16:43
|
(5) Переделал так..вроде норм стало
ВЫБОР КОГДА РАЗНОСТЬДАТ(ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности = ДАТАВРЕМЯ(1, 1, 1) ИЛИ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности = НЕОПРЕДЕЛЕНО ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.Дата ИНАЧЕ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности КОНЕЦ, &КонецПериода, ДЕНЬ) МЕЖДУ 8 И 14 ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот ИНАЧЕ 0 КОНЕЦ КАК От60До70, |
|||
7
Ненавижу 1С
гуру
28.07.22
✎
16:51
|
(6) "От60До70" - Это что означает?
|
|||
8
asder117
28.07.22
✎
16:55
|
(7) Поле разницы дней (от и до) В СКД я его имя меняю как мне надо (от 7-14). Понимаю что не правильно сейчас переписываю по (3) подсказке все внутренние условия.
|
|||
9
asder117
28.07.22
✎
16:55
|
(8) ну и поля в том числе как должны быть
|
|||
10
asder117
08.08.22
✎
12:07
|
(6) Интересная ситуация. Запрос отрабатывает на ура..но блин причина одна есть и я не догоню как ее избежать
ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот В результате запрос а в консоли вываливается несколько строк. Если в сумме это поле взять получается сумма которая нужна, но в строку в отчете выводит только одну сумму которая находится в строке. Как можно чтобы в поле От60До70 выходила именно сумма по всему взаиморасчету |
|||
11
Ненавижу 1С
гуру
08.08.22
✎
12:11
|
(10) не поверишь - суммировать
|
|||
12
asder117
08.08.22
✎
12:12
|
(11) Имеешь ввиду в самом запросе? В СКД в ресурсах я его суммирую...Или еще дополнительно в запросе надо?
|
|||
13
Ненавижу 1С
гуру
08.08.22
✎
13:32
|
(12) в запросе
|
|||
14
asder117
08.08.22
✎
13:52
|
(13) Как я тебя правильно понял поработать с группировками в запросе (их там сейчас нет) суммирование без группировок не работает же
|
|||
15
Ненавижу 1С
гуру
08.08.22
✎
14:10
|
(14) разумеется
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |