Имя: Пароль:
1C
1С v8
СКД проблема с итогами
0 Jokerman
 
06.09.11
10:18
Здрасте всем!
Посоветуйте, плз, как можно организовать итоги по такому принципу:
Есть некая табличка
Контрагент Договор Сумма Оплата
Контр1     дог_А    50     40
Контр1     дог_А    50     10
Контр2     дог_А    60     60
Контр1     дог_В    40     40

В вышестоящей группировке (допустим день) в итоге колонки "сумма" было 150, а не 200, т.к. дог_А у Контр1 на сумму 50, а получается - 100. И все это в примилейшем СКД. Запрос поменять или выражение правильное поставить в вычисляемое поле.
1 Defender aka LINN
 
06.09.11
10:20
2 набора данных
2 Jokerman
 
06.09.11
10:25
(1) Разделить "Сумма" и "Оплата"  в разные наборы данных?
3 Kerk
 
06.09.11
10:34
(0) Насколько понял нужно группировку по контрагентам и договорам в запросе... а точнее в (2) все же, отдельно получай сумму и оплату потом соединяй.
4 Jokerman
 
06.09.11
10:40
(3) я понял, можно на моем примере. Я соединяю данные из документа (поля покупатель, договор, сумма) и регбухг субконто1, субконто2, суммаобороткт. Создаю 2 набора данных типа запрос. Потом на вкладке "связи наборов данных" ставлю "источник связи" -набор данных 1, "приемник" набор данных 2, "выражение источник" - контрагент, "выражение приемник" - субконто1, и также по договорам?
5 Kerk
 
06.09.11
10:42
(4) Будь проще! (ИХМО!) Сделай 2 промежуточные таблицы и все соединение в запросе.
6 Jokerman
 
06.09.11
10:43
(5) тоже думал так, но мне кажется все равно результат останется тот же
7 Kerk
 
06.09.11
10:45
(6) Тот же, но запрос можно быстро отладить в консольке. :) Можно и СКД отладить, но мне лично приятней работать с кодом запроса, чем с "фантастически рандомным" функционалом СКД. :)
8 Defender aka LINN
 
06.09.11
10:45
(5) Правильный ответ в (1). Иначе никак.
9 Kerk
 
06.09.11
10:47
(8) Если не сложно, приведи описание причин "Иначе никак".
10 Jokerman
 
06.09.11
11:01
(9) Да, да есть такое только что посмотрел в уроке по СКД, оказытся объединение с помощью СКД решит мою проблему, а запросом останется то же
11 Defender aka LINN
 
06.09.11
11:10
(9) В одной таблице 1 строка, в другой - 2, условию соединения удовлетворяю обе. Покажи мастер-класс, как в запросе соединить их так, чтобы строка из первой таблицы не задублировалась.
12 Jokerman
 
06.09.11
13:21
У меня получилась такая несуразица:
Группировка по месяцу и дню использую поле:
НАЧАЛОПЕРИОДА(СчетДоговор.Договор.ДатаДоговора, МЕСЯЦ)
НАЧАЛОПЕРИОДА(СчетДоговор.Договор.ДатаДоговора, ДЕНЬ)
Выходит сначала все оплаты с пустой суммой договора, по незвестному месяцу и дню. Потом нормально по группировкам только без оплаты. Вобщем все строчки с оплатам перешли наверх с пустыми группировками. Как соединить все это?
13 Jokerman
 
06.09.11
13:32
То есть раньше я использовал один набор данных с запросом и ЛЕВОЕ Соединение контрагент документа = субконто1, договор документа = субконто2. Сейчас создал 2 набора данных и одно соединение. Субконто1 переименовановал в контрагента, субконто2 в договор. Проблема с итогами решилась, но теперь оплаты не группруются по месяцам и дням!!!
14 Axel2009
 
06.09.11
13:35
сделай через объединить. и при выводе оплат фильтруй строки, где сумма <> 0.
15 Jokerman
 
06.09.11
13:47
(14) Объединить? Не совсем понял вас
16 Axel2009
 
06.09.11
13:49
выбор "контр1", 50 как сумма, 0 как оплата
объединить все
выбор "контр1", 0 как сумма, 10 как оплата
17 Jokerman
 
06.09.11
13:50
Вернуть к одному запросу? Нет-нет, решение очевидно, что через 2 набора данных и объединение
18 Axel2009
 
06.09.11
13:55
ты часом не путаешь соединить и объединить?
19 Defender aka LINN
 
06.09.11
14:00
(13) Кэп говорит, что по периодам тоже соединять было бы неплохо.
20 Jokerman
 
06.09.11
14:18
Да, да соединил, все равно петрушка выходит
21 Jokerman
 
06.09.11
14:21
Щас распишу общую картинку:
Первый набор: Контрагент
             Договор
             СуммаДоговора
             Месяц
             День

Первый набор: Контрагент
             Договор
             СуммаОплаты
             Месяц
             День
             ДатаОплаты
22 Jokerman
 
06.09.11
14:27
Что интересно информация о оплатах выходит за предыдущий год, хотя в параметрах регистра бухг начало задано. И за этот год выводит в разнобой, сначала строчки с суммой договора, потом с оплатой, насчет первого ничего не пойму, насчет второго: кажись что-то с ролями полей. Как правильно  указать роль для "месяц" период 1, для "день" период 2?
23 Jokerman
 
06.09.11
14:30
Товарищи, а не проблема в том, что поля субконто1 и субконто2 РБ неопределенного типа?
24 Jokerman
 
06.09.11
14:35
Когда используешь объединение 2-ух наборов данных, то я как понял он соединяет по принципу, полей с одинаковым путем, а какое соединение это оказывается ЛЕВОЕ или ПРАВОЕ, простите если туплю, не пойму принцип работы ...
25 Axel2009
 
06.09.11
15:03
левое
26 Jokerman
 
06.09.11
15:08
(25) видимо нет или что то не так, в общем получилось?
Удалил набор - объединение, на вкладке связи все поставил, взлетело, ураааааааа!!
27 Jokerman
 
06.09.11
15:09
(26) *в общем получилось!!!!