6
Стрелок
07.02.13
✎
23:22
|
Текст="SELECT
|code AS Код,
|id AS [Товар $Справочник.Номенклатура],
|ParentID as Parent
|FROM $Справочник.Номенклатура as Спр WHERE isfolder=2";
Если СписокГрупп.ТекущаяСтрока()<>1 Тогда
ТекГруппа=СписокГрупп.ПолучитьЗначение(СписокГрупп.ТекущаяСтрока());
ТекГруппа=_IdToStr(Лев(Прав(ЗначениеВСтрокуВнутр(ТекГруппа),15),13));
Текст=Текст+"
|AND ParentID='"+ТекГруппа+"'";
КонецЕсли;
Если СокрЛП(РазбиваемаяСтрокаПоИмени)<>"" Тогда
Для Ном=1 По СтрКоличествоСтрок(РазбиваемаяСтрокаПоИмени) Цикл
Слово=СтрПолучитьСтроку(РазбиваемаяСтрокаПоИмени,Ном);
Если ПустоеЗначение(Слово)=0 Тогда
Текст=Текст+"
|AND LOWER(descr) LIKE '"+Слово+"'";
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если СписокТоваров_.РазмерСписка()<50 Тогда
МД=СоздатьОбъект("MetaDataWork");
Условия ="(";
Для Н=1 По СписокТоваров_.РазмерСписка() Цикл
Условия = Условия + "'" + МД.ЗначениеВСтрокуБД(СписокТоваров_.ПолучитьЗначение(Н)) + ?( Н=СписокТоваров_.РазмерСписка(),"')","',");
КонецЦикла;
Текст=Текст+"
|AND id IN "+Условия+"
|";
Иначе
ИмяТаблицы="#Группа";
БыстрыйЗапрос.УложитьСписокОбъектов(СписокТоваров_,ИмяТаблицы,"Номенклатура");
БыстрыйЗапрос. УстановитьТекстовыйПараметр ("Группа",ИмяТаблицы);
Текст=Текст+"
|AND id IN (SELECT Val FROM "+?(БазаДанныхСкуль.ЕстьСоединение()=0,":","#")+"Группа)
|";
КонецЕсли;
СписокТоваров - условие - список значений
|
|
8
Ёпрст
гуру
07.02.13
✎
23:23
|
(0)
УложитьСписокОбъектов
УложитьСписокОбъектов13
ВыполнитьSQL_ИзТЗ(Таблица, КоличествоСтрок)
ну или тупо insert во временную табличку, что иногда гораздо быстрее
|
|