ОБСУЖДЕНИЕ

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

7 ответов 5 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

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

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

Если Выборка.Следующий() Тогда
Возврат Выборка.ПолучитьОбъект();
Иначе
Возврат Неопределено;
КонецЕсли;
где ШК - это наименование справочника...
 
мб так:
|ГДЕ | ШтрихКоды.Наименование = &ШтрихКод.Наименование
или
|ГДЕ | ШтрихКоды.Ссылка= &ШтрихКод.Ссылка
 
Bap пробелы в наименовании посмотри. Точнее сократи пробелы
 
Может, если поле одно, то и так сойдет, а вообще:
Если Выборка.Следующий() Тогда
Возврат Выборка.ссылка.ПолучитьОбъект();
Иначе
Возврат Неопределено;
КонецЕсли;
 
ПС. А не устроит ? :
возврат Справочники.ШтрихКоды.НайтиПоНаименованию(ШК);
 
Хочется через запрос! Сейчас у меня и так по наименованиею ищит!
 
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ШтрихКод", ШК);
Запрос.Текст = "
|ВЫБРАТЬ
| ШтрихКоды.Ссылка
| ШтрихКоды.Наименование как СтрокаПоиска
|ИЗ
| Справочник.ШтрихКоды КАК ШтрихКоды
|ГДЕ
| Строкапоиска ПОДОБНО ""%"" + &ШтрихКод + ""%""
|";

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



что-то такое... А то с пробелами действительно нехорошо может получится. Наименование в отдельную переменную вытащил на всякий случай - мож и с ШтрихКоды.Наименование прокатит.
 
Хочется через запрос! Сейчас у меня и так по наименованиею ищит!
Сомневаюсь, что будет быстрее. Поиск одного элемента по строке через запрос это очень странно, имхо.