8.х Вопрос по запросу

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем konst, 20 май 2009.

  1. TopicStarter Overlay
    konst
    Offline

    konst Опытный в 1С

    Регистрация:
    17 мар 2009
    Сообщения:
    71
    Симпатии:
    0
    Баллы:
    26
    Делаю запрос (необходимо получить выборку содержащую номенклатуру и все типы цен для нее, если тип цен не установлен цена =0)
    Код:
    "ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Наименование,
    ЦеныНоменклатурыСрезПоследних.Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
    ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ЦеныНоменклатурыСрезПоследних.ТипЦен КАК ТипЦен
    ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
    ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ТипыЦенНоменклатуры КАК ТипыЦенНоменклатуры
    ПО ЦеныНоменклатурыСрезПоследних.ТипЦен = ТипыЦенНоменклатуры.Ссылка
    ИТОГИ ПО
    Наименование ИЕРАРХИЯ"
    
    Затем вывожу результат в ДеревоЗначений
    Получаю примерно следующее
    Группа
    Номенклатура1
    Номенклатура1 Опт1
    Номенклатура2
    Номенклатура2 Опт2

    Для Номенклатура1 тип цен Опт2 не определен (отсутствует в регистре движение)
    Для Номенклатура2 тип цен Опт1 не определен

    Никак не могу добиться того чтоб было

    Группа
    Номенклатура1
    Номенклатура1 Опт1
    Номенклатура1 Опт2
    Номенклатура2
    Номенклатура2 Опт1
    Номенклатура2 Опт2

    Дело в том что для номенклатуры, если не установлен тип цен, то она не попадает в результат выборки, а мне необходимо чтоб если для номенклатуры не установлен тип цен она попадала в выборку

    Подскажите плиз
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Вам нужно левое соединение справочника ноенклатуры к вашему запросу
  3. TopicStarter Overlay
    konst
    Offline

    konst Опытный в 1С

    Регистрация:
    17 мар 2009
    Сообщения:
    71
    Симпатии:
    0
    Баллы:
    26
    Забабахал вот так, но проблема в том, что тут вся номенклатура, а как сделать чтоб была только та что в регистре

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

    УПОРЯДОЧИТЬ ПО
    ТипЦен
    ИТОГИ ПО
    Наименование ИЕРАРХИЯ
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    Нужно ПРАВОЕ соединение.
  5. TopicStarter Overlay
    konst
    Offline

    konst Опытный в 1С

    Регистрация:
    17 мар 2009
    Сообщения:
    71
    Симпатии:
    0
    Баллы:
    26
    Правое не катит... резалт такой же как в 1ом посте

    ПОЛУЧИЛОСЬ вот так, может коряво, но вроде работает, может кто подскажет как это все покрасивше написать
    Запрос.Текст="
    ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура
    ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних";

    Результат = Запрос.Выполнить();
    ТабличноеПоле2 = Результат.Выгрузить();
    ЭлементыФормы.ТабличноеПоле2.СоздатьКолонки();
    Мас = ТабличноеПоле2.ВыгрузитьКолонку("Номенклатура");

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

    УПОРЯДОЧИТЬ ПО
    ТипЦен
    ИТОГИ ПО
    Наименование ИЕРАРХИЯ";
  6. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    Так в первом посте у вас местами поменялись источники запроса.

Поделиться этой страницей