Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> СКД: Левое соединение с условием          
andreykyiv@bigmi... Подменю пользователя
сообщение 21.11.18, 10:20
Сообщение #1

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 243
Из: Киев
Спасибо сказали: 36 раз
Рейтинг: 40.2

Нужно вывести в отчет товары, харатеристики и значение нескольких свойств в поля.
Делаю выборку товаров, их характеристик, значения свойств получаю соединяя с регистром значений свойств.

Запрос
ВЫБРАТЬ
    ВТ.Владелец КАК Номенклатура,
    ВТ.Ссылка КАК Характеристика,
    Штрихкоды.Штрихкод КАК Штрихкод,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
    ПеремещениеТоваровТовары.Ссылка КАК ДокументПеремещение,
    ПеремещениеТоваровТовары.ХарактеристикаНоменклатуры,
    ЕСТЬNULL(КодЦвета.Значение, "") КАК КодЦвета,
    Цвет.Значение КАК Цвет,
    Пол.Значение КАК Пол,
    ДатаПроизвод.Значение КАК ДатаПроизводства
ИЗ
    Справочник.ХарактеристикиНоменклатуры КАК ВТ
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
        ПО ВТ.Владелец = Штрихкоды.Владелец
            И ВТ.Ссылка = Штрихкоды.ХарактеристикаНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
        ПО ВТ.Ссылка = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК КодЦвета
        ПО ВТ.Ссылка = КодЦвета.Объект
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК Цвет
        ПО ВТ.Ссылка = Цвет.Объект
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК Пол
        ПО ВТ.Ссылка = Пол.Объект
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ДатаПроизвод
        ПО ВТ.Ссылка = ДатаПроизвод.Объект,
    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
ГДЕ
    Цвет.Свойство = &СвойствоЦвет
    И КодЦвета.Свойство = &СвойствоКодЦвета
    И Пол.Свойство = &СвойствоПол
    И ДатаПроизвод.Свойство = &СвойствоДатаПр

СГРУППИРОВАТЬ ПО
    Штрихкоды.Штрихкод,
    ЦеныНоменклатурыСрезПоследних.Цена,
    ПеремещениеТоваровТовары.Ссылка,
    ПеремещениеТоваровТовары.ХарактеристикаНоменклатуры,
    Цвет.Значение,
    Пол.Значение,
    ДатаПроизвод.Значение,
    ВТ.Ссылка,
    ВТ.Владелец,
    ЕСТЬNULL(КодЦвета.Значение, "")

УПОРЯДОЧИТЬ ПО
    Номенклатура,
    Характеристика,
    Штрихкод,
    Цена,
    КодЦвета,
    Цвет,
    Пол,
    ДатаПроизводства


Но проблема в том, что если значение свойтства не определено, то такая позиция в отчет не выводится.
Потому что:
"если есть отбор (на уровне всего отчета)по полям из «подчиненного» набора — Соединение внутреннее,
Если в группировке участвует поле из «подчиненного» набора
соединение так же внутреннее"
[необходимо зарегистрироваться для просмотра ссылки]

Что тогда делать? Как выйти из ситуации? upset.gif



andreykyiv@bigmir.net @ Сегодня, 10:17 * ,

Пытался обойти через использование ЕСТЬNULL(КодЦвета.Значение, ""), это можно видеть в коде.. но не вариант.
Если есть условие на подчиненную таблицу, то соединение становится внутренним. ((

Сообщение отредактировал Vofka - 21.11.18, 11:15

sava1 Подменю пользователя
сообщение 21.11.18, 10:39
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

сделать выборку в тз и скормить это СКД

Мичман Харитонов Подменю пользователя
сообщение 21.11.18, 11:07
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 164
Из: м. Кам'янське
Спасибо сказали: 26 раз
Рейтинг: 0

А если вместо параметров использовать поля в Отборе?
Так покажет все.

Вернее, отберет все. Отбор будет накладываться уже на эту выборку

andreykyiv@bigmi... Подменю пользователя
сообщение 21.11.18, 12:38
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 243
Из: Киев
Спасибо сказали: 36 раз
Рейтинг: 40.2

Мичман Харитонов @ Сегодня, 11:07 * ,

не понял идеи, сорри

Вроде бы получилось.
Сделал еще один набор данных. Соединение Наборов данных - там 100% работает левое соединение. Для свойства "КодЦвета". Текст немного более громоздкий получается, но не это главное.
Боялся, что будут тормоза на больших объемах.
Так что интересно, отчет стал выдаваться даже быстрее. Закончу все свойства так описывать, отчитаюсь

Создал наборы данных из нужных мен "ЗначениеСвойствОбъектов", соединяю их с основной таблицей Характеристик.
Все работает



Но главное другое: скорость отчета хорошая, т.е. выборка свойств идет хоть и из отдельных наборов, но достаточно быстро.
Наверное итоговый запрос к базе оптимизируется

sava1 @ Сегодня, 10:39 * ,

совсем непонятно что имеется в виду ((

sava1 Подменю пользователя
сообщение 21.11.18, 13:01
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(andreykyiv@bigmir.net @ 21.11.18, 12:38) *
совсем непонятно что имеется в виду ((


Выборку получить простым запросом и уже готовый набор передать в СКД

А зачем в запросе Полное соединение по ценам и штрихкодам? Сервер имеете мощный? простаивает?

Сообщение отредактировал sava1 - 21.11.18, 13:03

Спасибо сказали: andreykyiv@bigmir.net,

andreykyiv@bigmi... Подменю пользователя
сообщение 21.11.18, 14:20
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 243
Из: Киев
Спасибо сказали: 36 раз
Рейтинг: 40.2

andreykyiv@bigmir.net @ Сегодня, 12:38 * ,

К моему решению есть одно замечание: в настройке связи НаборовДанных обязательная "галочка" "ОбязательнаяСвязь"



sava1 @ Сегодня, 13:01 * ,

Блин, спасибо за замечание. То я экспериментировал, конечно левое нужно прописать.
Исправил

Цитата(sava1 @ 21.11.18, 13:01) *
Выборку получить простым запросом и уже готовый набор передать в СКД


Выборку Характеристик или свойств? Не могу понять идею

Цитата(sava1 @ 21.11.18, 13:01) *
А зачем в запросе Полное соединение по ценам и штрихкодам? Сервер имеете мощный? простаивает?


Уже убрал, прописал "Левое соединение". Спасибо за замечание, то я экспериментировал, искал решение. И забыл вернуть

alex1c Подменю пользователя
сообщение 21.11.18, 14:33
Сообщение #7

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 235
Спасибо сказали: 45 раз
Рейтинг: 40

а что закладку в запросе Характеристики нельзя использовать?

sava1 Подменю пользователя
сообщение 21.11.18, 15:48
Сообщение #8

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(andreykyiv@bigmir.net @ 21.11.18, 14:20) *
Выборку Характеристик или свойств? Не могу понять идею


что хотите - готовую выборку для вывода.

нужные данные выбираете запросом в Таблицу значений и ее передаете в СКД как источник данных.

andreykyiv@bigmi... Подменю пользователя
сообщение 21.11.18, 16:18
Сообщение #9

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 243
Из: Киев
Спасибо сказали: 36 раз
Рейтинг: 40.2

Цитата(alex1c @ 21.11.18, 14:33) *
а что закладку в запросе Характеристики нельзя использовать?


Нужно отчет выводить в жестко заданный макет. Кроме того появилась необходимость вывести в макет поле типа "Цвет+ КодЦвета" и другие "приколы"

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 4:09
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!