|
А можно ли такое запросом? | ☑ | ||
---|---|---|---|---|
0
Koala
06.01.12
✎
19:28
|
Имеется таблица со столбцами:
Контрагент, Менеджер, ДокРеализация, СуммаРеализации, ДокПлатежка, СуммаПлатежа. Контрагент и Менеджер берутся из ДокРеализации. ДокПлатежка показывает, оплачен ДокРеализации или нет. При этом одной Платежкой можно оплатить сразу несколько Реализаций, но возможна и частичная оплата, т.е. в Платежке может быть указана оплата сразу неск. Реализаций, но СуммыПлатежа может хватить только на часть из них. В результате из такой таблицы надо отобрать в две новых таблицы а) только те Реализации (с их Менеджерами и Контрагентами), в которых СуммаОплаты больше или равна СуммеРеализаций всех Реализаций, указанных в Платежке, б) остальные Реализации (т.е. те, к-рые в Платежке указаны, но денег на к-рые не хватило). Да, так вот я и интересуюсь: можно ли каким-то хитрым запросом такое сотворить или без выгрузки в таблицу значений никак? |
|||
1
Grusswelle
06.01.12
✎
19:49
|
Телепатирую: УТ 10, регистр "ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов"?
|
|||
2
Koala
06.01.12
✎
20:03
|
Не совсем так: УТ 10 - это верно, но регистр тут не при чем. Таблицу я получаю по-другому. (Долго объяснять, почему регистр не прокатит)
Да это и не важно, ты лучше подскажи, если знаешь! |
|||
3
Grusswelle
06.01.12
✎
20:04
|
Ну как... Группируй, сортируй да сравнивай! Информация-то вся для этого, вроде, есть в твоей таблице...
|
|||
4
Koala
06.01.12
✎
20:17
|
Хм,"Группируй, сортируй да сравнивай!"
"Знал бы прикуп, жил бы в Сочи" (с) У меня же к одной платежке может относиться несколько Реализаций. (А не одна платежка - одна реализация) По менеджерам с контрагентами я их, естес-но, сгруппирую и отсортирую, а как выбрать те реализации, на к-рые в платежке денег не хватило? Как их отобрать? |
|||
5
Grusswelle
06.01.12
✎
20:19
|
Прямой связи нету? Как бы в рамках договоров взаиморасчёты, а в них - кучей?
|
|||
6
Koala
06.01.12
✎
20:23
|
Все возможные связи были специально отобраны, и результат таких отборов - моя таблица.
|
|||
7
Grusswelle
06.01.12
✎
20:28
|
Понятно. Группируй по документам, сортируй по суммам (датам?) реализаций. В цикле суммируй суммы реализаций и отслеживай переполнение суммы платёжки этим значением. Как при списании по партиям. Пока хватает - пихай в одну таблицу, как перестало хватать - в другую.
ЗЫ: Сортировать по суммам или по датам - это уже вам решать. |
|||
8
Koala
06.01.12
✎
20:43
|
"В цикле суммируй суммы реализаций" - а как в запросе-то цикл организовать? Или что-то вместо него?
Как это сделать без хитрого запроса, простой выгрузкой в ТЗ с последующим перебором - я в курсе. А вот запросом, без выгрузки в ТЗ как-нибудь можно это сделать? Просто эти таблицы с оплаченными и неоплаченными реализациями мне потом еще дальше обрабатывать. И их-то обработать запросом просто. Не хотелось бы, чтоб между запросами была выгрузка в ТЗ. ЗЫ Мне нужно их сортировать строго по суммам. В исходной таблице данные уже содержатся за период. |
|||
9
Koala
06.01.12
✎
22:47
|
Неужели никто не знает?
|
|||
10
Neco
06.01.12
✎
23:28
|
(9) Нужно было заранее ввести регистр в котором фиксировать какая часть платежа на какую реализацию уходит. Сейчас все таки лучше организовать расчет через цикл, изящного решения одним запросом придумать не получается.
|
|||
11
1с-кин
07.01.12
✎
03:46
|
(8) через временную таблицу - и крутить её столько раз, сколько надо, а отбирать в разные таблицы сразу по условиям.
|
|||
12
Koala
07.01.12
✎
06:00
|
(11) - не совсем понял, поясни свою мысль.
|
|||
16
Koala
07.01.12
✎
12:06
|
Так что там с временной таблицей, как ее употребить?
|
|||
17
Ненавижу 1С
гуру
07.01.12
✎
12:47
|
||||
18
1с-кин
07.01.12
✎
15:38
|
(16) получаете во временную таблицу свою исходную "имеется таблица со столбцами" (даже можно выбросить ну совсем левые платежки-менеджеры-даты).
В двух других запросах выбираете как нужно из неё: "В результате из такой таблицы надо отобрать в две новых таблицы а) только те Реализации (с их Менеджерами и Контрагентами), в которых СуммаОплаты больше или равна СуммеРеализаций всех Реализаций, указанных в Платежке, б) остальные Реализации (т.е. те, к-рые в Платежке указаны, но денег на к-рые не хватило)." Можно последовательно, сначала выбрать "те в которых СуммаОплаты больше или равна", потом СОЕДИНЕНИЕМ ПО полям с исходной - отобрать оставшиеся, т.е. те, которые не попали в первую выборку. Будет хитрый запрос :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |