|
СКД ошибка при выполнении отчета | ☑ | ||
---|---|---|---|---|
0
vadimegorov
01.02.18
✎
17:42
|
Доброго времени суток!
Имеем следующее: два набора данных Набор1 - это таблица значений, Набор2 - запрос. Левое соединение от набора2 к набору1 без всяких условий по общему полю. В результирующих данных имеем, кроме всего прочего, два реквизита "ЗаказПокупателя" и "ЗаказПоставщику". Всё работает отлично до тех пор пока я не пытаюсь вывести одновременно два любых дочерних поля из этих указанных реквизитов. Например, "ЗаказПокупателя.Отвественный" и "ЗаказПоставщику.ВидОперации". Вываливается ошибка: "Использование полей из не связанных наборов данных не допустимо". При этом есть реквизит "Номенклатура" и если использовать его дочернее поле (например, "Артикул") с любым из указанных - то всё нормально. Хелп, люди, что оно хочет от меня? |
|||
1
vadimegorov
01.02.18
✎
17:48
|
Набор2(запрос)
ХарактеристикаНоменклатуры Набор1(таблица) ХарактеристикаНоменклатуры ЗаказПокупателя ЗаказПоставщику Такой вывод отчета работает нормально: ХарактеристикаНоменклатуры ЗаказПокупателя ЗаказПоставщику Такой нет: ХарактеристикаНоменклатуры ЗаказПоставщику.Отвественный ЗаказПокупателя.Номер |
|||
2
Defender aka LINN
01.02.18
✎
19:36
|
(0) "Левое соединение от набора2 к набору1 без всяких условий" - это тебе кто сказал, что у тебя так?
|
|||
3
Фрэнки
01.02.18
✎
19:44
|
судя по тексту в пост 1 - там вообще никакого соединения не будет, т.к. все три выбираемых поля изнутри одного и того же Набор1 и пример, как минимум, неудачный. Т.к. заставляет думать, что Набор1 не работает сам по себе, а не в соединении с набор2
И в примере такого примитивного уровня вовсе не видно необходимости создания двух наборов, а не одного запроса в Набор1 |
|||
4
vadimegorov
01.02.18
✎
22:20
|
(3) Необходимость создания набора с запросом обусловлена тем, что нужно сделать отбор по свойствам и категориям характеристики номенклатуры. В наборе с таблицей это сделать средствами СКД нельзя. Поэтому требуется соединение с запросом.
|
|||
5
vadimegorov
01.02.18
✎
22:21
|
(2) Это мне сказала документация. Связь наборов данных осуществляется через левое внешнее соединение.
|
|||
6
Фрэнки
01.02.18
✎
22:22
|
(4) понятно. Я бы пробовал все эти "через точку" вставить полями запроса.
|
|||
7
vadimegorov
01.02.18
✎
22:26
|
(6) Это крайний и "костыльный" вариант. Количество реквизитов в документе довольно много. Сегодня юзерам может потребоваться одно поле, завтра другое, послезавтра в документ реквизиты добавятся - не переписывать же отчет сто раз ((
|
|||
8
Фрэнки
01.02.18
✎
22:34
|
(7) сам подход протести. хотя пишешь выше, что ссылки ЗаказПокупателя ЗаказПоставщику - рабочие
|
|||
9
vadimegorov
01.02.18
✎
22:38
|
(8) методом научного тыка было выяснено следующее. Если в запрос добавить поле номенклатура и в таблицу добавить его, то дочерние поля номенклатуры получается выводить в отчет с дочерними полями заказа покупателя. Если в одном из наборов поле номенклатуры отсутствует и попытаться вывести дочернее поле, то такая же ошибка возникает... Жесть какая-то. Получается надо лепить объединение полей заказа покупателя и заказа поставщика с запросом и потом соединяться к этому объединению таблицей.
|
|||
10
Фрэнки
01.02.18
✎
22:58
|
Похоже на то, как в обычном левом соединении для ЕСТЬNULL подкладывать приходится типизированную пустую ссылку.
з.ы. Не знаю только, понятна ли моя мысль |
|||
11
Franchiser
гуру
02.02.18
✎
00:29
|
Поставь у поля Номенклатура флажок обязательное
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |