8.х Выборка элементов справочника

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

  1. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Требуется выбрать элементы справочника ТипыЦенНоменклатурыКонтрагентов, у которых поле Наименование пустое и поле ТипЦеныНоменклатуры=Закупочная. Вот мой запрос:
    Код:
    Запрос=Новый Запрос;
    Запрос.Текст= "ВЫБРАТЬ
    |	ТипыЦенНоменклатурыКонтрагентов.Владелец.Наименование КАК Контрагент,
    |	ТипыЦенНоменклатурыКонтрагентов.Наименование КАК Наименование,
    |	ТипыЦенНоменклатурыКонтрагентов.ТипЦеныНоменклатуры.Наименование КАК ТипЦены
    |ИЗ
    |	Справочник.ТипыЦенНоменклатурыКонтрагентов КАК ТипыЦенНоменклатурыКонтрагентов
    |ГДЕ
    |	ТипыЦенНоменклатурыКонтрагентов.ТипЦеныНоменклатуры = &Закупочная
    |	И ТипыЦенНоменклатурыКонтрагентов.Наименование = &Пусто  ";
    
    Запрос.УстановитьПараметр("Закупочная",Справочники.ТипыЦенНоменклатурыКонтрагентов.НайтиПоРеквизиту("ТипЦеныНоменклатуры","Закупочная"));			  
    Запрос.УстановитьПараметр("Пусто", Справочники.ТипыЦенНоменклатурыКонтрагентов.НайтиПоНаименованию("Наименование").Пустая());
    Результат=Запрос.Выполнить();
    ТабличноеПоле1=Результат.Выгрузить();
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
    
    Ничего не выводит.
    Строки, удовлетворяющие условию в справочнике есть.
  2. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    У Вас неправильно заполнены параметры запроса.
    Реквизит "ТипЦеныНоменклатуры" справочника "ТипыЦенНоменклатурыКонтрагентов" имеет тип "СправочникСсылка.ТипыЦенНоменклатуры". Обратите внимание - это 2 разных справочника.
    Следовательно параметр запроса нужно заполнить так:
    Код:
    Запрос.УстановитьПараметр("Закупочная",Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Закупочная"));
    
    Далее Наименование справочника - это строка, и значит сравнивать нужно со строкой, а не пустой ссылкой, как у Вас. Т.е. второй параметр заполняем так:
    Код:
    Запрос.УстановитьПараметр("Пусто", "");
    
    Ну и сами поля запроса...
    Во-первых, Вы не выбираете нигде элементы справочника, как написано в задаче.
    Во-вторых, зачем выбирать наименование элемента справочника, если оно по условию пустое? Это про строку
    Код:
    |	ТипыЦенНоменклатурыКонтрагентов.Наименование КАК Наименование,
    
  3. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Спасибо, получилось!
  4. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    а можно немножко модифицировать:
    | И ТипыЦенНоменклатурыКонтрагентов.Наименование = Null ";
  5. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Не болтайте ерундой. Пустая строка и Null суть разные вещи.
  6. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Добавлю, что NULL<> NULL :)

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