Имя: Пароль:
1C
1С v8
возможно ли ТаблицаЗначении объединить с Запросом
0 Popkorm
 
25.10.11
16:27
Есть Таб1= ТабЗначений,есть Запрос.Хочу объединить Таб1 с Запрос.В Объединеном запросе мне так же нужны все поля из Таб1(Как это можно сделать)............Через Номенклатура в (Выбрать Таб1.Номенклатура из Таб1)я получу только Номенклатуру,а остальные поля как?!

И далее объединеный Запрос буду выводить Тор 100 продаж(по типу "ПЕРВЫЕ 100")


       МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
       Запрос = Новый Запрос;
       Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
       Запрос.Текст ="ВЫБРАТЬ РАЗРЕШЕННЫЕ
                     |    Таб1.Номенклатура,
                     |    Таб1.Код,
                     |    Таб1.ISBN,
                     |    Таб1.Количество КАК Количество
                     |ПОМЕСТИТЬ времТаб
                     |ИЗ
                     |    &Таб1 КАК Таб1
                     |;
                     |
                     |////////////////////////////////////////////////////////////////////////////////
                     |ВЫБРАТЬ
                     |    Таб1.Номенклатура,
                     |    Таб1.Код,
                     |    Таб1.ISBN,
                     |    СУММА(Таб1.Количество) КАК Количество
                     |ИЗ
                     |    времТаб КАК Таб1
                     |
                     |СГРУППИРОВАТЬ ПО
                     |    Таб1.Номенклатура,
                     |    Таб1.Код,
                     |    Таб1.ISBN"  
                ;
       Запрос.УстановитьПараметр("Таб1",Таб1);              
       Запрос.Выполнить();
       //
       Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                      |    ПродажиКонтрагентов.Номенклатура.Код КАК Код,
                      |    ПродажиКонтрагентов.Номенклатура КАК Номенклатура,
                      |    ПродажиКонтрагентов.КоличествоОборот КАК Количество,
                      |    ЦеныНоменклатуры.Цена,
                      |    ПродажиКонтрагентов.КоличествоОборот * ЦеныНоменклатуры.Цена КАК Сумма,
                      |    ПродажиКонтрагентов.Контрагент КАК Контрагент
                      |ИЗ
                      |    (ВЫБРАТЬ
                      |        ДвиженияТовараУКонтрагентовОбороты.Номенклатура КАК Номенклатура,
                      |        СУММА(ДвиженияТовараУКонтрагентовОбороты.КоличествоОборот) КАК КоличествоОборот,
                      |        ДвиженияТовараУКонтрагентовОбороты.Контрагент КАК Контрагент
                      |    ИЗ
                      |        РегистрНакопления.ДвиженияТовараУКонтрагентов.Обороты(&ДатаНачала, &ДатаКонца, , ) КАК ДвиженияТовараУКонтрагентовОбороты
                      |    ГДЕ
                      |        ДвиженияТовараУКонтрагентовОбороты.ВидДвиженияПриходРасход = &Расход
                      |        И ДвиженияТовараУКонтрагентовОбороты.ВидОперацииСТоваром = &КупляПродажа
                      |        И (НЕ ДвиженияТовараУКонтрагентовОбороты.Контрагент = &ВыбКонтрагент)
                      |        И (НЕ ДвиженияТовараУКонтрагентовОбороты.Контрагент = &ВыбКонтрагент1)
                      |    
                      |    СГРУППИРОВАТЬ ПО
                      |        ДвиженияТовараУКонтрагентовОбороты.Номенклатура,
                      |        ДвиженияТовараУКонтрагентовОбороты.Контрагент) КАК ПродажиКонтрагентов
                      |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                      |            ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
                      |            ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
                      |        ИЗ
                      |            РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
                      |        ГДЕ
                      |            ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен) КАК ЦеныНоменклатуры
                      |        ПО ПродажиКонтрагентов.Номенклатура = ЦеныНоменклатуры.Номенклатура
                      |
                      |УПОРЯДОЧИТЬ ПО
                      |    Контрагент,
                      |    Номенклатура" ;
1 Megas
 
25.10.11
16:28
Номенклатуру можно ВЫРАЗИТЬ() а ещё можно без Конструктора запроса... пиши смело будет работать!
2 Popkorm
 
