Имя: Пароль:
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) Когда пишешь ВЫРАЗИТЬ() тогда конструктор запроса тебе даёт выбрать реквизит.
Номенклатура.Код (опятьже без конструктора это можно руками писать без ВЫРАЗИТЬ)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.