![]() |
![]() |
![]() |
|
v7: использование прямых подзапросов | ☑ | ||
---|---|---|---|---|
0
lunatik33
07.02.13
✎
22:23
|
как передать в качестве усдовия список или таблицу значений?
|
|||
1
Zhuravlik
07.02.13
✎
22:24
|
Если 1SQLite, то можно использовать методы УложитьТЗ(), или УложитьОбъекты().
|
|||
2
lunatik33
07.02.13
✎
22:26
|
а если просто 1с и ms sql
|
|||
3
Zhuravlik
07.02.13
✎
22:27
|
(2) Тогда копать доку по 1С++)
|
|||
4
orefkov
07.02.13
✎
22:37
|
ВыполнитьСклИзТз вроде как в 1С++
|
|||
5
lunatik33
07.02.13
✎
23:13
|
ап
|
|||
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,":","#")+"Группа) |"; КонецЕсли; СписокТоваров - условие - список значений |
|||
7
Стрелок
07.02.13
✎
23:23
|
да кстати - это даже не скуль - просто dbf
|
|||
8
Ёпрст
гуру
07.02.13
✎
23:23
|
(0)
УложитьСписокОбъектов УложитьСписокОбъектов13 ВыполнитьSQL_ИзТЗ(Таблица, КоличествоСтрок) ну или тупо insert во временную табличку, что иногда гораздо быстрее |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |