Имя: Пароль:
1C
1C 7.7
v7: 1с++ Прямой запрос. УлржитьСписокОбъектов
0 aass
 
17.04.12
07:24
не могу победить метод при повторном выпонении запроса 1с вываливается , где копать ?

   Соединение    = "Provider=VFPOLEDB.1;Data Source=" + текКаталог + ";Mode=ReadWrite;Collating Sequence=MACHINE";
   MW            = CreateObject("MetaDataWork");
   ОлеДБ        = СоздатьОбъект("OLEDBData");
   Рез        = ОлеДБ.Соединение(Соединение);
   ЗапросOLE    = ОлеДБ.СоздатьКоманду();
   ЗапросOLE.Выполнить("EXECSCRIPT('SET ANSI OFF')");  
   ЗапросOLE.Выполнить("EXECSCRIPT('SET REPROCESS TO 260 SECONDS')");
   ЗапросOLE.Выполнить("EXECSCRIPT('SET REFRESH TO 0,-1')");    
   ЗапросOLE.Выполнить("Exec('SET TABLEVALIDATE TO 0')");
   
   Если    (ТаблицаМФ.ПолучитьЗначение(1,"ФлВкл") = 2)
   И(ТаблицаМФ.ПолучитьЗначение(1,"СписокЭлементов").РазмерСписка()>0) Тогда
       ВрТаблЦена = "";  
       спс = ТаблицаМФ.ПолучитьЗначение(1,"СписокЭлементов");
       Вид = ТаблицаМФ.ПолучитьЗначение(1,"Вид");
       ЗапросOLE.УложитьСписокОбъектов(спс, ВрТаблЦена,Вид);
   КонецЕсли;
   ТекстЗапроса = "
   |SELECT
   |    NOM as [Номенклатура $Справочник.Номенклатура]  
   |    ,TIP as [ЦенаОсн $Справочник.КатегорииЦен]
   |    ,TIP1 as [ЦенаРасч $Справочник.КатегорииЦен]
   |    ,NAC
   |    ,CEN
   |FROM
   |  "+ текТабЕПЦ + "
   |WHERE          
   |    TIP1 IN (SELECT Val FROM " + ВрТаблЦена + ")
   |ORDER BY
   |    TIP1,NOM
   |";
   тзНом = ЗапросOLE.ВыполнитьИнструкцию(ТекстЗапроса);
   ЗапросOLE    = "";
1 nicxxx
 
17.04.12
07:29
повторно выполняется весть этот код?
2 aass
 
17.04.12
07:32
да
3 aass
 
17.04.12
07:33
еще момент, это "текТабЕПЦ" лежит не в базе, отдельная табличка
4 nicxxx
 
17.04.12
07:34
попробуй явно закрывать команду методом Закрыть()
и еще - в каком месте вываливается 1с?
5 nicxxx
 
17.04.12
07:35
без временной таблицы с ценами запрос нормально работает?
6 aass
 
17.04.12
07:43
(5) точно дело не в уложить, сам запрос не хочет работать
за счет чего ?
7 aass
 
17.04.12
07:46
вообщем разобрался у меня дальше дерево формировалось проблема в нем ....
спасибо за на водку (5) за на пиво с меня )))