25.10.11
16:40
(1)блин теперь в Запросе2 таблицу Таб1 не видит,а зачем ВЫРАЗИТЬ() ?!Что переобразовывать то?!
3 Reset
 
25.10.11
16:43
(2) "ПОМЕСТИТЬ времТаб"
Как он будет видеть Таб1?
4 sivalor
 
25.10.11
16:57
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
|    Таб1.Номенклатура,
|    Таб1.Код,
|    Таб1.ISBN,
|    Таб1.Количество КАК Количество
|ПОМЕСТИТЬ времТаб
|ИЗ
|    &Таб1 КАК Таб1
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    Таб1.Номенклатура,
|    Таб1.Код,
|    Таб1.ISBN,
|    СУММА(Таб1.Количество) КАК Количество
|ИЗ
|    времТаб КАК Таб1
|
|СГРУППИРОВАТЬ ПО
|    Таб1.Номенклатура,
|    Таб1.Код,
|    Таб1.ISBN
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
|    ПродажиКонтрагентов.Номенклатура.Код КАК Код,
|    ПродажиКонтрагентов.Номенклатура КАК Номенклатура,
|    ПродажиКонтрагентов.КоличествоОборот КАК Количество,
|    ЦеныНоменклатуры.Цена,
|    ПродажиКонтрагентов.КоличествоОборот * ЦеныНоменклатуры.Цена КАК Сумма,
|    ПродажиКонтрагентов.Контрагент КАК Контрагент
|ПОМЕСТИТЬ ВременнаяТаблицаПродаж
|ИЗ
|    (ВЫБРАТЬ
|        ДвиженияТовараУКонтрагентовОбороты.Номенклатура КАК Номенклатура,
|        СУММА(ДвиженияТовараУКонтрагентовОбороты.КоличествоОборот) КАК КоличествоОборот,
|        ДвиженияТовараУКонтрагентовОбороты.Контрагент КАК Контрагент
|    ИЗ
|        РегистрНакопления.ДвиженияТовараУКонтрагентов.Обороты(&ДатаНачала, &ДатаКонца, , ) КАК ДвиженияТовараУКонтрагентовОбороты
|    ГДЕ
|         ДвиженияТовараУКонтрагентовОбороты.ВидДвиженияПриходРасход = &Расход
|        И ДвиженияТовараУКонтрагентовОбороты.ВидОперацииСТоваром = &КупляПродажа
|        И (НЕ ДвиженияТовараУКонтрагентовОбороты.Контрагент = &ВыбКонтрагент)
|        И (НЕ ДвиженияТовараУКонтрагентовОбороты.Контрагент = &ВыбКонтрагент1)
|    
|    СГРУППИРОВАТЬ ПО
|        ДвиженияТовараУКонтрагентовОбороты.Номенклатура,
|        ДвиженияТовараУКонтрагентовОбороты.Контрагент) КАК ПродажиКонтрагентов
|        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
|            ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
|            ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
|        ИЗ
|            РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
|        ГДЕ
|            ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен) КАК ЦеныНоменклатуры
|        ПО ПродажиКонтрагентов.Номенклатура = ЦеныНоменклатуры.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    времТаб.Номенклатура КАК Номенклатура,
|    времТаб.Код,
|    времТаб.ISBN,
|    времТаб.Количество,
|    ВременнаяТаблицаПродаж.Количество КАК Количество1,
|    ВременнаяТаблицаПродаж.Цена,
|    ВременнаяТаблицаПродаж.Сумма,
|    ВременнаяТаблицаПродаж.Контрагент КАК Контрагент
|ИЗ
|    времТаб КАК времТаб
|        ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаПродаж КАК ВременнаяТаблицаПродаж
|        ПО времТаб.Номенклатура = ВременнаяТаблицаПродаж.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
|    Номенклатура,
|    Контрагент";

Запрос.УстановитьПараметр("Таб1",Таб1);
5 Megas
 
25.10.11
17:11
(2) Когда пишешь ВЫРАЗИТЬ() тогда конструктор запроса тебе даёт выбрать реквизит.
Номенклатура.Код (опятьже без конструктора это можно руками писать без ВЫРАЗИТЬ)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn