Простой запрос с условием

Тема в разделе "1C и всё что с ней связано", создана пользователем SeverBap, 29 сен 2009.

  1. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    Подскажите как исправить этот запрос:
    Код (Text):
        Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("ШтрихКод", ШК);
    Запрос.Текст = "
    |ВЫБРАТЬ
    |   ШтрихКоды.Ссылка
    |ИЗ
    |   Справочник.ШтрихКоды КАК ШтрихКоды
    |ГДЕ
    |   ШтрихКоды.Наименование = &ШтрихКод
    |";

    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();

    Если Выборка.Следующий() Тогда
    Возврат Выборка.ПолучитьОбъект();
    Иначе
    Возврат Неопределено;
    КонецЕсли;
    где ШК - это наименование справочника...
     
  2. thinkfast

    thinkfast Гость

    мб так:
    |ГДЕ | ШтрихКоды.Наименование = &ШтрихКод.Наименование
    или
    |ГДЕ | ШтрихКоды.Ссылка= &ШтрихКод.Ссылка
     
  3. has

    has Гость

    Bap пробелы в наименовании посмотри. Точнее сократи пробелы
     
  4. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Может, если поле одно, то и так сойдет, а вообще:
    Если Выборка.Следующий() Тогда
    Возврат Выборка.ссылка.ПолучитьОбъект();
    Иначе
    Возврат Неопределено;
    КонецЕсли;
     
  5. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    ПС. А не устроит ? :
    возврат Справочники.ШтрихКоды.НайтиПоНаименованию(ШК);
     
  6. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    Хочется через запрос! Сейчас у меня и так по наименованиею ищит!
     
  7. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("ШтрихКод", ШК);
    Запрос.Текст = "
    |ВЫБРАТЬ
    | ШтрихКоды.Ссылка
    | ШтрихКоды.Наименование как СтрокаПоиска
    |ИЗ
    | Справочник.ШтрихКоды КАК ШтрихКоды
    |ГДЕ
    | Строкапоиска ПОДОБНО ""%"" + &ШтрихКод + ""%""
    |";

    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    Возврат Выборка.ПолучитьОбъект();
    Иначе
    Возврат Неопределено;
    КонецЕсли;



    что-то такое... А то с пробелами действительно нехорошо может получится. Наименование в отдельную переменную вытащил на всякий случай - мож и с ШтрихКоды.Наименование прокатит.
     
  8. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Сомневаюсь, что будет быстрее. Поиск одного элемента по строке через запрос это очень странно, имхо.
     
Загрузка...

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