Имя: Пароль:
1C
1С v8
Не получается в СКД связать три набора данных и получить нужный результат
, ,
0 eeyore
 
20.02.13
15:33
Самостоятельно разбираюсь с возможностями СКД, хочу связать три набора данных и вывести из них значения в виде детальных записей.

Создал тестовую конфигурацию, она состоит из:
- справочник "Номенклатура"
- регистр сведений "ЦеныНоменклатуры", измерение "Номенклатура" - тип СправочникСсылка.Номенклатура и ресурс "Цена" - тип "Число"
- регистр сведений "ЗапасыНоменклатуры", измерение "Номенклатура" - тип СправочникСсылка.Номенклатура и ресурс "Запас" - тип "Число"

Создаю "Отчет1", настраиваю СКД:
На закладке "Наборы данных" описываю три набора данных - запрос:
1.  "ВсяНоменклатура"
ВЫБРАТЬ
   Номенклатура.Ссылка КАК Номенклатура
ИЗ
   Справочник.Номенклатура КАК Номенклатура

2. "ЦеныНоменклатуры"
ВЫБРАТЬ
   ЦеныНоменклатуры.Номенклатура,
   ЦеныНоменклатуры.Цена
ИЗ
   РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры

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

На закладке "Связи наборов данных" задаю связи:

Источник связи  | Приемник связи     | Выражение источник | Выражение приемник
ВсяНоменклатура | ЦеныНоменклатуры   | Номенклатура       | Номенклатура
ВсяНоменклатура | ЗапасыНоменклатуры | Номенклатура       | Номенклатура

На закладке "Настройки" добавляю группировку "Детальные записи" и в "Выбранные поля" указываю "Номенклатура", "Цена", "Запас".

Формирую отчет - вылетает ошибка "Использование полей из не связанных наборов данных не допустимо".

Конфигурацию можно скачать по этой ссылке: http://www.fayloobmennik.net/2640019

Я не понимаю, о каких не связанных наборах данных идет речь? Я вроде все связал. Помогите, пожалуйста, разобраться!
1 milan
 
20.02.13
15:35
Забей, вяжи все в одном запросе
2 Волчара2010
 
20.02.13
15:38
Юзай набор данных объединение
3 Волчара2010
 
20.02.13
15:38
> Конфигурацию можно скачать по этой ссылке: http://www.fayloobmennik.net/2640019

Для начала надо обсудить стоимость работ и условия оплаты :)
4 Budy
 
20.02.13
15:39
Наименование полей вроде должно быть разное
номенклатура в одном наборе
номенклатура2 в другом и т.д.
5 eeyore
 
20.02.13
15:40
(1) Я хочу разобраться именно с тем как связывать наборы данных в СКД, так что вариант связывать в запросе мне не подходит.
6 Волчара2010
 
20.02.13
15:41
(5) через объединение делай
7 Valadis
 
20.02.13
15:42
(0)Нужно связывать каждый с каждым
8 eeyore
 
20.02.13
15:43
(4) Если я связываю два а не три набора данных, то наименование поля связи в разных наборах данных может быть одинаковым
9 eeyore
 
20.02.13
15:45
(7) Это как?
Связать ВсяНоменклатура и ЦеныНоменклатуры
а потом ЦеныНоменклатуры и ЗапасыНоменклатуры
так что-ли?
10 Valadis
 
20.02.13
15:45
(0) То есть для наборов А,Б,С нужно связать:
А с Б
А с С
Б с С;
посмотри какой-нибудь типовой отчет в ЗУПе (типа списки работников, там есть подобное)
11 milan
 
20.02.13
15:50
(10) СКД в принципе вещь довольно логичная и понятная, но вот со связями наборов данных как-то не очень понятен ход мысли
12 Paul_Nevada
 
20.02.13
15:52
(10) - только что сделал именно таким обращом - отчет заработал.
13 Valadis
 
20.02.13
15:53
(11) Почему именно так не отвечу, но
1.уже сталкивался с подобным, помогла именна связь каждый с каждым.
2. смотрим типовые отчеты, там такие схемы тоже встречаются.
14 Armando
 
20.02.13
15:54
(0) В наборах Цены и Запасы поставь все флаги для номенклатуры в ограничении поля и реквизитов
15 Armando
 
20.02.13
15:55
(11) тоже все логично
16 eeyore
 
20.02.13
15:58
(10) У меня сейчас нет ЗУПа под рукой.
Попробовал связать как ты говоришь, отчет при этом заработал, НО в него выводятся не все данные, а именно при связи Б с С попадаю все данные из Б и только те данные из С, которые совпадают с Б по номенклатуре.
И наоборот если связываю С с Б, то попадают все из С и только те из Б, которые совпадают с С по Номенклатуре.
А как сделать чтобы выводились все данные и из Б и из С?
17 lxndr
 
20.02.13
16:00
(16) отборы есть в настройках?
18 eeyore
 
20.02.13
16:00
(12) А данные у тебя все вывелись? Посмотри внимательно, там данные в ЦеныНоменклатуры и ЗапасыНоменклатуры по номенклатуре не совпадают
19 eeyore
 
20.02.13
16:01
(17) нет
20 Valadis
 
20.02.13
16:01
(16) насколько я помню в СКД реализовано только левое соединение (имею ввиду вкладку "Связи наборов данных")
21 eeyore
 
20.02.13
16:03
(14) Поставил - не помогает
22 eeyore
 
20.02.13
16:04
(20) Именно так
23 eeyore
 
20.02.13
16:05
(20) Поэтому я и связываю оба набора с А, т.к. только в нем есть все данные по Номенклатуре, в остальных наборах их нет.
24 Valadis
 
20.02.13
16:05
(16)  + флаг "необязательная связь" или типа того попробуй
25 milan
 
20.02.13
16:07
(15) Поделись знанием.
26 eeyore
 
20.02.13
16:11
(24) Попробовал снимать флаг "Обязательная связь" - не помогает, отчет на него ни как не реагирует.
27 Valadis
 
20.02.13
16:14
(26) Снять для связи Б с C
28 eeyore
 
20.02.13
16:16
(27) Да я его пробовал снимать для связи Б с С - не помогает.
И для всех связей его снимал - такой же результат.
29 eeyore
 
20.02.13
16:27
(2) Через объединение работает, я связал ЦеныНоменклатуры и ЗапасыНоменклатуры через объединение, а полученный результат связал с ВсяНоменклатура через связи наборов данных. Но это не проясняет для меня почему не работает связь между тремя наборами данных?
30 ssh2006
 
20.02.13
16:34
(0) из документации:

"В одной группировке не могут быть использованы поля из не связанных друг с другом наборов данных. При этом наборы данных, имеющие общие родительские наборы данных, связанными не считаются. Исключение сделано для полей-итогов, которые могут быть использованы в любой группировке."

Отчет будет работать, если цену и запас сделать ресурсами
31 vmlspb
 
20.02.13
16:40
Все наборы данных должны быть связаны.
Свяжи оставшиеся по ИСТИНА (можно в запросе эти поля добавить)
32 Armando
 
20.02.13
16:58
(0) Не понял в чем проблема. Отчет формируется. Ошибка не появляется