|
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) попробую снова
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |