Имя: Пароль:
1C
1C 7.7
v7: Помогите с ускорением обработки
Ø (Злопчинский 14.04.2015 11:29)
0 dll
 
14.04.15
00:42
Всем салют!
Ребята в общем такая проблемка, в запросе около 50тыс записей, очень долго обрабатывает, как быть со вторым циклом в коде?
незнаю как быть, башка уже вообще не варит...

    Запрос = СоздатьОбъект("Справочник.Контрагенты");
    Запрос.ИспользоватьДату(ДатаДок);
    Запрос.ВыбратьЭлементы();
    
    Пока Запрос.ПолучитьЭлемент() = 1 Цикл

        Если Запрос.Агент.Код = Родитель.Код Тогда
        
        КонтрБезСимволов = "";
        КонтрБезСимволов = Запрос.Наименование;
        СтрЗаменить(КонтрБезСимволов,"'","");               
            
                    
                    *-*-*ТРУМПУПУМ ТУТ КОД
                    
                    
                    Ит = СоздатьОбъект("БухгалтерскиеИтоги");
                    Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, , 1);
                    Ит.ИспользоватьСубконто(ВидыСубконто.Сотрудники, , 1);
                    Ит.ВыполнитьЗапрос(ДатаВыгрузки, ДатаВыгрузки, СчетПоКоду("334"), , , 1, , "С");  
                    Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты, Контрагенты);
                    
                    
                    
                    Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
                        Если Ит.Субконто().Наименование = Запрос.Наименование   Тогда
                            Если Ит.СКД(1) > 0 Тогда    
                                элСправочника.УстановитьАтрибут("debt", СокрЛП(Ит.СКД(1)));    
                            иначе
                                элСправочника.УстановитьАтрибут("debt", "0");    
                            КонецЕсли;
                        КонецЕсли;
                    КонецЦИкла;
    Иначе
        Продолжить
        КонецЕсли;

    КонецЦикла;
1 Злопчинский
 
14.04.15
00:46
Очевидно что второй запрос к бухитогам получить сверху вне первого запроса
А потом в готовом наборе данных позиционироваться на нужной записи а не бегать уикл в цикле
2 Злопчинский
 
14.04.15
00:46
Или если уж второй запрос оставить внутрях то получать его для конкретного значения субконто сразу
3 Злопчинский
 
14.04.15
00:48
И нафига субконто сотрудники если оно не используется приобходе результатов запрса
4 Злопчинский
 
14.04.15
00:49
И нахрена сравнивать наименования первого и второго запроса
Почему нельзя сравнить объекты?
5 dll
 
14.04.15
01:01
(2) каким образом это сделать?
6 Злопчинский
 
14.04.15
01:04
(5)  открой синтакс помощник и почитай про второй параметр в использовать субконто
7 dll
 
14.04.15
01:30
(6) )))) разобрался, благодарю за отклик