Имя: Пароль:
1C
1С v8
Последний поставщик в запросе
0 picom
 
18.10.13
13:11
Вот запрос
Я хочу в левом соединении получить данные последнего поступления, а именно - контрагента.
БП 1,6
Подскажите, почему нет данных если во вложенном запросе делаю выбрать первые 1?

ВЫБРАТЬ
    СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура КАК Комплектующая,
    СпецификацииНоменклатурыИсходныеКомплектующие.Количество КАК КоличествоКомплектующих,
    СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка.Владелец КАК Препарат,
    СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка.Количество КАК КоличествоПрепарата,
    ВложенныйЗапрос.Контрагент
ИЗ
    Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1
            ПоступлениеТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
            ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура
        ИЗ
            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        
        УПОРЯДОЧИТЬ ПО
            ПоступлениеТоваровУслугТовары.Ссылка.Номер УБЫВ) КАК ВложенныйЗапрос
        ПО СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура = ВложенныйЗапрос.Номенклатура
1 pessok
 
18.10.13
13:42
Потому что ты выбираешь просто ПЕРВОЕ поступление, а уже ПОТОМ оно соединяется со спецификациями. Классика же
2 picom
 
18.10.13
13:43
(1) пожалуйста, научите
3 viktor_vv
 
18.10.13
13:46
Это если по бысирому, но тормознуто

      ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПоступлениеТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
            ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура
        ИЗ
            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        Где ПоступлениеТоваровУслугТовары.Ссылка в
        (ВЫБРАТЬ Первые 1
            ПоступлениеТоваровУслугТовары.Ссылка
        ИЗ
            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        Где ПоступлениеТоваровУслугТовары.Ссылка в
          
        УПОРЯДОЧИТЬ ПО
            ПоступлениеТоваровУслугТовары.Ссылка.Номер УБЫВ
         )          
) КАК ВложенныйЗапрос
        ПО СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура = ВложенныйЗапрос.Номенклатура
4 viktor_vv
 
18.10.13
13:50
*по быстрому.

Точнее так

      ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПоступлениеТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
            ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура
        ИЗ
            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        Где ПоступлениеТоваровУслугТовары.Ссылка в
        (ВЫБРАТЬ Первые 1
            ПоступлениеТоваровУслугТовары2.Ссылка
        ИЗ
            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары2
        Где    ПоступлениеТоваровУслугТовары2.Номенклатура = ПоступлениеТоваровУслугТовары.Номенклатура
        УПОРЯДОЧИТЬ ПО
            ПоступлениеТоваровУслугТовары2.Ссылка.Номер УБЫВ
         )          
) КАК ВложенныйЗапрос
        ПО СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура = ВложенныйЗапрос.Номенклатура
5 picom
 
18.10.13
13:53
(4) выводит последнего поставщика, но по каждому поступлению
6 viktor_vv
 
18.10.13
13:53
Нц и сортировать лучше по

        УПОРЯДОЧИТЬ ПО
            ПоступлениеТоваровУслугТовары2.Дата УБЫВ , ПоступлениеТоваровУслугТовары2.Ссылка
7 pessok
 
18.10.13
14:01
щас отрою, в ЗУПе как то делал
8 viktor_vv
 
18.10.13
14:01
Ну да, там надо таки посворачивать и лучше через временные таблицы, много букв получается.
9 pessok
 
18.10.13
14:04
ГДЕ РаботникиОрганизаций.Период В
    (ВЫБРАТЬ ПЕРВЫЕ 1
        Регистраторы.Период
    ИЗ
        РегистрСведений.РаботникиОрганизаций.СрезПоследних(ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, 1)) КАК Регистраторы
    ГДЕ
        Регистраторы.Сотрудник.Физлицо = РаботникиОрганизаций.Сотрудник.Физлицо
    УПОРЯДОЧИТЬ ПО
        Регистраторы.Период УБЫВ)
10 viktor_vv
 
