8.х Как в запросе 1С8 отобрать нужное

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

  1. TopicStarter Overlay
    kladovoy
    Offline

    kladovoy

    Регистрация:
    13 янв 2007
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Нужно из справочника выбрать элементы код у которых начинается с буквы "Б" и вывести сокращ наименование кода.
    Запрос работает, но выводит кроме отобранных еще пустые ссылки.
    Подскажите, что не правильно.

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

    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    Пока Выборка.Следующий() Цикл
    Сообщить("СокрКод - " + Выборка.КодСокр);
  2. Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Попробуй так... нет базы потренироваться, но пустые строки у тебя потому что ты не фильтруешь строки, а просто приобразовываешь их если выполняется условие
    Код:
    КОГДА ПОДСТРОКА(Материалы.КодИзделия, 1, 1) = ""Б""
    
    а нужно тебе как я понимаю из ТЗ, именно фильтровать Материалы...

    Запрос.Текст =
    "ВЫБРАТЬ
    | ВЫБОР
    | КОГДА ПОДСТРОКА(Материалы.КодИзделия, 1, 1) = ""Б""
    | ТОГДА ПОДСТРОКА(Материалы.КодИзделия, 1, 13)
    | КОНЕЦ КАК КодСокр
    |ИЗ
    | Справочник.Материалы КАК Материалы
    ГДЕ Материалы.КодИзделия <>""
    И ПОДСТРОКА(Материалы.КодИзделия, 1, 1) = ""Б""";
  3. TopicStarter Overlay
    kladovoy
    Offline

    kladovoy

    Регистрация:
    13 янв 2007
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Большое Спасибо!
    Не знал, что надо использовать ГДЕ.
    Получилось даже таким вариантом:

    "ВЫБРАТЬ
    | ПОДСТРОКА(Материалы.КодИзделия, 1, 13) КАК КодСокр
    |ИЗ
    | Справочник.Материалы КАК Материалы
    |ГДЕ
    |ПОДСТРОКА(Материалы.КодИзделия, 1, 1) = ""Б""
    |";

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