Имя: Пароль:
1C
 
Расчеты в запросе
0 SeiOkami
 
12.10.14
10:57
Здравия всем!
Можно ли произвести в запросе такое:

Сразу скажу, что привожу очень упрощенный пример, дабы не описывать кучи связей.
Имеются две таблицы. В первой колонки Номенклатура(Н) и количество (К), а во второй Модель (М) и количество (К). Пример:

Н       |   К                 М       |   К
---------------               -------------
Н1      |  12                 М1      |   8
Н2      |  12                 М2      |   8
                              М3      |   8


Представим, что первая таблица - приходы. А вторая - расходы.
Нужно из количеств первой таблицы вычитать количества второй. И таким образом "разнести" суммы со второй таблицы на первую. Результат должен быть такой:


Н   |  Кн  |   М   |  Км  | Кн-остаток | Км-остаток
----------------------------------------------------
Н1  |  12  |   М1  |  8   |  4         | 0
Н1  |  4   |   М2  |  4   |  0         | 4
Н2  |  12  |   М2  |  4   |  8         | 0
Н2  |  8   |   М3  |  8   |  0         | 0


Чисто теоретически можно такое сделать в запросе? Или только кодом?

P.S.: повторю, что эта схема сделана лишь для упрощения объяснений. Не нужно советовать изменять архитектуру или подход к задаче. Прошу лишь пояснить есть ли возможность реализовать такое в запросе, аль нет
1 SeiOkami
 
12.10.14
10:58
Блин, всё равно миста все пробелы посбивала...
2 SeiOkami
 
12.10.14
10:59
Ссылка на изображение с нормальной разметкой:

http://s7.hostingkartinok.com/uploads/images/2014/10/f3e3883c25d51fc7e468d8aee7c8454a.jpg
3 EugeniaK
 
12.10.14
11:08
(0) Теоретически можно.
Аналогично получению задолженности после каждого документа.
Запрос, соединяющий всех со всеми.
Но на больших объемах работать быстро не будет.
4 SeiOkami
 
12.10.14
11:12
(3), я просто пока даже представить не могу формулы расчетных полей. Допустим, соединяю без соединения (всех со всеми).
Вычитаю -> Кн - Км = 12 - 8 = 4.
Дальше как-то нужно перекинуть остаток на след. строку
При том, что далее будет -> Кн - Км = 4 - 8  и теперь мне нужно вычестить только сколько нужно и перекинуть теперь и остатки со второй таблицы...

Можно где-нить увидеть подобное? В типовых, например
5 shuhard
 
12.10.14
11:26
(0) ФИФО в запросе одна из самых цитируемых тем форума
https://www.google.ru/search?as_sitesearch=forum.mista.ru&q=%D4%C8%D4%CE+%E2+%E7%E0%EF%F0%EE%F1%E5&gws_rd=ssl
6 GROOVY
 
12.10.14
11:27
(0) Извратиться можно как угодно
http://1c.chistov.pro/2014/03/blog-post.html
Только зачем?
7 shuhard
 
12.10.14
11:32
(6) раньше, в до СКД эру было принято всё делать в запросах, сейчас когда ТЗ можно вернуть обратно в СКД это кажется архаизмом
8 SeiOkami
 
12.10.14
12:15
(5), (6), соль в том, что у меня в первой таблице элементы одного справочника, а во второй другого. И в результате нужно получить не только цифры, но и соответствия какой Моделью списали какую Номенклатуру.

Сейчас попробую разобраться с примерами по ссылкам, но чую, что в этом нюансе все сложности и будут.
9 SeiOkami
 
12.10.14
12:15
(7), при помощи СКД можно сделать это легче?
10 Мимохожий Однако
 
12.10.14
12:23
Опиши задачу. А то выбираешь метод, а о сути задачи только намеками.
11 SeiOkami
 
12.10.14
12:25
(10), уже описал ведь. Нужно сделать, чтобы из указанных таблиц вышла указанная финальная
12 SeiOkami
 
12.10.14
12:42
Хотя я начал наконец-то понимать... Выходит, что в моём примере Модель как ДокументПартии в приведённых примерах по ссылкам.
13 shuhard
 
12.10.14
12:45
(8) два справочника могут быть связаны как
1:1
1:N
N:N

форум должен угадать твоё архитектуру  ?
14 SeiOkami
 
12.10.14
12:46
(13), я в (0) указал конкретный пример. Угадывать ничего не нужно
15 shuhard
 
12.10.14
12:47
(14) в этой мути  нет ни слова о связи справочников
16 SeiOkami
 
12.10.14
12:48
(15), кокой связи? У меня написано, что есть на входе и что должно получиться. Всё просто
Независимо от того, куда вы едете — это в гору и против ветра!