Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запрос по разным видам номенклатуры

Запрос по разным видам номенклатуры
Я
   Cyrix
 
12.10.20 - 19:05
Всех приветствую!
Помогите выбрать номенклатуру с двумя видами цен. Пишу запрос, но получаю ничеВо. И ничиВа получаю много.

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    ЦеныНоменклатуры.Номенклатура.Код КАК Код,
               |    ЦеныНоменклатуры.Номенклатура.Наименование КАК Наименование,
               |    ЦеныНоменклатуры.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
               |    ЦеныНоменклатуры.Номенклатура.Родитель КАК НоменклатураРодитель,
               |    ЦеныНоменклатуры.Цена КАК Цена,
               |    ЦеныНоменклатуры.ВидЦен КАК ВидЦен
               |ИЗ
               |    РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
               |ГДЕ
               |    ЦеныНоменклатуры.ВидЦен.Код = &УчетнаяЦенаШГ
               | И    ЦеныНоменклатуры.ВидЦен.Код = &Розничная";


    УчетнаяЦенаШГ = Справочники.ВидыЦен.НайтиПоКоду("УФ-000003").Код;
    Розничная = Справочники.ВидыЦен.НайтиПоКоду("UN-000001").Код;
    Запрос.Параметры.Вставить("УчетнаяЦенаШГ",УчетнаяЦенаШГ);
    Запрос.Параметры.Вставить("Розничная",Розничная);
    РезультатЗапроса = Запрос.Выполнить();

https://ibb.co/xhjc39C
   Prog111
 
1 - 12.10.20 - 19:12
(0) Ну смотри - ты выбираешь записи регистра сведений, и пытаешься, чтобы у одной записи выполнялось сразу 2 условия - чтобы это был вид цены "УчетнаяЦенаШГ" и "Розничная". Но так не бывает у одной записи.
   Cyrix
 
2 - 12.10.20 - 19:12
если только ЦеныНоменклатуры.ВидЦен.Код = &УчетнаяЦенаШГ
или только ЦеныНоменклатуры.ВидЦен.Код = &Розничная"
то всё работает, но мне надо обе колонки
   Cyrix
 
3 - 12.10.20 - 19:13
(1) Как правильно сделать? Вложенный запрос?
   RomanYS
 
4 - 12.10.20 - 19:14
(3) соединение
   Cyrix
 
5 - 12.10.20 - 19:15
(4) чего с чем?
   Cyrix
 
6 - 12.10.20 - 19:20
регистр вроде бы один
   Василий Алибабаевич
 
7 - 12.10.20 - 19:21
(6) Двух запросов к одному регистру. Один запрос выберет цену "УчетнаяЦенаШГ". Другой - "Розничная".
   Cyrix
 
8 - 12.10.20 - 19:24
(7) проблема в том, что я не знаю как их соединить
   Cyrix
 
9 - 12.10.20 - 21:13
Запрос.Текст = "ВЫБРАТЬ
               |    ЦеныНоменклатурыСрезПоследних.ВидЦен КАК ВидЦен,
               |    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
               |    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
               |ИЗ
               |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ) КАК ЦеныНоменклатурыСрезПоследних
           |ГДЕ
               |    ЦеныНоменклатурыСрезПоследних.ВидЦен.Код = &УчетнаяЦенаШГ";
               | ВЫБРАТЬ
               |    ЦеныНоменклатурыСрезПоследних.ВидЦен КАК ВидЦен,
               |    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
               |    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
               |ИЗ
               |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ) КАК ЦеныНоменклатурыСрезПоследних
           |ГДЕ
               |    ЦеныНоменклатурыСрезПоследних.ВидЦен.Код = &Розничная";


Как их соединить?
   RomanYS
 
10 - 12.10.20 - 21:16
(9) хотя бы посмотри, что такое соединение

...
по
ЦеныНоменклатурыСрезПоследних1.Номенклатура = ЦеныНоменклатурыСрезПоследних2.Номенклатура
И ЦеныНоменклатурыСрезПоследних1.ВидЦен = &УчетнаяЦенаШГ
И ЦеныНоменклатурыСрезПоследних2.ВидЦен = &Розничная
   Cyrix
 
11 - 12.10.20 - 21:26
ЦеныНоменклатурыСрезПоследних1 и ЦеныНоменклатурыСрезПоследних2 - это что за таблицы?
   RomanYS
 
12 - 12.10.20 - 21:41
(11) Что такое соединение ты уже знаешь?
   Cyrix
 
13 - 12.10.20 - 21:50
О дааа!
Вот что такое соединение:

Запрос.Текст = "ВЫБРАТЬ
               |    ЦеныНоменклатурыСрезПоследних.Период КАК Период,
               |    ЦеныНоменклатурыСрезПоследних.ВидЦен КАК ВидЦен,
               |    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
               |    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
               |    ЦеныНоменклатурыСрезПоследних1.Период КАК Период1,
               |    ЦеныНоменклатурыСрезПоследних1.ВидЦен КАК ВидЦен1,
               |    ЦеныНоменклатурыСрезПоследних1.Номенклатура КАК Номенклатура1,
               |    ЦеныНоменклатурыСрезПоследних1.Цена КАК Цена1
               |ИЗ
               |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ) КАК ЦеныНоменклатурыСрезПоследних
               |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК 
                 ЦеныНоменклатурыСрезПоследних1
               |        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыСрезПоследних1.Номенклатура
               |ГДЕ
               |    ЦеныНоменклатурыСрезПоследних.ВидЦен.Код = &УчетнаяЦенаШГ
               |    И ЦеныНоменклатурыСрезПоследних1.ВидЦен.Код = &Розничная";
   Cyrix
 
14 - 12.10.20 - 21:51
примерно
   RomanYS
 
15 - 12.10.20 - 21:59
(13) Убери ".Код" - у тебя в параметрах уже ссылки судя по (0).

Убери "где", сделай как в (10). Хотя в данном случае результат одинаковый будет (10) более корректно.
Ещё правильнее эти условия в параметры виртуальных таблиц засунуть:
...
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ВидЦен.Код = &УчетнаяЦенаШГ) КАК ЦеныНоменклатурыСрезПоследних
...
   Cyrix
 
16 - 12.10.20 - 22:07
(15) Как перечислить условия, если я захочу пихнуть их в параметры виртуальных таблиц? Ну первое условие ты привёл в пример РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ВидЦен.Код = &УчетнаяЦенаШГ) КАК ЦеныНоменклатурыСрезПоследних

а как добавить РегистрСведений.ЦеныНоменклатуры.СрезПоследних1(&НаДату, ВидЦен.Код = &Розничная) КАК ЦеныНоменклатурыСрезПоследних1

?

через И ?
   RomanYS
 
17 - 12.10.20 - 22:16
(16) Похоже ты не понял, что такое соединение :(((
У одной таблицы одно условие в параметрах, у второй - второе. И убери ".Код"
   Cyrix
 
18 - 12.10.20 - 22:25
я однозначно чего-то недопонимаю :(

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

Куда ВидЦен = &Розничная засунуть??
   RomanYS
 
19 - 12.10.20 - 22:29
(18) ля, ты в клюшках что ли застрял?
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ВидЦен = &Розничная) КАК ЦеныНоменклатурыСрезПоследних1
   Cyrix
 
20 - 12.10.20 - 22:36
(19) ой... спасибо!! :о)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.