18.10.13
14:05
А, или вот так

   Где (ПоступлениеТоваровУслугТовары.Ссылка,ПоступлениеТоваровУслугТовары.Номенклатура) в
        (ВЫБРАТЬ Первые 1
            ПоступлениеТоваровУслугТовары2.Ссылка,
            ПоступлениеТоваровУслугТовары2.Номенклатура
11 picom
 
18.10.13
14:06
а можно весь текст, а то уже не понимаю куда воткнуть
12 pessok
 
18.10.13
14:07
(11) просто в секуцию где, вместо вложенного запроса
13 pessok
 
18.10.13
14:08
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВЫБОР
        КОГДА РаботникиОрганизаций.Должность = ЗНАЧЕНИЕ(Справочник.ДолжностиОрганизаций.ПустаяСсылка)
            ТОГДА РаботникиОрганизаций.ДолжностьЗавершения
        ИНАЧЕ РаботникиОрганизаций.Должность
    КОНЕЦ КАК Должность,
    РаботникиОрганизаций.ПричинаИзмененияСостояния,
    ВЫБОР
        КОГДА РаботникиОрганизаций.ПодразделениеОрганизации = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
            ТОГДА РаботникиОрганизаций.ПодразделениеОрганизацииЗавершения
        ИНАЧЕ РаботникиОрганизаций.ПодразделениеОрганизации
    КОНЕЦ КАК ПодразделениеОрганизации,
    РаботникиОрганизаций.Сотрудник.Физлицо КАК ФизЛицо,
    РаботникиОрганизаций.Регистратор,
    РаботникиОрганизаций.ЗанимаемыхСтавок
ПОМЕСТИТЬ ДанныеСотрудника
ИЗ
    РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
    РаботникиОрганизаций.Период В
            (ВЫБРАТЬ ПЕРВЫЕ 1
                Регистраторы.Период
            ИЗ
                РегистрСведений.РаботникиОрганизаций.СрезПоследних(ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, 1)) КАК Регистраторы
            ГДЕ
                Регистраторы.Сотрудник.Физлицо = РаботникиОрганизаций.Сотрудник.Физлицо
            УПОРЯДОЧИТЬ ПО
                Регистраторы.Период УБЫВ)

ИНДЕКСИРОВАТЬ ПО
    ФизЛицо
;
14 viktor_vv
 
18.10.13
14:11
(11)

      ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПоступлениеТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
            ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура
        ИЗ
            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        Где (ПоступлениеТоваровУслугТовары.Ссылка,ПоступлениеТоваровУслугТовары.Номенклатура) в
        (ВЫБРАТЬ Первые 1
            ПоступлениеТоваровУслугТовары2.Ссылка,
            ПоступлениеТоваровУслугТовары2.Номенклатура
        ИЗ
            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары2
        Где    ПоступлениеТоваровУслугТовары2.Номенклатура = ПоступлениеТоваровУслугТовары.Номенклатура
        УПОРЯДОЧИТЬ ПО
            ПоступлениеТоваровУслугТовары2.Ссылка.Номер УБЫВ
         )          
) КАК ВложенныйЗапрос
        ПО СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура = ВложенныйЗапрос.Номенклатура
15 viktor_vv
 
18.10.13
14:12
Ну упорядочить только замени

        УПОРЯДОЧИТЬ ПО
            ПоступлениеТоваровУслугТовары2.Дата УБЫВ,ПоступлениеТоваровУслугТовары2.Ссылка
16 viktor_vv
 
18.10.13
14:21
А, тьфу блин, вот здесь группировать

      ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПоступлениеТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
            ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура
        ИЗ
            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        Где (ПоступлениеТоваровУслугТовары.Ссылка,ПоступлениеТоваровУслугТовары.Номенклатура) в
        (ВЫБРАТЬ Первые 1
            ПоступлениеТоваровУслугТовары2.Ссылка,
            ПоступлениеТоваровУслугТовары2.Номенклатура
        ИЗ
            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары2
        Где    ПоступлениеТоваровУслугТовары2.Номенклатура = ПоступлениеТоваровУслугТовары.Номенклатура
        УПОРЯДОЧИТЬ ПО
            ПоступлениеТоваровУслугТовары2.Дата УБЫВ,ПоступлениеТоваровУслугТовары2.Ссылка
         )          
Группировать ПО
ПоступлениеТоваровУслугТовары.Ссылка.Контрагент,
ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура
) КАК ВложенныйЗапрос

но зело тормознуто будет
17 picom
 
22.10.13
11:27
Не понимаю, как сделать, объясните