Имя: Пароль:
1C
1С v8
Сортировка в запросе с объединением
0 Droning1C
 
03.04.19
11:09
Доброго времени суток!



ВЫБРАТЬ РАЗЛИЧНЫЕ
    ЗаказПокупателя.Ссылка КАК ЗакПок,
    ЗаказПокупателя.Проведен КАК Проведен,
    ЗаказПокупателя.ПометкаУдаления КАК ПометкаУдаления
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя
ГДЕ
    ВЫБОР
            КОГДА &ЗакПок = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
                ТОГДА ЗаказПокупателя.Ссылка В
                        (ВЫБРАТЬ
                            ЗаказПокупателя.Ссылка
                        ИЗ
                            Документ.ЗаказПокупателя КАК ЗаказПокупателя
                        ГДЕ
                            ЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода)
            ИНАЧЕ ЗаказПокупателя.Ссылка = &ЗакПок
        КОНЕЦ

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ЗаказНаПроизводство.Ссылка,
    ЗаказНаПроизводство.Проведен,
    ЗаказНаПроизводство.ПометкаУдаления
ИЗ
    Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    КомплектацияНоменклатуры.Ссылка,
    КомплектацияНоменклатуры.Проведен,
    КомплектацияНоменклатуры.ПометкаУдаления
ИЗ
    Документ.КомплектацияНоменклатуры КАК КомплектацияНоменклатуры



Вот текст запроса. Какого результата хотелось бы достичь- нужно добиться такой сортировки в результате

заказПокупателя номер 103
ЗаказНаПроизводство номер 103
Комплектация номер 103
заказПокупателя номер 104
ЗаказНаПроизводство номер 104
Комплектация номер 104
заказПокупателя номер 105
ЗаказНаПроизводство номер 105
Комплектация номер 105


В запросе еще добавлю условия на ЗакНапроизводство и комплектацию, чтобы подтягивались только нужные документы, а не все. Вопрос в том как потом это отсортировать?

На данный момент выводится так-

заказПокупателя номер 103
заказПокупателя номер 104
заказПокупателя номер 105
ЗаказНаПроизводство номер 103
ЗаказНаПроизводство номер 104
ЗаказНаПроизводство номер 105
Комплектация номер 103
Комплектация номер 104
Комплектация номер 105
1 Zmich
 
03.04.19
11:13
(0). Добавь номер в каждую выборку, всю конструкцию поместить во вложенный запрос, выбрать из него, упорядочиться по номеру
2 Ёпрст
 
03.04.19
11:14
(0) выкинуть различные
потом типо так

Выбрать * ИЗ
( выбрать ... Объединить все Выбрать... )
Упорядочить по..
3 Beduin
 
03.04.19
11:15
(1) Можно просто упорядочить по добавить в конце. Только поле общее для них сделать
4 Droning1C
 
03.04.19
11:17
(1) Смысл понял. а как правильно поставить условие, чтобы подтягивались только те заказы на производство у которых номер совпадает с заказомпокупателя?
5 Droning1C
 
03.04.19
11:26
Придется городить огромные условия Выбор когда и пихать туда запросы?
6 dezss
 
03.04.19
11:27
Неужели никто не задаст вопрос "А зачем?"?
Тут было бы логичнее соединять эти таблицы, а не объединять.
7 Droning1C
 
03.04.19
11:33
(6) да тут надо мной эксперименты ставят...
8 dezss
 
03.04.19
11:42
(7) Тада в ВТ пихай все нужные номера заказов, а потом соединяй с этой ВТ все свои таблицы.
9 Droning1C
 
03.04.19
12:23
(8) ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ЗаказПокупателя.Ссылка,
    ЗаказПокупателя.Номер
ПОМЕСТИТЬ ВТЗаказы
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя
ГДЕ
    ВЫБОР
            КОГДА &ЗакПок = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
                ТОГДА ЗаказПокупателя.Ссылка В
                        (ВЫБРАТЬ
                            ЗаказПокупателя.Ссылка
                        ИЗ
                            Документ.ЗаказПокупателя КАК ЗаказПокупателя
                        ГДЕ
                            ЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода)
            ИНАЧЕ ЗаказПокупателя.Ссылка = &ЗакПок
        КОНЕЦ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЗаказНаПроизводствоПродукция.Ссылка
ПОМЕСТИТЬ ВТЗаказыНаПроизводство
ИЗ
    Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция
ГДЕ
    ЗаказНаПроизводствоПродукция.Заказ В
            (ВЫБРАТЬ
                втЗаказы.Ссылка
            ИЗ
                втЗаказы)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    взДокументы.ДокументСсылка,
    взДокументы.Проведен,
    взДокументы.Номер КАК Номер,
    взДокументы.ПометкаУдаления,
    взДокументы.Дата КАК Дата
ИЗ
    (ВЫБРАТЬ
        ЗаказНаПроизводствоПродукция.Ссылка КАК ДокументСсылка,
        ЗаказНаПроизводствоПродукция.Ссылка.Проведен КАК Проведен,
        ЗаказНаПроизводствоПродукция.Ссылка.Номер КАК Номер,
        ЗаказНаПроизводствоПродукция.Ссылка.ПометкаУдаления КАК ПометкаУдаления,
        ЗаказНаПроизводствоПродукция.Ссылка.Дата КАК Дата
    ИЗ
        Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция
    ГДЕ
        ЗаказНаПроизводствоПродукция.Заказ В
                (ВЫБРАТЬ
                    втЗаказы.Ссылка
                ИЗ
                    втЗаказы)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ЗаказПокупателя.Ссылка,
        ЗаказПокупателя.Проведен,
        ЗаказПокупателя.Номер,
        ЗаказПокупателя.ПометкаУдаления,
        ЗаказПокупателя.Дата
    ИЗ
        Документ.ЗаказПокупателя КАК ЗаказПокупателя
    ГДЕ
        ЗаказПокупателя.Ссылка В
                (ВЫБРАТЬ
                    втЗаказы.Ссылка
                ИЗ
                    втЗаказы)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        КомплектацияНоменклатуры.Ссылка,
        КомплектацияНоменклатуры.Проведен,
        КомплектацияНоменклатуры.Номер,
        КомплектацияНоменклатуры.ПометкаУдаления,
        КомплектацияНоменклатуры.Дата
    ИЗ
        Документ.КомплектацияНоменклатуры КАК КомплектацияНоменклатуры
    ГДЕ
        КомплектацияНоменклатуры.Номер В
                (ВЫБРАТЬ
                    втЗаказы.Номер
                ИЗ
                    втЗаказы)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        РеализацияТоваровУслуг.Ссылка,
        РеализацияТоваровУслуг.Проведен,
        РеализацияТоваровУслуг.Номер,
        РеализацияТоваровУслуг.ПометкаУдаления,
        РеализацияТоваровУслуг.Дата
    ИЗ
        Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    ГДЕ
        РеализацияТоваровУслуг.Сделка В
                (ВЫБРАТЬ
                    втЗаказы.Ссылка
                ИЗ
                    втЗаказы)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ОтчетПроизводстваЗаСменуПродукция.Ссылка,
        ОтчетПроизводстваЗаСменуПродукция.Ссылка.Проведен,
        ОтчетПроизводстваЗаСменуПродукция.Ссылка.Номер,
        ОтчетПроизводстваЗаСменуПродукция.Ссылка.ПометкаУдаления,
        ОтчетПроизводстваЗаСменуПродукция.Ссылка.Дата
    ИЗ
        Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
    ГДЕ
        ОтчетПроизводстваЗаСменуПродукция.Заказ В
                (ВЫБРАТЬ
                    втЗаказыНаПроизводство.Ссылка
                ИЗ
                    втЗаказыНаПроизводство)) КАК взДокументы

УПОРЯДОЧИТЬ ПО
    Номер
АВТОУПОРЯДОЧИВАНИЕ
10 Droning1C
 
03.04.19
12:26
(8) Как-то так.. Единственный момент. Номера заказовНапр, заказовПок, Комплектаций и Реализаций совпадают, А вот ОтчетПроизводстваЗаСмену имеет свою нумерацию. И в результате получается, что сортировка по номеру мне не подходит. Заказы, комплектации, реализации выстраиваются в список как мне надо, а вот Отчеты производства за смену болтаются отдельно, а надо чтобы они были логически привязаны к заказу на производство.
11 dezss
 
03.04.19
12:26
Сделайте мне "развидеть это", пожалуйста.
(9) почитай про соединения в запросах.
12 Droning1C
 
03.04.19
12:28
(11) я знаю про соединения. мне нужен результат в одной колонке.
13 Droning1C
 
03.04.19
12:29
(11) соединениями тут все делается очень просто. А нужно так, как поставлена задача)))
14 catena
 
03.04.19
12:30
(10)Связывай их логически по номеру связного документа.
15 bolobol
 
03.04.19
12:34
Не понял, в чём сложность отсортировать по номеру, если надо и по типу документа?
16 bolobol
 
03.04.19
12:36
(10) Надо - привяжите их "логически к заказу на производство". Пока данные не привязаны - никаким запросом не выбрать то чего нет.
17 Droning1C
 
03.04.19
12:40
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ЗаказПокупателя.Ссылка,
    ЗаказПокупателя.Номер
ПОМЕСТИТЬ ВТЗаказы
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя
ГДЕ
    ВЫБОР
            КОГДА &ЗакПок = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
                ТОГДА ЗаказПокупателя.Ссылка В
                        (ВЫБРАТЬ
                            ЗаказПокупателя.Ссылка
                        ИЗ
                            Документ.ЗаказПокупателя КАК ЗаказПокупателя
                        ГДЕ
                            ЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода)
            ИНАЧЕ ЗаказПокупателя.Ссылка = &ЗакПок
        КОНЕЦ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЗаказНаПроизводствоПродукция.Ссылка
ПОМЕСТИТЬ ВТЗаказыНаПроизводство
ИЗ
    Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция
ГДЕ
    ЗаказНаПроизводствоПродукция.Заказ В
            (ВЫБРАТЬ
                втЗаказы.Ссылка
            ИЗ
                втЗаказы)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    взДокументы.ДокументСсылка,
    взДокументы.Проведен,
    взДокументы.ПометкаУдаления,
    взДокументы.Номер КАК Номер
ИЗ
    (ВЫБРАТЬ
        ЗаказНаПроизводствоПродукция.Ссылка КАК ДокументСсылка,
        ЗаказНаПроизводствоПродукция.Ссылка.Проведен КАК Проведен,
        ЗаказНаПроизводствоПродукция.Ссылка.Номер КАК Номер,
        ЗаказНаПроизводствоПродукция.Ссылка.ПометкаУдаления КАК ПометкаУдаления,
        ЗаказНаПроизводствоПродукция.Ссылка.Дата КАК Дата
    ИЗ
        Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция
    ГДЕ
        ЗаказНаПроизводствоПродукция.Заказ В
                (ВЫБРАТЬ
                    втЗаказы.Ссылка
                ИЗ
                    втЗаказы)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ЗаказПокупателя.Ссылка,
        ЗаказПокупателя.Проведен,
        ЗаказПокупателя.Номер,
        ЗаказПокупателя.ПометкаУдаления,
        ЗаказПокупателя.Дата
    ИЗ
        Документ.ЗаказПокупателя КАК ЗаказПокупателя
    ГДЕ
        ЗаказПокупателя.Ссылка В
                (ВЫБРАТЬ
                    втЗаказы.Ссылка
                ИЗ
                    втЗаказы)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        КомплектацияНоменклатуры.Ссылка,
        КомплектацияНоменклатуры.Проведен,
        КомплектацияНоменклатуры.Номер,
        КомплектацияНоменклатуры.ПометкаУдаления,
        КомплектацияНоменклатуры.Дата
    ИЗ
        Документ.КомплектацияНоменклатуры КАК КомплектацияНоменклатуры
    ГДЕ
        КомплектацияНоменклатуры.Номер В
                (ВЫБРАТЬ
                    втЗаказы.Номер
                ИЗ
                    втЗаказы)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        РеализацияТоваровУслуг.Ссылка,
        РеализацияТоваровУслуг.Проведен,
        РеализацияТоваровУслуг.Номер,
        РеализацияТоваровУслуг.ПометкаУдаления,
        РеализацияТоваровУслуг.Дата
    ИЗ
        Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    ГДЕ
        РеализацияТоваровУслуг.Сделка В
                (ВЫБРАТЬ
                    втЗаказы.Ссылка
                ИЗ
                    втЗаказы)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ОтчетПроизводстваЗаСменуПродукция.Ссылка,
        ОтчетПроизводстваЗаСменуПродукция.Ссылка.Проведен,
        ОтчетПроизводстваЗаСменуПродукция.Заказ.Номер,
        ОтчетПроизводстваЗаСменуПродукция.Ссылка.ПометкаУдаления,
        ОтчетПроизводстваЗаСменуПродукция.Ссылка.Дата
    ИЗ
        Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
    ГДЕ
        ОтчетПроизводстваЗаСменуПродукция.Заказ В
                (ВЫБРАТЬ
                    втЗаказыНаПроизводство.Ссылка
                ИЗ
                    втЗаказыНаПроизводство)) КАК взДокументы

УПОРЯДОЧИТЬ ПО
    Номер
АВТОУПОРЯДОЧИВАНИЕ
18 Droning1C
 
03.04.19
12:40
Сделал вот так, все получилось
19 dezss
 
03.04.19
12:57
(12) Тогда почему используешь конструкцию вида
ГДЕ
        ОтчетПроизводстваЗаСменуПродукция.Заказ В
                (ВЫБРАТЬ
                    втЗаказыНаПроизводство.Ссылка
                ИЗ
                    втЗаказыНаПроизводство)) КАК взДокументы

а не так:
внутреннее соединение втЗаказыНаПроизводство как втЗаказыНаПроизводство
по ОтчетПроизводстваЗаСменуПродукция.Заказ = втЗаказыНаПроизводство.Ссылка
20 dezss
 
03.04.19
12:58
(13) соединения можно использовать не только для, собственно, соединения, но и для ограничения выборки