Имя: Пароль:
1C
1С v8
СКД остатки и обороты + реквизиты регистра
0 NickAn
 
06.03.13
17:04
Есть регистр накопления "ОстаткиТоваров". В Реквизитах регистра есть поле ВидДвижения, где например стоит "Продажа" или "Приход".
Пишу нас СКД два набора данных с запросом.
1. ОстаткиИОбороты
2. Движения с полями регистратор, номер строки, вид движения
Соединяю по полям регистратор, номер строки.
Отчет правильно работает, правильно показывает остатки.
Если делаю отбор по виду движения, то остаток показывает не правильно, показывает по последнему регистратору попавшему в отчет, даже если в группировке нет.
Я то понимаю что все правильно со стороны СКД работает.
Вопрос: Как сделать так, чтобы отбор по второй таблице (Виду движения) не влиял на остатки. Работал фильтр и обороты показывало только по текущему виду движения.
1 fisher
 
06.03.13
17:27
Думаю, это автозаполнение настроек СКД виновато. Цепляет фильтр на результат соединения.
Можно отключить автозаполнение настроек и настроить руками, в т.ч. чтобы фильтр по виду движения только ко второму набору данных применялся до соединения.
2 NickAn
 
06.03.13
17:29
я поставил Вид движения настройках отбора во второй таблице, сейчас попробую через параметр, посмотрим что будет
3 samozvanec
 
06.03.13
17:36
я вот не понимаю людей, которые накладывают отбор на остатки и обороты и дивятся тому, чего видят. получай отдельно остатки, отдельно обороты, и делай с ними, что хочешь
4 NickAn
 
06.03.13
17:47
я же и описал, что есть две таблицы остатки + движения. Все работает правильно
5 Classic
 
06.03.13
18:06
(0)
Что такое "остаток по виду движения расход"?
Или "остаток только по 2м строкам"?
Как вы это себе вообще представляете?
6 NickAn
 
06.03.13
18:50
Нужно чтобы остаток по измерениям всегда показывал правильный, а в движениях можно было поставить фильтр.
Т.е. например хочу видеть движения по расходу, но чтобы остаток в разрезе склада показывало правильный.
На данный момент остаток формируется от Номера строки движения, по которому у меня настроена связь
7 Classic
 
06.03.13
18:56
(6)
Дай в разных наборах разные псевдонимы виду движения. И ставь фильтр на тот, который в оборотах
8 NickAn
 
06.03.13
19:14
в первом нет вида движения
9 NickAn
 
06.03.13
19:14
вид движения - это реквизит регистра, который не участвует в итогах
10 fisher
 
06.03.13
19:21
Харэ волать. Что по итогам (2)?
Если через отбор по параметру во втором наборе данных ты получаешь нужный результат, значит и через ручные настройки фильтров получишь. А если и по параметру не получаешь - значит, где-то в консерватории ошибка и из сабжа фиг поймешь, чего у тебя там происходит.
11 NickAn
 
06.03.13
19:54
С параметром получилось так:
1. Без группировки до регистратора показывает правильные остатки, полный оборот без учета отбора, как по виду движения так и общий итог.
Общий Итог | 10 | 5 | 2 | 13
Приход     | 10 | 5 | 2 | 13
2. С группировкой до регистратора показывает полный оборот и правильные остатки для общего итога, а по группировке вид  движения тоже показывает правильные остатки, но для документа и правильный оборот по документу
Общий Итог | 10 | 5 | 2 | 13
Приход     | 3  | 2 | 1 | 4
Док №      | 3  | 2 | 1 | 4
12 NickAn
 
06.03.13
20:03
поставил регистратор и номер строки как обязательные поля и теперь правильно показывает. Общий итог показывает без отбора вида движений, а вид движения показывает свои итоги.
Осталось проверить как это повлияет на скорость.
13 NickAn
 
06.03.13
20:06
в общем второй вариант из (11) правильно работает
14 NickAn
 
06.03.13
20:14
Параметр убрал стал делать через отбор, стало не правильно показывать общий итог. Загадка.
Настройку отбора сделал во второй таблице
15 NickAn
 
07.03.13
11:15
В общем зашел в тупик. Ситуация такая, если делаю группировку до регистратора, то отчет показывает верно, если делаю без него, тогда если включить группировку до Видов движения, то по каждому виду движения просто выводит общий итог.
А если регистратор делаю обязательным полем, то подвисает, я даже не могу дождаться.
16 NickAn
 
07.03.13
11:56
Нашел отличие между параметром и отбором. Сравнивал через консоль СКД.
Уточню. Если я формирую через параметр, то показывает правильно (Параметр в этом случае стоит первым в условии)
Где ВидДвижения = &ВидДвижения И Дата1>=&Дата1 И Дата2<=&Дата2
, а если через отбор, то не правильно.
Где Дата1>=&Дата1 И Дата2<=&Дата2 И ВидДвижения = &ВидДвижения

Да вот еще добавляется вот такая строка в соединении.
       <linkType>Inner</linkType>
Я так понимаю, что если через параметр, то соединение получается левое, а если отбор, то внутреннее.
Можно ли этим управлять?