Запрос 1С 8 как сделать "Перемножение матриц" #730725


#0 by MikeCurious
Есть 2 подзапроса (несложных): 1й возвращает таблицу с колонками: Счет, Товар, Сумма 2й возвращает таблицу с колонками: Счет, ДокументОплаты, СуммаОплаты Естественно в каждом счете может быть несколько товаров, и оплат по 1 счету может быть несколько. Вопрос как получить таблицу следующего вида: Счет, Товар, ДокументОплаты, Сумма, СуммаОплаты. Где на КАЖДУЮ комбинацию Товар+ДокументОплаты будет своя строка? Пример (для простоты с 1 счетом):            Счет1, Стол, 30 Таблица 2: Счет1, ПКО1 от 01.10.14, 15            Счет1, ПКО2 от 10.10.14, 25 Реально получить такую таблицу в запросе 1С8.3? (СКД).
#1 by mikecool
полное соединение по номенклатуре, не?
#2 by Cube
По счету, ты хотел сказать?
#3 by MikeCurious
Вероятно схалявил с примером :) предположим что товаров 3. Тогда в рез.таблице должно стать 6 строк. А полное соединение может дать число строк максимум 2+2=4 строки.
#4 by mikecool
как посчитал? я бы по разному попробовал, прежде бы чем спросил )))
#5 by mikecool
полное соединение число строк 1 умножить на число строк 2
#6 by hhhh
полное соединение даст 3*3 = 9 строк. Откуда сведения про 4 и про 6 строк?
#7 by PS_SP
Надо размазывать оплату по товарным позициям, насколько я понял. Ничего сложного нет на первом этапе. Или распределить по фифо. Это сложнее немного.   Засада будет с копейками, если распределять,  и там где оплата попала не на тот счет. Те заплатили больше. Но вообще нежизненно. Никому не надо знать какой товар в счете оплачен, потому что в ПП это не пишут.
#8 by Жан Пердежон
фифо для нескольких поступлений/списаний гораздо проще в коде сделать, чем в запросе
#9 by MikeCurious
"Никому не надо знать какой товар в счете оплачен, потому что в ПП это не пишут." - Никому... кроме моего заказчика :) Схему распределения я могу делать любую, поэтому беру по пропорциональной сумме каждого товара. т.е. если оплатили полсчета - это значит оплатили каждый товар на половину. Кодом понятно что сделать можно, но тогда это нужно делать свой отчет в тонком клиенте без СКД...
#10 by MikeCurious
Кстати только что проверил полное соединение. Получается примерно как объединение таблиц. Идет вначале 1я, потом 2я (при одном счете).
#11 by MikeCurious
Хм, извиняюсь не прав. Если соединять только по счету. Получается то что надо :) Огромное спс mikecool и Cube Видимо я неправильно понимаю работу полного соединения...
#12 by Жан Пердежон
если тупо пропорционально, делай в запросе, там еще округление надо будет не забыть "скинуть"; судя по "перемножение матриц" и "проверил полное соедение" лучше позови специалиста
#13 by Лодырь
Еще чуть чуть и он изобретет реляционную алгебру
#14 by PS_SP
Передавай ему что он дебил. ) Если есть переплаты по счету, а они есть, тк платежи обязательно засандалят не туда, то задача распределением решается криво. Если принять что такого не могет быть, то умножай каждый платеж на товар, к примеру, и добавь колонку с общей суммой счета для поиска пропорции. Потом сгруппируешь. Вылезут копейки. С которыми потом еще надо будет бороться. Но лучше научится делать фифо в запросе. Чтоб с копейками не бодаться и аванес вылазил.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С