Имя: Пароль:
1C
1С v8
Как в запросе распределить оплату по товарам?
,
0 Doomer
 
07.06.13
11:44
никак не соображу.
УТ 10.3. Задача какие товары в документе оплачены.
Есть регистр взаиморасчеты в котором есть измерение "Кредитный документ". Это чаще всего поступление товаров. Поступление может быть не оплачено, оплачено частично, оплачено полностью. Нужно показать как распределились товары по оплатам. Т.е. если поступление частично оплачено, то сумму оплаты нужно распределить по сумме товаров, пропорционально сумме товара.
Не соображу как собрать это запросом. Хотя бы намекните.
1 Doomer
 
07.06.13
11:47
В целом задача создать отчет который покажет взаиморасчеты по товарам. Т.е. есть желание видеть задолженность и по каким товарам она сформировалась. Ну и движения тоже.
2 Mitriy
 
07.06.13
11:48
СуммаОплаты*СуммаТовара/СуммаДокумента
3 Nenaviwu1c20
 
07.06.13
11:54
Думаю сие есть немного неправильно.Объясню
2 Товара (А и Б) пришли на сумму 1000 рублей.
Первый товар стоит 600 рублей второй соответственно 400.
Каждого товара по 1 шт.
Покупатель оплатил 600 рублей.
Выходит что он за первый товар заплатил 360 рублей а за второй 240 рублей.Выход получается неправильным ибо он мог все 600 заплатить за первый товар а за второй потом 400.А так выйдет что заплатив за один он платит за оба.Может попробуешь переписать  док оплаты(добавь вид операции к примеру).и регистрик создай который тебе отразит за какой товар и сколько и когда заплатили
4 Nenaviwu1c20
 
07.06.13
11:55
то есть ты будешь вести взаиморасчеты по оплаченным товарам
5 Mitriy
 
07.06.13
11:56
жуть...
6 Nenaviwu1c20
 
07.06.13
11:57
(5) норм по моему)
7 Nenaviwu1c20
 
07.06.13
11:59
Совсем забыл .Документ поступления,возврата и реализации тоже будешь переписывать
8 eklmn
 
гуру
07.06.13
11:59
заказы в табличной части есть?
9 Nenaviwu1c20
 
07.06.13
11:59
ну и где ты еще с контрагентами работаешь)
10 mikecool
 
07.06.13
12:00
оплату по-позиционно разносить будут?
11 eklmn
 
гуру
07.06.13
12:03
(10) ну по умолчанию то наверно да, иначе я думаю и вопрос глупо было бы задавать ))
12 Doomer
 
07.06.13
12:14
(4) Да.
13 Doomer
 
07.06.13
12:14
(10) Нет пользователь указывает какую накладную оплачивает данный платеж.
14 Aleksey
 
07.06.13
12:15
А потом клиент заплатил аванс ...
15 Doomer
 
07.06.13
12:15
Движения в регистре переделывать не хочу.
16 Doomer
 
07.06.13
12:19
Задача как раз в том, чтобы в запросе размазать сумму оплаты по стоимости товаров. Например:
Накладная №1 от 01.01.13
Товар1 цена 100 количество 10 сумма 1000
Товар2 цена 150 количесво 17 сумма 2550
Итого по накладной 3550
По накладной была произведена оплата 800р.
Отчет должен показать что существует задолженность:
Товар1 225,35
товар2 574,65
17 ale-sarin
 
07.06.13
12:24
(16) А потом еще захочется и количество оплаченного увидеть.

Да и аванс возможен ведь, как (14) намекнул.
18 Doomer
 
07.06.13
12:25
(17) Авансы вообще отбрасываем. Для отчета берем только долги и те по которым Кредитный документ "ПТиУ".
19 Ненавижу 1С
 
гуру
07.06.13
12:26
интересно в накладной 2 товара, оплачена частично, вопрос: какой товар оплачен?
20 Lys
 
