Имя: Пароль:
1C
1C 7.7
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 во временную табличку, что иногда гораздо быстрее