Имя: Пароль:
1C
1C 7.7
v7: этот код тормозит только SQL ?
,
0 Maximysis
 
11.07.12
08:44
На форме списка справочника "номенклатура" выводятся ее остаток.

ОстатокПоСчету =(БИ.СКД(Счет,"К",,ТекущийЭлемент()))-(БИ.СКК(Счет,"К",,ТекущийЭлемент()));

В дбфной версии работает шустро, а в сиквеле тормазит. Что посоветуете...
1 ЧеловекДуши
 
11.07.12
08:48
(0)Переписать на прямой запрос.
2 ЧеловекДуши
 
11.07.12
08:49
+ или вернуться обратно на ДБФ
+ Или убрать этот кусок коду из справочника.
3 andrewks
 
11.07.12
08:49
какой скуль?
4 Balabass
 
11.07.12
08:57
Перед запросом поставь Запрос.ВключитьSQL(0)
5 forforumandspam
 
11.07.12
09:01
(0) Это изначально го_внокод. Зачем знать остатки по всем складам? Каждая строчка в форме списка - новый запрос к базе. Сколько элементов в справочнике? Оно тебе надо?

А вообще: http://forum.infostart.ru/forum26/topic60245/
6 andrewks
 
11.07.12
09:12
(4) где ты тут увидел Запрос?
7 Maximysis
 
11.07.12
10:14
(5) Знаю, код корявый. база самописная писалась кем попало(
Но в форме нужно получать остаток выбранного товара, так менеджеры привыкли работать.
А сылка здесь не по теме.
8 Maximysis
 
11.07.12
10:17
(3) SQL 2005 с понижением до 2000, но ИМХО это не важно.
9 VladZ
 
11.07.12
10:17
(0) Получай остатки при открытии формы списка номенклатуры. Сливай эту инфу в ТЗ и бери остаток из ТЗ.
10 Maximysis
 
11.07.12
10:18
(9) номенклатуры более 2 000 элементов. тормоза будут
11 zak555
 
11.07.12
10:18
(0) неправильная логика

делать надо так :


1. выполнить запрос по всей номенклатуре и с нужным фильтром
2. при наведении на строку вызывай функция, в которой будет что-то типа  бухИт.ПолучитьСубконто(1,, ТекущийЭлемент) + количество
12 Ёпрст
 
11.07.12
10:19
(8) это важно.
Верни совместимость как было + все библиотеки взад + используй секретный релиз платформы.
13 forforumandspam
 
11.07.12
10:19
(7) Ссылка по теме. Сколько раз мусолилось, что SQL медленней файловой работает.
14 Maximysis
 
11.07.12
10:25
(12) Попробывал 90 2005 также тормозит. тормоза не из за сиквела а из за запросав к БИ.
15 v4442
 
11.07.12
10:28
Наверно потому в  SQL постоянно делается запрос, а дбф один раз слела и потом полу
16 v4442
 
11.07.12
10:29
+15 а потом пользуйся.
17 Maximysis
 
11.07.12
10:29
(1) Я в прямых запросах не силен. Не подскажиш ...
18 v4442
 
11.07.12
10:31
(17) какая разница, дело не в этом. Может сделат поле с остатками и туда заносить остатки при их изменении.
19 Maximysis
 
11.07.12
10:31
попробую ка (11) посоветовал.
20 zak555
 
11.07.12
10:53
кстати, а как ты БИполучаешь у себ я?
21 Maximysis
 
11.07.12
11:47
(20) в "Тип" передаю строку счета на форме
Функция ОстатокТовара(Тип)
   БИ=СоздатьОбъект("БухгалтерскиеИтоги");
   ОстатокПоСчету=0;
     Если (ТекущийЭлемент().Выбран() = 1) и (ТекущийЭлемент().ЭтоГруппа() = 0) Тогда
       Счет=СчетПоКоду(Тип,ПланыСчетов.Забалансовый);
       ОстатокПоСчету =(БИ.СКД(Счет,"К",,ТекущийЭлемент()))-(БИ.СКК(Счет,"К",,ТекущийЭлемент()));
   КонецЕсли;
   Возврат ОстатокПоСчету;
КонецФункции
22 Попытка1С
 
11.07.12
11:48
Тут нужен параметризированый скл запрос, самое то.
23 Ёпрст
 
11.07.12
12:00
(21) это не верно, первое, би создавать в цикле, второе, проверять на выбран - при этом тащится весь объект на клиента..ну и ЭтоГруппа - то же один из самых тормознутых методов справочника.