07.06.13
12:34
(1) "взаиморасчеты по товарам" - классическая задача на то, чтобы отличить специалиста от тупого быдло-кодера.
21 eklmn
 
гуру
07.06.13
12:34
(19) и на сколько :)
22 МихаилМ
 
07.06.13
12:35
за решение задачи запросом в продакшене надо увольнять.
тк задача не только переборная но подборная.
решение запросом - мб чисто академическое
23 Ненавижу 1С
 
гуру
07.06.13
12:35
(20) тот кто ее пытается решить - быдло-кодер?
24 s_ustinov
 
07.06.13
12:39
(22) может, просто надо научиться запросы составлять? :))
25 ptiz
 
07.06.13
12:40
(19) Пропорционально поделить. Ничего сложного. Хоть и бессмысленно.
Но иногда эта бессмыслица - требования поставщиков.
26 toypaul
 
гуру
07.06.13
12:41
у меня есть отчет, который распределяет долги по документам. там где не ведется учет по расчетным документам.
27 Ненавижу 1С
 
гуру
07.06.13
12:42
(26) ФИФО в запросе это баян
28 Lys
 
07.06.13
12:42
(23) В общем случае - да.
Одно маленькое уточнение. Бывают специфические случаи, когда решать задачу детализации взаиморасчетов до номенклатуры надо. Но случай ТСа к таковым явно не относится.
29 toypaul
 
гуру
07.06.13
12:43
одним запросом это не решается как правильно написано выше
30 s_ustinov
 
07.06.13
12:44
(25) +1
Стоимость товара (в строке) * сумма оплат по документу поступления / сумма документа поступления
в (2) это написано, только надо учесть, что оплат несколько
исходная табличка - строки документов поступления (или регистр), и к ним левыми соединениями остальные данные

запрос достаточно элементарный и не очень тяжелый - на продакте вполне взлетит
31 s_ustinov
 
07.06.13
12:45
(26) такие вещи надо в базе хранить, а не запросом делать
32 mikecool
 
07.06.13
12:46
задача - изначально кмк хреновая
33 s_ustinov
 
07.06.13
12:46
(29) в твоей базе (без связи) это тоже решается, только запрос получится по настоящему тяжелым
34 toypaul
 
гуру
07.06.13
12:46
хотя тут другого рода задача. не понимаю в чем сложность.
35 Doomer
 
07.06.13
12:49
Господа гениальный программисты. Я в 16 описал тестовый пример. Там нет фифо.
36 toypaul
 
гуру
07.06.13
12:49
"Нужно показать как распределились товары по оплатам" это одна задача и решается она запросом просто, а "создать отчет который покажет взаиморасчеты по товарам" другая задача. одним запросом она не решается.
37 toypaul
 
гуру
07.06.13
12:51
(35) ты считать похоже не умеешь. откуда у тебя по товарам будет долг в 200 и 500 руб, когда остаток долга по накладной (3550-800)
38 МихаилМ
 
07.06.13
12:51
(24)
все немножко сложнее:

есть еще такая задача как многопользовательская эксплуатация субд.

в рамках этой задачи создатели подобных запросов - вне закона,
т.к. неибежный fullscan огромных таблиц.
39 toypaul
 
гуру
07.06.13
12:51
(35) тебе решение этой задачи уже в (2) написали.
40 s_ustinov
 
07.06.13
12:59
(38) with (nolock)
эти буквы знакомы?
и про фулскан ты тоже "немного" обманываешь
обычно запросы строятся за конкретный период - месяц, квартал...
а это максимум миллион строк, а скорее 2-3 сотни тысяч, не больше
41 Doomer
 
07.06.13
13:02
Конкретизирую задача. Делаю отчет для автосалона. У них в приходной накладной чаще всего одна единица товара. Очень редко, но такое бывает, у них в одной накладной несколько позиций.
Так что все обсуждения пока что ни о чем.
42 ptiz
 
07.06.13
13:36
(41) Конечно ни о чем.
Давно бы сделал реквизит "главная номенклатура документа" и не парился.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший