Имя: Пароль:
1C
1С v8
СКД отбор через параметр
0 YHVVH
 
26.09.14
18:17
Есть Два набора записей

первый

ВЫБРАТЬ
    Номенклатура.Ссылка
ИЗ
    Справочник.Номенклатура КАК Номенклатура

второй

ВЫБРАТЬ
    СвободныеОстаткиОстатки.Номенклатура,
    СвободныеОстаткиОстатки.ВНаличииОстаток
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(,Склад =&Склад) КАК СвободныеОстаткиОстатки

Связь набора прописана через номенклатуру

отчет выводит номенклатуру и остаток, склад задается через параметр.

Если на остатке нет товара, он её показывает строчкой в отчете

Но вот в чем вопрос, если делает отбор по складу не через параметр, а вот так


ВЫБРАТЬ
    СвободныеОстаткиОстатки.Номенклатура,
    СвободныеОстаткиОстатки.ВНаличииОстаток
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(,{Склад КАК Склад}) КАК СвободныеОстаткиОстатки

то не попадают позиции которых нет на остатках.

Вопрос почему так происходит?
В чем разница указывать склад через параметр или через отбор?
1 YHVVH
 
26.09.14
18:20
вопрос второй как сделать так чтоб попади строчки
при отборе который будет задавать пользователь, используя схему два набора данных и связь между наборами?
2 YHVVH
 
26.09.14
18:21
эксперимент с галкой обязательная связь не дала результата.
3 Armando
 
27.09.14
01:00
Потому что при таком отборе тип связи становится внутренняя. Это особенность СКД. На ИТСе была статья, не могу найти.
4 Armando
 
27.09.14
01:21
http://its.1c.ru/db/v8doc#content:64:1
"В схеме компоновки данных нет указания типа связи. Все связи считаются левыми внешними соединениями. То есть запись родительского набора данных будет использоваться в компоновке даже в том случае, если для нее не найдены записи в зависимом наборе.

В макете компоновки данных (см. здесь) возможно указание типа связи. Тип связи генерируется компоновщиком макета в зависимости от накладываемых глобальных отборов. Если на поле набора данных, являющегося зависимым, накладывается глобальный отбор, генерируемые связи в макете компоновки данных от этого набора данных до всех его родительских наборов (вплоть до начала иерархии наборов данных) будут иметь тип Внутренняя. Это означает, что записи родительского набора данных будут участвовать в компоновке только в том случае, если будут найдены записи в зависимых наборах данных."
5 Armando
 
27.09.14
01:24
Как вариант можно использовать программный вывод. После генерации макета компоновки данных, программно менять там тип связи. На первый взгляд должно работать.
6 YHVVH
 
27.09.14
07:58
(4) спасибо
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс