|
v7: Запрос в SQL оочень медленно стал работать | ☑ | ||
---|---|---|---|---|
0
sammmm
10.08.11
✎
10:12
|
В запросе
|Период с ДатаДок по ВсДата; |ВидТМЦ = Регистр.ВыпускГП.ВидТМЦ; |МОЛ1 = Регистр.ВыпускГП.МОЛ; |Продукция = Регистр.ВыпускГП.Наименование; |Док = Регистр.ВыпускГП.Док; |Количество = Регистр.ВыпускГП.Количество; |ВесЕдиницы = Регистр.ВыпускГП.ВесЕдиницы; |Функция КоличествоКонОст = КонОст(Количество); |Группировка Док упорядочить по Док.ДатаДок; |Условие(Продукция = Наименование); |Условие(МОЛ1 = {МОЛ}); после перехода на sql стала оочень долго выполняться функция |Функция КоличествоКонОст = КонОст(Количество); может кто-нибудь знает как её обойти? |
|||
1
sammmm
10.08.11
✎
10:14
|
Если что, документ Расходная накладная. ОбработкаПроведения
|
|||
2
Гефест
10.08.11
✎
10:16
|
За черный запрос в скульной базе при проведении знаешь какое место отрывают?
|
|||
3
AeDen
10.08.11
✎
10:17
|
попробуй ВключитьSQL(0) (вроде, или 1)
|
|||
4
sammmm
10.08.11
✎
10:18
|
(2) нечего не знаю, моя хата скраю(с) если честно это не я писал
|
|||
5
sammmm
10.08.11
✎
10:19
|
(3) Всё равно очень долго
|
|||
6
Ёпрст
10.08.11
✎
10:20
|
(0)
штатно - установить фильтры, рассчитать, если нужно регистр + ВыгрузитьИтоги() а так, прямой запрос - наше всё. |
|||
7
Ёпрст
10.08.11
✎
10:20
|
+6 да, то, что в (0) - в топку без вариантов.
|
|||
8
sammmm
10.08.11
✎
10:21
|
+4 тут программистов до меня около 10 программистов работало и каждый свою лепту внёс
|
|||
9
sammmm
10.08.11
✎
10:21
|
(6) подскажи пожалуйста что за фильтры
|
|||
10
Гефест
10.08.11
✎
10:21
|
(8) Виноватым все равно тебя назначат. Так что делай как в (6)
|
|||
11
sammmm
10.08.11
✎
10:23
|
Рассчитать я так понимаю нужно командой РассчитатьРегистрыПО??
|
|||
12
sammmm
10.08.11
✎
10:24
|
непонятно только что за фильтры
|
|||
13
ДенисЧ
10.08.11
✎
10:26
|
(12) УстановитьЗначениеФильтра()
По продукции и МОЛ |
|||
14
Ёпрст
10.08.11
✎
10:29
|
(11) для начала, нужно установить, нужно ли вообще временный расчет делать.
|
|||
15
sammmm
10.08.11
✎
10:34
|
(14) мне кажется нужно. Там если есть остатки то выполняется действие. Стоит вот так
Если ЗапросГП.КоличествоКонОст >0 Тогда ... ... |
|||
16
Гефест
10.08.11
✎
10:36
|
Загляни в типовую торговлю. Там примеров полно
|
|||
17
sammmm
10.08.11
✎
10:36
|
ТабЗнач = СоздатьОбъект("ТаблицаЗначений");
РегВыпускГП = СоздатьОбъект("Регистр.ВыпускГП"); РегВыпускГП.УстановитьЗначениеФильтра(Регистр.ВыпускГП.Наименование,Наименование); РегВыпускГП.УстановитьЗначениеФильтра(Регистр.ВыпускГП.МОЛ,МОЛ); РегВыпускГП.РассчитатьРегистрыПо(ВсДата); РегВыпускГП.ВыгрузитьИтоги(ТабЗнач); ТабЗнач.ВыбратьСтроки(); |
|||
18
sammmm
10.08.11
✎
10:37
|
что-то похожее?
|
|||
19
sammmm
10.08.11
✎
10:45
|
Правда пишет ошибку
РегВыпускГП.УстановитьЗначениеФильтра(Регистр.ВыпускГП.Наименование,Наименование); {Документ.РасходнаяНакладная.Модуль Документа(832)}: Реквизит с данным идентификатором не найден! |
|||
20
Андрей_Андреич
naïve
10.08.11
✎
10:47
|
РегВыпускГП.УстановитьЗначениеФильтра(Регистр.ВыпускГП.Продукция ,Наименование);
|
|||
21
sammmm
10.08.11
✎
10:48
|
на (20) Поле агрегатного объекта не обнаружено (Продукция). Да и неоткуда ему там взяться
|
|||
22
sammmm
10.08.11
✎
10:51
|
поставил
РегВыпускГП.УстановитьЗначениеФильтра("Наименование",Наименование); вроде всё норм |
|||
23
sammmm
10.08.11
✎
11:00
|
когда стоит
РассчитатьРегистрыПо(ВсДата); Пишет что не может после ТА считать, хотя ВСдата=ТА |
|||
24
AeDen
10.08.11
✎
11:05
|
а вот тут обычно у нормальных людей начинается вдумчивое чтение документации.
|
|||
25
viktor_vv
10.08.11
✎
11:05
|
А что такое ВсДата ?
|
|||
26
viktor_vv
10.08.11
✎
11:06
|
Так если ты всегда на дату ТА хочешьполучать, то и не надо РассчитатьРегистрыПо.
|
|||
27
viktor_vv
10.08.11
✎
11:07
|
Только скорее всего тебе на текущий документ надо будет. РассчитатьРегистрыНа(ТекущийДокумент()).
|
|||
28
sammmm
10.08.11
✎
11:09
|
ВсДата=КонМесяца(ДатаДок)
А КонОст() - на текущий документ подбивает? |
|||
29
sammmm
10.08.11
✎
11:12
|
По-моему разобрался. Всем кто помого огромнейшее спасибо!
|
|||
30
sammmm
10.08.11
✎
13:17
|
и ещё один вопрос почему когда я убираю из запроса
|Функция КоличествоКонОст = КонОст(Количество); Группировка равна всегда 0??? |
|||
31
sammmm
10.08.11
✎
13:18
|
или пишу
|Функция КоличествоКонОст = Приход(Количество); либо |Функция КоличествоКонОст = Сумма(Количество); всегда группировка 0 |
|||
32
sammmm
10.08.11
✎
13:23
|
сам запрос
|Период с ДатаДок по ВсДата; |ВидТМЦ = Регистр.ВыпускГП.ВидТМЦ; |МОЛ1 = Регистр.ВыпускГП.МОЛ; |Продукция = Регистр.ВыпускГП.Наименование; |Док = Регистр.ВыпускГП.Док; |Количество = Регистр.ВыпускГП.Количество; |ВесЕдиницы = Регистр.ВыпускГП.ВесЕдиницы; |Функция КоличествоКонОст = КонОст(Количество); |Группировка Док упорядочить по Док.ДатаДок; |Условие(Продукция = Наименование); |Условие(МОЛ1 = {МОЛ}); |
|||
33
sammmm
10.08.11
✎
13:36
|
подскажите кто знает!!!
|
|||
34
Ёпрст
10.08.11
✎
13:48
|
(30)
в забросе к регистру обязательным условием является наличие функции . (31) 1. не было прихода за выбранный период в движенияъ регистра 2. функция сумма сама по себе ничего не считает для остаткового регистра (исключение - в аргументе функции реквизит регистра), только совместно с основными функциями - НачОст,КонОст,Приход,Расход |
|||
35
sammmm
10.08.11
✎
13:49
|
(34) ооо хоть кто-то откликнулся. А ты не знаешь как можно обойти КонОст или НачОст. А то больно долго считает
|
|||
36
sammmm
10.08.11
✎
13:51
|
ооо а расход есть. группировка отрабатывает
|
|||
37
sammmm
10.08.11
✎
14:02
|
блин так приход или расход не везде же будет((
|
|||
38
Ёпрст
10.08.11
✎
14:06
|
(35) ВыгрузитьИтоги, это если штатно, прямой запрос - это если надо еще быстрее.
|
|||
39
sammmm
10.08.11
✎
14:13
|
С прямым запросом не выйдет, 1с++ не разрешают юзать. А за советы спасибо большое, уже который раз помогаешь и походу не одному мне
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |