|
Цикл в запросе | ☑ | ||
---|---|---|---|---|
0
user4fun
19.03.19
✎
12:14
|
Уважаемые форумчане! Как убрать запрос из цикла ребят помогите.
Для Каждого СтрТЧ из Объект.Товары Цикл ЗапросЦенаОстаток = Новый Запрос; ЗапросЦенаОстаток.УстановитьПараметр("Номенклатура", СтрТЧ.Номенклатура); ЗапросЦенаОстаток.УстановитьПараметр("ТекДата", ТекущаяДата()); ЗапросЦенаОстаток.Текст = "ВЫБРАТЬ | ТоварыНаСкладахВПродажныхЦенахОстатки.Номенклатура, | ТоварыНаСкладахВПродажныхЦенахОстатки.Цена, | ТоварыНаСкладахВПродажныхЦенахОстатки.КоличествоОстаток * ТоварыНаСкладахВПродажныхЦенахОстатки.Цена КАК Сумма, | ТоварыНаСкладахВПродажныхЦенахОстатки.ХарактеристикаНоменклатуры |ИЗ | РегистрНакопления.ТоварыНаСкладахВПродажныхЦенах.Остатки(&ТекДата, ) КАК ТоварыНаСкладахВПродажныхЦенахОстатки |ГДЕ | ТоварыНаСкладахВПродажныхЦенахОстатки.Номенклатура = &Номенклатура"; Результат = ЗапросЦенаОстаток.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Если СтрТЧ.Номенклатура = Выборка.Номенклатура И СтрТЧ.Цена <> Выборка.Цена И СтрТЧ.ХарактеристикаНоменклатуры = Выборка.ХарактеристикаНоменклатуры Тогда СтрТЧ.Цена = Выборка.Цена; СтрТЧ.Сумма = Выборка.Сумма; Предупреждение("В связи с новой переоценкой, цена в " + СтрТЧ.Номенклатура + " изменена на новую", , "ПЕРЕОЦЕНКА") КонецЕсли; КонецЦикла; КонецЦикла; |
|||
1
palsergeich
19.03.19
✎
12:15
|
Передавать массив номерклатуры в запрос и ограничить виртуальную таблицу.
|
|||
2
user4fun
19.03.19
✎
12:17
|
(1) Напишите пожалуйста что значит ограничить виртуальную таблицу?
|
|||
3
Vakhrin
19.03.19
✎
12:19
|
Это из какого теста? )
|
|||
4
lodger
19.03.19
✎
12:19
|
сделать ЗапросЦенаОстаток перед циклом.
Остатки(&ТекДата, Номенклатура В (&Номенклатура)) Результат = ЗапросЦенаОстаток.Выполнить(); НеВыборка = Результат.Выгрузить(); Для Каждого СтрТЧ из Объект.Товары Цикл СтрокаДанных = НеВыборка.Найти(СтрТЧ.Номенклатура); Если СтрокаДанных = неопределено Тогда // нет остатка, надо что-то свистнуть юзеру? Конецесли СтрТЧ.Цена = СтрокаДанных.Цена; СтрТЧ.Сумма = СтрокаДанных.Сумма; |
|||
5
sqr4
19.03.19
✎
12:23
|
(4) при большом размере ТЧ производительность данного алгоритма будет не многим быстрее
|
|||
6
palsergeich
19.03.19
✎
12:24
|
(5) Вы замеряли? И на каких значениях?
Я могу сказать что при большой базе Ваш алгоритм будет работать минуты, а этот доли секунд. |
|||
7
sqr4
19.03.19
✎
12:25
|
(5) Какой мой?
|
|||
8
RomanYS
19.03.19
✎
12:25
|
(5) при всей неоптимальности (4) будет НАмного быстрее (0) особенно на большом размере
|
|||
9
sqr4
19.03.19
✎
12:25
|
(8) Согласен)
|
|||
10
Fish
19.03.19
✎
12:25
|
Получать данные ТЧ плюс остатки одним запросом, и не парить мозг.
|
|||
11
sqr4
19.03.19
✎
12:26
|
Опять я в (5) не так выразился.
|
|||
12
OpKc
19.03.19
✎
12:26
|
Лучше передать таблицу с номенклатурой, ценой и характеристикой и в запросе все условия сразу прописать. Там же условие ещё идёт при обработке результата запроса
"Если СтрТЧ.Номенклатура = Выборка.Номенклатура И СтрТЧ.Цена <> Выборка.Цена И СтрТЧ.ХарактеристикаНоменклатуры = Выборка.ХарактеристикаНоменклатуры Тогда" Можно сразу сократить выборку. |
|||
13
palsergeich
19.03.19
✎
12:26
|
(7) перепутал Вас с автором, сорри
|
|||
14
Конструктор1С
19.03.19
✎
12:27
|
Цена ещё и измерение? о_О
|
|||
15
Конструктор1С
19.03.19
✎
12:29
|
А вообще, (0) просто ходячее пособие, как НЕ надо делать)
|
|||
16
OpKc
19.03.19
✎
12:30
|
(15) ощущение, что и правда тест какой-то
|
|||
17
user4fun
19.03.19
✎
13:33
|
Всем спасибо. Задача выполнена.
|
|||
18
xXeNoNx
19.03.19
✎
13:41
|
(17) Боюсь даже представить...
|
|||
19
palsergeich
19.03.19
✎
13:43
|
(18) да норм, я сегодня денежку заработал за то, что запрос поправил после аналогичного креакла (14)
|
|||
20
xXeNoNx
19.03.19
✎
13:43
|
Представляем что документе 100 строк и все они в выборке, а тут бах и это:
Предупреждение("В связи с новой переоценкой, цена в " + СтрТЧ.Номенклатура + " изменена на новую", , "ПЕРЕОЦЕНКА") |
|||
21
xXeNoNx
19.03.19
✎
13:45
|
(19) ну норм..., че.., пусть продолжают продолжать тогда..
|
|||
22
xXeNoNx
19.03.19
✎
13:46
|
(0) Для нормальных пацанов скинешь решение-то?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |