Имя: Пароль:
1C
1С v8
Связь двух наборов данный в отчете СКД
0 ogion83
 
04.03.15
15:40
Имеется отчет СКД. В нём 2 набора данных из двух регистров, связь по Номенклатуре.
Получается следующее: если в НаборДанных2 имеется номенклатура1, а в НаборДанных1 её нет, то она не выводится, а надо бы.
Как это сделать?
1 mikecool
 
04.03.15
15:41
если есть возможность - указать полное соединение
вроде с какого то релиза планировали ввести такое
2 mikecool
 
04.03.15
15:41
иначе - только левое соединение
3 ogion83
 
04.03.15
15:44
В конструкторе запроса я бы так и сделал, но тут ничего такого не нахожу. Есть только Источник связи, Приемник, Выражения по которым соединяю, имеется ещё условие связи, может в ней надо чего-нибудь сотворить?
4 DirecTwiX
 
04.03.15
15:46
(0) Добавь ещё набор, где будет вся номенклатура из твоих двух наборов.
5 ogion83
 
04.03.15
15:50
(4) Объединение?
6 ogion83
 
04.03.15
15:51
Или может забить на это дело? Если в одном наборе взять эти два регистра, хотя я так пробовал какая то фигня получалась.
7 eklmn
 
гуру
04.03.15
16:04
НаборДанных - Объединение
8 DirecTwiX
 
04.03.15
16:13
(6) Если не принципиально, чтобы было два набора, то так проще. С условиями мог напутать при объединении. Можно сначала в ВТ запихать, а потом их соединить.
9 ogion83
 
05.03.15
09:16
Вот так пробую
ВЫБРАТЬ
    СырьеВЦехеМастеровОстаткиИОбороты.Регистратор КАК ДокументМастеров,
    СырьеВЦехеМастеровОстаткиИОбороты.МПЗ,
    ЕСТЬNULL(СырьеВЦехеМастеровОстаткиИОбороты.КоличествоНачальныйОстаток, 0) КАК КолНачМ,
    ЕСТЬNULL(СырьеВЦехеМастеровОстаткиИОбороты.КоличествоПриход, 0) КАК ПрихМ,
    ЕСТЬNULL(СырьеВЦехеМастеровОстаткиИОбороты.КоличествоРасход, 0) КАК РасхМ,
    ЕСТЬNULL(СырьеВЦехеМастеровОстаткиИОбороты.КоличествоКонечныйОстаток, 0) КАК КолКонМ,
    ПроизводствоОстаткиИОбороты.Регистратор КАК ДокументПроизводства,
    ЕСТЬNULL(ПроизводствоОстаткиИОбороты.КоличествоНачальныйОстаток, 0) КАК КолНачП,
    ЕСТЬNULL(ПроизводствоОстаткиИОбороты.КоличествоПриход, 0) КАК ПрихП,
    ЕСТЬNULL(ПроизводствоОстаткиИОбороты.КоличествоРасход, 0) КАК РасхП,
    ЕСТЬNULL(ПроизводствоОстаткиИОбороты.КоличествоКонечныйОстаток, 0) КАК КолКонП
ИЗ
    РегистрНакопления.Производство.ОстаткиИОбороты(, , Авто, , ) КАК ПроизводствоОстаткиИОбороты
        ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.СырьеВЦехеМастеров.ОстаткиИОбороты(, , Авто, , ) КАК СырьеВЦехеМастеровОстаткиИОбороты
        ПО СырьеВЦехеМастеровОстаткиИОбороты.МПЗ = ПроизводствоОстаткиИОбороты.МПЗ
ГДЕ
    ПроизводствоОстаткиИОбороты.ГотоваяПродукция = &ГотоваяПродукция
Всё показывает правильно, но если делаю группировку по документам, то выводит удвоенные значения.
10 ogion83
 
05.03.15
09:35
Нет подсказок?
11 Timon1405
 
05.03.15
09:37
перенести ГДЕ в условия соединения?
12 ogion83
 
05.03.15
09:38
Во,так заработало как надо:
ВЫБРАТЬ
    СырьеВЦехеМастеровОстаткиИОбороты.Регистратор КАК ДокументМастеров,
    СырьеВЦехеМастеровОстаткиИОбороты.МПЗ,
    ЕСТЬNULL(СырьеВЦехеМастеровОстаткиИОбороты.КоличествоНачальныйОстаток, 0) КАК КолНачМ,
    ЕСТЬNULL(СырьеВЦехеМастеровОстаткиИОбороты.КоличествоПриход, 0) КАК ПрихМ,
    ЕСТЬNULL(СырьеВЦехеМастеровОстаткиИОбороты.КоличествоРасход, 0) КАК РасхМ,
    ЕСТЬNULL(СырьеВЦехеМастеровОстаткиИОбороты.КоличествоКонечныйОстаток, 0) КАК КолКонМ,
    ПроизводствоОстаткиИОбороты.Регистратор КАК ДокументПроизводства,
    ЕСТЬNULL(ПроизводствоОстаткиИОбороты.КоличествоНачальныйОстаток, 0) КАК КолНачП,
    ЕСТЬNULL(ПроизводствоОстаткиИОбороты.КоличествоПриход, 0) КАК ПрихП,
    ЕСТЬNULL(ПроизводствоОстаткиИОбороты.КоличествоРасход, 0) КАК РасхП,
    ЕСТЬNULL(ПроизводствоОстаткиИОбороты.КоличествоКонечныйОстаток, 0) КАК КолКонП
ИЗ
    РегистрНакопления.Производство.ОстаткиИОбороты(, , Авто, , ) КАК ПроизводствоОстаткиИОбороты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.СырьеВЦехеМастеров.ОстаткиИОбороты(, , Авто, , ) КАК СырьеВЦехеМастеровОстаткиИОбороты
        ПО (СырьеВЦехеМастеровОстаткиИОбороты.МПЗ = ПроизводствоОстаткиИОбороты.МПЗ)
ГДЕ
    ПроизводствоОстаткиИОбороты.ГотоваяПродукция = &ГотоваяПродукция

СГРУППИРОВАТЬ ПО
    СырьеВЦехеМастеровОстаткиИОбороты.МПЗ,
    СырьеВЦехеМастеровОстаткиИОбороты.Регистратор,
    ПроизводствоОстаткиИОбороты.Регистратор,
    ЕСТЬNULL(СырьеВЦехеМастеровОстаткиИОбороты.КоличествоНачальныйОстаток, 0),
    ЕСТЬNULL(СырьеВЦехеМастеровОстаткиИОбороты.КоличествоПриход, 0),
    ЕСТЬNULL(СырьеВЦехеМастеровОстаткиИОбороты.КоличествоРасход, 0),
    ЕСТЬNULL(СырьеВЦехеМастеровОстаткиИОбороты.КоличествоКонечныйОстаток, 0),
    ЕСТЬNULL(ПроизводствоОстаткиИОбороты.КоличествоНачальныйОстаток, 0),
    ЕСТЬNULL(ПроизводствоОстаткиИОбороты.КоличествоПриход, 0),
    ЕСТЬNULL(ПроизводствоОстаткиИОбороты.КоличествоРасход, 0),
    ЕСТЬNULL(ПроизводствоОстаткиИОбороты.КоличествоКонечныйОстаток, 0)
13 DrZombi
 
гуру
05.03.15
09:54
(0) Сделай все в пределе одного набора
Либо организуй промежуточную ТЗ, которую потом и будешь выводить пользователю.
14 DrZombi
 
гуру
05.03.15
09:55
(12) А если на оборот, в одном будет, а другом нет?
15 DrZombi
 
гуру
05.03.15
09:56
+(14) Я бы реализовал через Объединение :)