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