Имя: Пароль:
1C
1С v8
Соединение двух наборов данных
,
0 Cumpuciy
 
08.09.16
16:41
Есть 2 набора данных.
Если бы это были вложенные запросы, то соединение имело бы вид:
ВлЗапрос1.ОсновнойЗаказНаПроизводство = ВлЗапрос2.НоменклатураВыпуска.ЗаказНаПроизводство
    ИЛИ ВлЗапрос1.ОсновнойЗаказНаПроизводство = ВлЗапрос2.НоменклатураВыпуска.ЗаказНаПроизводство.ОсновнойЗаказНаПроизводство

Можно как-то реализовать подобное в СКД?
1 Лефмихалыч
 
08.09.16
16:47
соединение по ИЛИ - плохая идея, хоть с компоновкой, хоть без.

А что мешает вот это вот условие и написать в условиях соединения наборов?
2 ViSo76
 
08.09.16
16:51
(1) Не вижу ничего плохова в ИЛИ, я вижу только точки за которые нужно наказывать в данном конкретном случае
3 Cumpuciy
 
08.09.16
16:54
(2) по точкам понятно, перед продкашеном вынесу в отдельные поля запроса.
(1) не совсем понял. условие связи это условие, при котором связь будет выполняться.
Если я задам связь источника и приемника как ВлЗапрос1.ОсновнойЗаказНаПроизводство = ВлЗапрос2.НоменклатураВыпуска.ЗаказНаПроизводство, то какие бы условия не ставил у меня не попадут записи с ВлЗапрос1.ОсновнойЗаказНаПроизводство = ВлЗапрос2.НоменклатураВыпуска.ЗаказНаПроизводство.ОсновнойЗаказНаПроизводство
4 Лефмихалыч
 
08.09.16
16:56
5 Лефмихалыч
 
08.09.16
16:59
6 Cumpuciy
 
08.09.16
17:04
(4)(5) Спасибо!
7 ViSo76
 
08.09.16
17:55
(4) На сколько я понял ты адепт методичек от 1С? И "Это может привести к замедлению производительности" применяется для всех вариантов? Могу тебя разочаровать, в каждом конкретном случае нужно включать мозги.
8 Лефмихалыч
 
08.09.16
17:58
(7) нет, я просто видел глазами, как это бывает, когда "привести к замедлению производительности" в таких случаях.
В каждом конкретном включать - согласен.
9 Cumpuciy
 
09.09.16
13:03
(5) Кстати, не взлетело.
Если указать только набор источник связи и условие, то он соединит все поля, игнорируя любое условие.
Если связать по номенклатуре и в условии поставить:
ОсновнойЗаказНаПроизводство = ЗаказНаПроизводство ИЛИ ОсновнойЗаказНаПроизводство = ЗаказНаПроизводствоОсновнойЗаказНаПроизводство
то при компоновке выдает ошибку "поле не найдено ЗаказНаПроизводство", если первую часть перед ИЛИ, то Поле не найдено "ЗаказНаПроизводствоОсновнойЗаказНаПроизводство"
Соответственно, в условие нельзя добавить поля ПРИЕМНИКА.
10 Cumpuciy
 
09.09.16
13:40
Решил через объединение 2х наборов данных.
В первом поле ЗаказНаПроизводство КАК ЗаказНаПроизводство
во втором ЗаказНаПроизводство.ОсновнойЗаказНаПроизводство КАК ЗаказНаПроизводство
А затем к первому набору присоединяю это объединение.
Вроде по фэн шую.
11 Cumpuciy
 
09.09.16
13:43
(11) не очень понятно выразился.Малоли, вдруг кто столкнётся.
1 набор
2 набор - объединение 3 и 4
3 набор где ЗаказНаПроизводство КАК ЗаказНаПроизводство
4 набор где ЗаказНаПроизводство.ОсновнойЗаказНаПроизводство КАК ЗаказНаПроизводство
и затем к 1 присоединяем 2.