|
Период в запросе | ☑ | ||
---|---|---|---|---|
0
ВежливаяТварь
18.10.12
✎
12:09
|
Добрый день. Столкнулся с весьма специфической проблемой есть запрос который вытягивает договора по которым есть долги. Запрос:
ВЫБРАТЬ | ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток КАК Сумма, | ВзаиморасчетыСКонтрагентамиОстатки.Контрагент КАК Контрагент, | ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента КАК Договор |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&Дата, Контрагент В ИЕРАРХИИ (&Контрагент)) КАК ВзаиморасчетыСКонтрагентамиОстатки |ГДЕ | ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток > 0 | |УПОРЯДОЧИТЬ ПО | ВзаиморасчетыСКонтрагентамиОстатки.Контрагент.Наименование Вопрос:Реально ли сделать так что бы параметр &Дата передавался бы как &дата- ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.КоличесвтоДнейострочки или нужно вторым запросом выяснять количество дней отсрочки и предевать через установить параметр в &Дата? И если реально то как? |
|||
1
kosts
18.10.12
✎
12:13
|
Попробуй ДОБАВИТЬКДАТЕ(<Дата>, <Тип>, <Количество>)
ДОБАВИТЬКДАТЕ(&дата, День, - ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.КоличесвтоДнейострочки) |
|||
2
ВежливаяТварь
18.10.12
✎
12:14
|
(1) Понял. Спасибо, сейчас попробую.
|
|||
3
lxndr
18.10.12
✎
12:15
|
(0), (1) нереально. Остатки могут считаться на одну дату.
В этом плане лучше расчитывать количество дней просрочки долга |
|||
4
ВежливаяТварь
18.10.12
✎
12:58
|
а если использовать остатки и обороты?
|
|||
5
GLazNik
18.10.12
✎
13:00
|
(4) тож не взлетит. Но можно получить остатки на &Дата и вычесть обороты за период (но без использования виртуальных таблиц).
|
|||
6
ВежливаяТварь
18.10.12
✎
13:44
|
нашел похожий пример, вот
ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент.Ссылка КАК Контрагент, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента КАК Договор, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом КАК Накладная, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток КАК Сумма, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата КАК ДатаРасходной, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.СуммаДокумента КАК СуммаНакладной ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&Дата, Контрагент В ИЕРАРХИИ (&Контрагент)) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки ГДЕ ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ), ДЕНЬ, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности - 1) <= НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ) И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток > 0 И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом ССЫЛКА Документ.РеализацияТоваровУслуг УПОРЯДОЧИТЬ ПО ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент.Наименование |
|||
7
1Сергей
18.10.12
✎
13:46
|
Куча контриков, куча договоро, куча дат. На какую брать?
|
|||
8
ВежливаяТварь
18.10.12
✎
13:55
|
(7) ну по идее дата должна изменться динамически в зависимости от того у кого какая отсрочка.
|
|||
9
ВежливаяТварь
18.10.12
✎
16:49
|
Вот так получилось:
ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент КАК Контрагент, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента КАК Договор, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(, , День, , Контрагент В ИЕРАРХИИ (&Контрагент)) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты ГДЕ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период = ДОБАВИТЬКДАТЕ(&дата, ДЕНЬ, -ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности) УПОРЯДОЧИТЬ ПО ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент.Наименование |
|||
10
GLazNik
18.10.12
✎
16:56
|
(9) это вряд ли работает. ОстаткиИОбороты вернет только те дни, в которых были обороты
|
|||
11
ВежливаяТварь
18.10.12
✎
17:05
|
(10) Жаль, то есть лучше делать несколькими запросами?
|
|||
12
GLazNik
18.10.12
✎
17:16
|
(11) ну почему же... можно и одним... в принципе и это решение можно довести до ума, но я не нахожу его удачным.
На виртуальных таблицах свет клином не сошелся. В данном случае можно рассчитать остаток на нужную дату используя остаток на &Дата и движения за нужный интервал |
|||
13
ВежливаяТварь
19.10.12
✎
09:53
|
(12) Понял. Сейчас попробую. Спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |