|   |   | 
| 
 | v7: Тормозит функция в форме списка справочника | ☑ | ||
|---|---|---|---|---|
| 0
    
        aRaBest 10.07.12✎ 15:45 | 
        после перехода с win 2003 х86 sql 2000 на win 2008 х64 sql 2008 х64
  стала притормаживать функция помогите ускорить функцию или подскажите как искать тормоза Функция КонтрольОстатка() //Перем Возвращение; //Возвращение = ""; Тов=СоздатьОбъект("Справочник.Номенклатура"); Если (ЭтоГруппа()=1) тогда Если (Уровень()>2) тогда Ост = 0; Тов.ИспользоватьРодителя(ТекущийЭлемент()); Тов.ВыбратьЭлементы(); Пока Тов.ПолучитьЭлемент()=1 цикл Если ПустаяСтрока(МестоХранения)=1 Тогда Остаток = Регистр.ОстаткиТоваров.СводныйОстаток(Тов.ТекущийЭлемент(),,"ОстатокТовара")/?(Тов.Коэффициент = 0, 1,Тов.Коэффициент);; Иначе Остаток = Регистр.ОстаткиТоваров.Остаток(Тов.ТекущийЭлемент(),МестоХранения,"ОстатокТовара")/?(Тов.Коэффициент = 0, 1,Тов.Коэффициент); КонецЕсли; Ост=Ост+Остаток; КонецЦикла; КонецЕсли; Иначе Если ПустаяСтрока(МестоХранения)=1 Тогда Ост = Регистр.ОстаткиТоваров.СводныйОстаток(ТекущийЭлемент(),,"ОстатокТовара")/?(ТекущийЭлемент().Коэффициент = 0, 1,ТекущийЭлемент().Коэффициент); Иначе Ост = Регистр.ОстаткиТоваров.Остаток(ТекущийЭлемент(),МестоХранения,"ОстатокТовара")/?(ТекущийЭлемент().Коэффициент = 0, 1,ТекущийЭлемент().Коэффициент); КонецЕсли; КонецЕсли; Если Ост <> 0 тогда Возврат Ост; Иначе Возврат ""; КонецЕсли; КонецФункции | |||
| 1
    
        viktor_vv 10.07.12✎ 15:47 | 
        Искать отладчиком и замером производительности. Но тут и так видно, что тормозит вывод остатка по группе. Он вам надо по группе?     | |||
| 2
    
        viktor_vv 10.07.12✎ 15:49 | 
        И на 2008 скуль тут сильно много нареканий в производительности. Может еще зависит как дружили с семеркой, но тут подсказать ничего не могу.     | |||
| 3
    
        Ёпрст гуру 10.07.12✎ 15:52 | 
        (0) переписать на прямой запрос, как минимум..
  Использовать табличное поле, как максимум | |||
| 4
    
        aRaBest 10.07.12✎ 15:54 | 
        ( viktor_vv) да просят по группе     | |||
| 5
    
        aRaBest 10.07.12✎ 15:58 | 
        Самое интересное что win 2003 sql 2000 ничего не тормозило     | |||
| 6
    
        Ёпрст гуру 10.07.12✎ 16:09 | 
        (5) враньё     | |||
| 7
    
        Ёпрст гуру 10.07.12✎ 16:09 | 
        как "заставил" работать 7.7 на 2008 скуле, для начала ?     | |||
| 8
    
        aRaBest 10.07.12✎ 16:19 | 
        (6) зачем мне врать? Я же помощи прощу.
  (7) Что значит "заставил", есть подробная инструкция в инете, все работает. | |||
| 9
    
        Ёпрст гуру 10.07.12✎ 16:19 | 
        (8) есть подобная инструкция заставить быстро отображать останки в форме списка справочника.
  Всё летает! | |||
| 10
    
        aRaBest 10.07.12✎ 16:21 | 
        (7) подкорректировал BkEnd.dll     | |||
| 11
    
        aRaBest 10.07.12✎ 16:25 | 
        (9) 
  установил sql 2008 создал базу установил совместимость с 2000 загрузил из 1с данные | |||
| 12
    
        Ёпрст гуру 10.07.12✎ 16:26 | 
        (10) ну вот.
  Теперь вертай всё взад, совместимость в том числе, ставь это и наслаждайся http://infostart.ru/public/82018/ | |||
| 13
    
        aRaBest 10.07.12✎ 16:27 | 
        (12) Это все стоит     | |||
| 14
    
        pvase 10.07.12✎ 16:29 | 
        Надо переделывать на прямые запросы:
  1 - Для обхода элементов справочника 1С использует триггеры, а эти тригерры почему то стали медленнее работать на SQL 2008. 2 - Та же ситуация с сводными остатками и остатками по регистру. Замеры производительности в отладчике что показывает? Что показывает SQL Serve Profiler, куда уходит время на выполнение? | |||
| 15
    
        Mikeware 10.07.12✎ 16:30 | 
        (14) окстись, какие триггеры???     | |||
| 16
    
        Ёпрст гуру 10.07.12✎ 16:34 | 
        (13) как-то это не коррелирует с 
  >>>подкорректировал BkEnd.dll >>>установил совместимость с 2000 з | |||
| 17
    
        aRaBest 10.07.12✎ 16:35 | 
        (16) я пробовал по разному, подкорректировать BkEnd.dll мне показалась более работоспособна     | |||
| 18
    
        1Сергей 10.07.12✎ 16:36 | 
        (17) тебе показалось     | |||
| 19
    
        aRaBest 10.07.12✎ 16:37 | 
        У меня при поиске задерживается список на 0.4 сек
  бухгалтерам не нравится | |||
| 20
    
        pvase 10.07.12✎ 16:38 | 
        (15) Сорри, не тригерры а курсоры.     | |||
| 21
    
        aRaBest 10.07.12✎ 16:38 | 
        Раньше было 0.08 сек     | |||
| 22
    
        pvase 10.07.12✎ 16:39 | 
        (19) Покажи замеры производительнсоти в Отладчике.     | |||
| 23
    
        pvase 10.07.12✎ 16:40 | 
        + Воспользуйся Секретным релизом 1С 007 (Инфостар в помощь).     | |||
| 24
    
        pvase 10.07.12✎ 16:41 | ||||
| 25
    
        acsent 10.07.12✎ 16:42 | 
        сводные остатки по группе?????     | |||
| 26
    
        aRaBest 10.07.12✎ 16:43 | 
        Справочник.Номенклатура.ФормаСписка.ПродажаПоСкладам    51    Остаток = Регистр.ОстаткиТоваров.СводныйОстаток(Тов.ТекущийЭлемент(),,"ОстатокТовара")/?(Тов.Коэффициент = 0, 1,Тов.Коэффициент);;    405    0.475676    16.79     | |||
| 27
    
        pvase 10.07.12✎ 16:45 | 
        (27) Подключай 1С++ и делай прямой запрос, сильно не поможет, но ускорение должно вернуться к предыдущему значению.
  Чтобы ускорение было получше - надо переделывать Форму списка справочника на ТабличноеПоле с поставщиком SQL. | |||
| 28
    
        aRaBest 10.07.12✎ 16:45 | 
        (12) (24) попробую снова     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |