|
Помогите избавится от запроса в цикле!!! | ☑ | ||
---|---|---|---|---|
0
Eeelena
10.06.14
✎
14:50
|
Ребята, посоветуйте пожалуйста, как можно избавится от запроса в цикле???
Пока Отборы.Следующий() Цикл Если Отборы.Прайс<>Перечисления.ПеречислениеПрайс.ПустаяСсылка() Тогда ГруппыНом.ЗагрузитьЗначения(Отборы.ГруппыНоменклауры.ВыгрузитьКолонку("Группы")); ЗначенияСвойств.ЗагрузитьЗначения(Отборы.ЗначенияСвойств.ВыгрузитьКолонку("Значение")); Если ЗначенияСвойств.Количество() > 0 Тогда Запрос1.УстановитьПараметр("Значение", ЗначенияСвойств); Запрос1.УстановитьПараметр("Группы", ГруппыНом); ТЗНом = Запрос1.Выполнить().Выгрузить(); КонецЕсли; КонецЕсли; Если ТЗНом <>Неопределено Тогда ПрошлаОтбор=ТЗНом.Найти(Номенклатура,"Номенклатура")<>Неопределено;//Результат.Найти Если ПрошлаОтбор=Истина Тогда СтрНом=Номенклатура; Расчитать(Отборы.Ссылка,СтрНом); Если ПрошлаОтборПоПоставщикам=Истина И ((ЗАК>=Отборы.Интервал1 И ЗАК<=Отборы.Интервал2) ИЛИ (Отборы.Интервал1=0 И Отборы.Интервал2=0) ) Тогда Строка=СтрЗаменить(Строка, ";в наличии1;", ";"+КОЛ+";"); Строка=СтрЗаменить(Строка, ";в наличии0;", ";"+КОЛ+";"); Строка=СтрЗаменить(Строка, ";в наличии;", ";"+КОЛ+";"); ИмяПрайса=Отборы.Прайс; Наценка=Отборы.Наценка; Если Наценка<>0 И ИмяПрайса=Перечисления.ПеречислениеПрайс.Прайс1 Тогда Строка=Строка+ ";"+Формат(ЗАК+ЗАК*(Наценка/100),"ЧГ=0;ЧДЦ=2;ЧРД='.'"); ИначеЕсли Наценка<>0 И ИмяПрайса=Перечисления.ПеречислениеПрайс.Прайс2 Тогда Строка=Строка+ ";"+Формат(ЗАК+ЗАК*(Наценка/100),"ЧГ=0;ЧДЦ=2;ЧРД='.'"); ИначеЕсли Наценка<>0 И ИмяПрайса=Перечисления.ПеречислениеПрайс.Прайс3 Тогда Строка=Строка+ ";"+Формат(ЗАК+ЗАК*(Наценка/100),"ЧГ=0;ЧДЦ=2;ЧРД='.'"); ИначеЕсли Наценка<>0 И ИмяПрайса=Перечисления.ПеречислениеПрайс.Прайс4 Тогда Строка=Строка+ ";"+Формат(ЗАК+ЗАК*(Наценка/100),"ЧГ=0;ЧДЦ=2;ЧРД='.'"); ИначеЕсли Наценка<>0 И ИмяПрайса=Перечисления.ПеречислениеПрайс.Прайс5 Тогда Строка=Строка+ ";"+Формат(ЗАК+ЗАК*(Наценка/100),"ЧГ=0;ЧДЦ=2;ЧРД='.'"); ИначеЕсли Наценка<>0 И ИмяПрайса=Перечисления.ПеречислениеПрайс.Прайс6 Тогда Строка=Строка+ ";"+Формат(ЗАК+ЗАК*(Наценка/100),"ЧГ=0;ЧДЦ=2;ЧРД='.'"); ИначеЕсли Наценка<>0 И ИмяПрайса=Перечисления.ПеречислениеПрайс.Прайс7 Тогда Строка=Строка+ ";"+Формат(ЗАК+ЗАК*(Наценка/100),"ЧГ=0;ЧДЦ=2;ЧРД='.'"); ИначеЕсли Наценка<>0 И ИмяПрайса=Перечисления.ПеречислениеПрайс.Прайс8 Тогда Строка=Строка+ ";"+Формат(ЗАК+ЗАК*(Наценка/100),"ЧГ=0;ЧДЦ=2;ЧРД='.'"); ИначеЕсли Наценка<>0 И ИмяПрайса=Перечисления.ПеречислениеПрайс.Прайс9 Тогда Строка=Строка+ ";"+Формат(ЗАК+ЗАК*(Наценка/100),"ЧГ=0;ЧДЦ=2;ЧРД='.'"); ИначеЕсли Наценка<>0 И ИмяПрайса=Перечисления.ПеречислениеПрайс.Прайс10 Тогда Строка=Строка+ ";"+Формат(ЗАК+ЗАК*(Наценка/100),"ЧГ=0;ЧДЦ=2;ЧРД='.'"); КонецЕсли; Иначе Наценка=0; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; |
|||
1
Kalambur
10.06.14
✎
14:51
|
фотография в личке моментально дает кучу ответов
|
|||
2
jsmith82
10.06.14
✎
14:51
|
закэшировать?
|
|||
3
Wobland
10.06.14
✎
14:51
|
а где тут запрос? и расчитать напиши правильно
|
|||
4
Eeelena
10.06.14
✎
14:52
|
Отборы это выборка из справочника отборы, в каждом отборе хранятся значения, группы и свойства, Запрос1 выбирает номенклатуру соответсвующую этим значениям и свойствам
|
|||
5
H A D G E H O G s
10.06.14
✎
14:52
|
Жесть как она есть
|
|||
6
Kalambur
10.06.14
✎
14:52
|
кстати а где запрос?
|
|||
7
Eeelena
10.06.14
✎
14:53
|
(3) ВЫБРАТЬ
ЗначенияСвойствНоменклатуры.Номенклатура, ЗначенияСвойствНоменклатуры.СвойствоНоменклатуры, ЗначенияСвойствНоменклатуры.Значение ИЗ РегистрСведений.ЗначенияСвойствНоменклатуры КАК ЗначенияСвойствНоменклатуры ГДЕ ЗначенияСвойствНоменклатуры.Номенклатура В ИЕРАРХИИ(&Группы) И ЗначенияСвойствНоменклатуры.Значение В(&Значение) |
|||
8
Wobland
10.06.14
✎
14:53
|
(4) хрень какая
|
|||
9
Eeelena
10.06.14
✎
14:54
|
(8) конфа самописная пришлось мудрить
|
|||
10
Маратыч
10.06.14
✎
14:54
|
(4) А соединения для чего придумали? Одним запросом выбирайте и отборы, и номенклатуру, в чем проблема-то.
|
|||
11
Мэс33
10.06.14
✎
14:54
|
Жесть.
|
|||
12
Маратыч
10.06.14
✎
14:56
|
+(10) И вообще, визуализируйте для себя логику всей этой процедуры и полностью перепишите. Глядя на этот адЪ, глаза кровоточат =)
|
|||
13
Fish
10.06.14
✎
14:57
|
(9) Руки бы поотрывать таким "самописцам".
|
|||
14
Wobland
10.06.14
✎
14:57
|
(9) мож, всё заново, а? ну пожалуйста
|
|||
15
H A D G E H O G s
10.06.14
✎
14:59
|
(14) Может лучше голубушку замуж и к плите?
|
|||
16
Fish
10.06.14
✎
15:00
|
(0) И кстати, твоё условие "Если ПрошлаОтбор=Истина Тогда" - никогда не выполнится.
|
|||
17
Eeelena
10.06.14
✎
15:00
|
(13)что вам тут не нравится?
|
|||
18
Wobland
10.06.14
✎
15:00
|
(15) я не участвую. кто смелый? ;)
|
|||
19
Eeelena
10.06.14
✎
15:01
|
(16) представь себе выполняется!
|
|||
20
Wobland
10.06.14
✎
15:01
|
(17) ответы "всё" или (Васильев с нами) "весь этот бред" устроят?
|
|||
21
lex-kex
10.06.14
✎
15:02
|
Ник: Eeelena
Настоящее имя: Анна (17) Все нормально |
|||
22
Fish
10.06.14
✎
15:02
|
(19) Не верю.
|
|||
23
Wobland
10.06.14
✎
15:03
|
(22) глабвух сказал, что выполняется - не спорь
|
|||
24
Fish
10.06.14
✎
15:03
|
(19) Да, не заметил вторую часть. Но всё равно - так писать - это АДЪ
|
|||
25
Eeelena
10.06.14
✎
15:04
|
(24)почему?
|
|||
26
Wobland
10.06.14
✎
15:05
|
(25) святая корова! программист - это профессия, на минуточку. которой иногда нужно учиться
|
|||
27
Dionis Sergeevich
10.06.14
✎
15:05
|
я не пойму - вторым запросом что делается?
|
|||
28
H A D G E H O G s
10.06.14
✎
15:06
|
(25) Вы умеете готовить?
|
|||
29
Fish
10.06.14
✎
15:06
|
(25) Ну например, какой смысл в конструкции
"Если Наценка<>0 И ИмяПрайса=Перечисления.ПеречислениеПрайс.Прайс1 Тогда" Лепить кучу ИНАЧЕЕСЛИ, если во всех навскидку делается одно и то же? Или я опять что-то не заметил? |
|||
30
Dionis Sergeevich
10.06.14
✎
15:08
|
проверяем на то что есть свойство просто по отборам? суть написанного не понимаю) Ну а так на вскидку ВНУТРЕННЕЕ СОЕДИНЕНИЕ нужно
|
|||
31
H A D G E H O G s
10.06.14
✎
15:09
|
Ооо, Денич Сергеевич прокачал свой запросописательный скил.
|
|||
32
Segate
10.06.14
✎
15:10
|
(26) вот че ты врешь? Зачем учиться? "Тяп-ляп и в продакшн"
|
|||
33
Dionis Sergeevich
10.06.14
✎
15:10
|
(31) Эм. Ну а то, вчера научился
|
|||
34
H A D G E H O G s
10.06.14
✎
15:11
|
(25) Если умеете готовить - половник вам в руки - и - вперед!
http://www.avito.ru/moskva/predlozheniya_uslug/prigotovlyu_borsch_348780919 |
|||
35
Eeelena
10.06.14
✎
15:11
|
ладно ребята спасибо за ваши очень познавательные комментарии, разобралась.
|
|||
36
Fish
10.06.14
✎
15:15
|
(35) Будешь всё переписывать заново?
|
|||
37
фросия
10.06.14
✎
15:21
|
(36) зачем? конфа ж самописная, сойдет и так :)
|
|||
38
Маратыч
10.06.14
✎
15:23
|
(37) Дык тогда проще всего оставить все как есть из принципа: "Работает - не трожь" :)
|
|||
39
Мэс33
10.06.14
✎
16:01
|
Ей платят за количество написанных строк :-)
|
|||
40
inspam
10.06.14
✎
16:14
|
(0) Анна, ты ли?!
|
|||
41
МойКодУныл
10.06.14
✎
16:15
|
(39) Возможно, тут в соседней ветке бухгалтерам платят за количество проводок.
|
|||
42
Мэс33
11.06.14
✎
12:12
|
(41) Но это вообще зло... :-)
За количество проводок платить :-). Сегодня твоя смена - с тебя 1000 проводок как минимум. |
|||
43
VladZ
11.06.14
✎
12:22
|
Легко!
1. Удалить указанный го***код. 2. Уточнить задачу. 3. Написать код, согласно п.2. 4. Бинго! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |