Имя: Пароль:
1C
1С v8
Отбор в методе выбрать() при подключении через OLE
0 Serega103
 
21.03.13
14:53
Подскажите пожалуйста как оптимизировать код:
       Реал1=База.Документы.ПоступлениеТоваровУслуг;
       Реал=Реал1.Выбрать(НачалоДня(ДатаНач),КонецДня(ДатаКон));
       Пока Реал.Следующий() Цикл
           Если СокрЛП(Реал.Организация.ИНН)=КФТ Тогда
               МояПроцедура();    
           КонецЕсли;    
       КонецЦикла;
В том месте  где проверяется ИНН организации при проверке замером производительности уходит 90% времени, что сильно затармаживает работу.
Хотелось бы в методе выбрать() задать отбор по организации, но не знаю как передать туда структуру с отбором
1 Serega103
 
21.03.13
14:58
Вот что хотелось бы получить:
Отб=Новый Структура("Организация",База.Справочники.Организации.НайтиПоРеквизиту("ИНН"),КФТ)
       Реал1=База.Документы.ПоступлениеТоваровУслуг;
       Реал=Реал1.Выбрать(НачалоДня(ДатаНач),КонецДня(ДатаКон));
       Пока Реал.Следующий() Цикл
             МояПроцедура();      
       КонецЦикла;
2 Serega103
 
21.03.13
14:59
Точнее вот это
Отб=Новый Структура("Организация",База.Справочники.Организации.НайтиПоРеквизиту("ИНН"),КФТ)
       Реал1=База.Документы.ПоступлениеТоваровУслуг;
       Реал=Реал1.Выбрать(НачалоДня(ДатаНач),КонецДня(ДатаКон),Отб);
       Пока Реал.Следующий() Цикл
             МояПроцедура();      
       КонецЦикла;
3 Defender aka LINN
 
21.03.13
15:01
Патологическая ненависть к запросам, или просто острые клюшки головного мозга?
4 Serega103
 
21.03.13
15:02
(3)Никогда не пробовал делать запрос к базе через OLE((
Поделитесь пожалуйста, как это делать.
5 Serega103
 
21.03.13
15:30
ап
6 Defender aka LINN
 
21.03.13
15:33
(4) Так же, как в обычной базе
7 Irbis
 
21.03.13
15:33
(4) Надо же когда-то начинать
8 Kalac
 
21.03.13
15:37
V8 = "";
     Сообщить("Подключение к базе УПП " + ПутьКБазе81);
     V8 = Новый COMОбъект("V81.ComConnector");    
     
     Попытка        
         // создается объект COM-соединение                
         Если ЗначениеЗаполнено(Сервер81) Тогда
             СтрокаЗапуска = "Srvr="""+ СокрЛП(Сервер81) + """;Ref=""" + СокрЛП(База81) +""";Usr=""" + СокрЛП(Пользователь81) + """;Pwd=""" + СокрЛП(Пароль81)+""";";
         Иначе
             СтрокаЗапуска = "File="""+ СокрЛП(ПутьКБазе81) + """;Usr=""" + СокрЛП(Пользователь81) + """;Pwd=""" + СокрЛП(Пароль81)+""";";
         КонецЕсли;
         
         УПП8 = V8.Connect(СтрокаЗапуска);
         Сообщить("Подключение выполнено");
     Исключение        
         Предупреждение(ОписаниеОшибки());
         Возврат;
     КонецПопытки;


Запрос = Упп8.NewObject("Запрос");
9 Serega103
 
21.03.13
16:29
(8) |Запрос = Упп8.NewObject("Запрос");
Таким же образом можн создать и объект Структура?
То есть NewObject("Структура")?