7.7 Сильно увеличилось время выполнения обработки

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Skyrim, 18 май 2011.

  1. TopicStarter Overlay
    Skyrim
    Offline

    Skyrim Опытный в 1С

    Регистрация:
    1 ноя 2010
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    В магазине стоит ТИС и в ней есть обработка для работы с каштаном. Мне нужно было перенести эту обработку в Бухгалтерию. После измений, время выгрузки товаровиз 1с в каштан сильно увеличилось.Время выгрузки из 1с в каштан для ТИС примерно 20 сек, для бухгалтерии - 10мин.

    Фрагмент кода обработки для ТИС:
    Код:
    Пока ТМЦ.ПолучитьЭлемент()  > 0 Цикл
    Если ТМЦ.ЭтоГруппа() = 0 Тогда 
    a=Регистр.Остатки.СводныйОстаток(0,ТМЦ.ТекущийЭлемент(),Константа.БазСклад,, "Кво");
    Если (ТМЦ.КодТовараДляКаштана <> 0) и (Число(ТМЦ.ЦенаРозн) > 0) и (a > 0) тогда
    b.AddRecord(ТМЦ.КодТовараДляКаштана, 1, 1, Число(ТМЦ.ШтрихКод), ТМЦ.Наименование, Число(ТМЦ.ЦенаРозн), a);
    loaded=loaded+1;
    Иначе 
    err=err+1;
    Если FirstUnsend = "" Тогда
    FirstUnsend=ТМЦ.Наименование;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    
    
    Изменненый код обработки для бухгалтерии:
    Код:
    Пока ТМЦ.ПолучитьЭлемент()  > 0 Цикл
    Если ТМЦ.ЭтоГруппа() = 0 Тогда 
    сообщить(ТМЦ.Наименование);
    а1=Остаток.СКДРС("281",3, ,,,ТМЦ.ТекущийЭлемент(),2);          
    сообщить(а1);
    Если (ТМЦ.КодТовараДляКаштана <> 0) и  (Число(а1) > 0) и (Число(ТМЦ.Цена_Розн)>0) тогда  
    
    b.AddRecord(ТМЦ.КодТовараДляКаштана, 1, 1, Число(""), ТМЦ.Наименование, Число(ТМЦ.Цена_Розн), Число(а1));
    loaded=loaded+1;
    Иначе 
    err=err+1;
    Если FirstUnsend = "" Тогда
    FirstUnsend=ТМЦ.Наименование;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    
    
    Как еще можно получить остатки для товара в бухгалтерии?
    Почему функция СводныйОстаток() работает на много быстрее СКДРС()?
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Потому что так устроены регистры!

    В цикле обращаться к остаткам... бред.

    Нужно выполнить БухЗапрос по счету и вы выборке получать остаток - будет быстрее
  3. TopicStarter Overlay
    Skyrim
    Offline

    Skyrim Опытный в 1С

    Регистрация:
    1 ноя 2010
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Сделал обработку через запрос. Теперь не получается спозиционировать на нужный элемент справочника.
    Код:
    Остаток.ИспользоватьСубконто(ВидыСубконто.ТМЦ,,1);
    Остаток.ВыполнитьЗапрос(ДатаНач,ДатаКон,"281");
    Остаток.ВыбратьСубконто();  
    Пока Остаток.ПолучитьСубконто() = 1 Цикл  
    а1=Остаток.СКД(3); 
    ТМЦ.НайтиПоНаименованию(строка(Остаток.ПредставлениеСубконто(ВидыСубконто.ТМЦ,1)));
    ТМЦ.ИспользоватьДату(ТекущаяДата(), 1);
    сообщить(ТМЦ.текущийЭлемент());
    Если (ТМЦ.КодТовараДляКаштана <> 0) и  (Число(а1) > 0) и (Число(ТМЦ.Цена_Розн)>0) тогда
    b.AddRecord(ТМЦ.КодТовараДляКаштана, 1, 1, Число(""), ТМЦ.Наименование, Число(ТМЦ.Цена_Розн), Число(а1));
    loaded=loaded+1;	
    Иначе 
    err=err+1;
    Если FirstUnsend = "" Тогда
    FirstUnsend=ТМЦ.Наименование;   
    КонецЕсли;
    КонецЕсли; 
    
    конецЦикла;
    
    
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Не нужно огород городить когда все под рукой...
    Код:
    Тмц=Остаток.Субконто(ВидыСубконто.ТМЦ);
    
    
    
  5. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Ибо ТМЦ это совсем не ТМЦ.ТекущийЭлемент().
    В данном конексте
    Код:
     ТМЦ.НайтиПоНаименованию(строка(Остаток.ПредставлениеСубконто(ВидыСубконто.ТМЦ,1)));
    МояТМЦ = ТМЦ.ТекущийЭлемент()... и поехали 
    
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Да незачем такие изыски.... Уже есть ссылка на элемент справочника. (см. выше)

Поделиться этой страницей