|
Цикл в запросе | ☑ | ||
---|---|---|---|---|
0
minsk1s
12.08.14
✎
13:22
|
Сижу и торможу...
Имею запрос: "ВЫБРАТЬ | ПродажиПоКонтрагентамОбороты.Фирма КАК Фирма, | ПродажиПоКонтрагентамОбороты.Склад КАК Склад, | ПродажиПоКонтрагентамОбороты.Контрагент КАК Контрагент, | ПродажиПоКонтрагентамОбороты.Договора КАК Договора, | ПродажиПоКонтрагентамОбороты.СЗР КАК СЗР, | СУММА(ПродажиПоКонтрагентамОбороты.КоличествоОборот) КАК КоличествоОборот, | СУММА(ПродажиПоКонтрагентамОбороты.СуммаВалОборот) КАК СуммаВалОборот, | СУММА(ПродажиПоКонтрагентамОбороты.СуммаБелОборот) КАК СуммаБелОборот |ИЗ | РегистрНакопления.ПродажиПоКонтрагентам.Обороты(&НачДата, &КонДата, Регистратор,) КАК ПродажиПоКонтрагентамОбороты"; Если УчитыватьТолькоСПризнакомЭтоДеталь=Истина Тогда Запрос.Текст = Запрос.Текст +" ГДЕ | СЗР.ЭтоДеталь = Истина"; КонецЕсли; Если УчитыватьТолькоСПризнакомЭтоСемена=Истина Тогда Запрос.Текст = Запрос.Текст +" ГДЕ | СЗР.ЭтоСемена = Истина"; КонецЕсли; Если ИсключитьСПризнакомЭтоДеталь=Истина Тогда Запрос.Текст = Запрос.Текст +" ГДЕ | СЗР.ЭтоДеталь = Ложь"; КонецЕсли; Если ИсключитьСПризнакомЭтоСемена=Истина Тогда Запрос.Текст = Запрос.Текст +" ГДЕ | СЗР.ЭтоСемена = Ложь"; КонецЕсли; Если СортировкаПоПокупателям=Истина Тогда Запрос.Текст = Запрос.Текст +" СГРУППИРОВАТЬ ПО | ПродажиПоКонтрагентамОбороты.Контрагент, | ПродажиПоКонтрагентамОбороты.Договора, | ПродажиПоКонтрагентамОбороты.Склад, | ПродажиПоКонтрагентамОбороты.СЗР, | ПродажиПоКонтрагентамОбороты.Фирма УПОРЯДОЧИТЬ ПО |Контрагент, |Договора, |Склад, |СЗР, |Фирма"; ИначеЕсли СортировкаПоДоговорам=Истина Тогда Запрос.Текст = Запрос.Текст +" СГРУППИРОВАТЬ ПО | ПродажиПоКонтрагентамОбороты.Договора, | ПродажиПоКонтрагентамОбороты.Контрагент, | ПродажиПоКонтрагентамОбороты.Склад, | ПродажиПоКонтрагентамОбороты.СЗР, | ПродажиПоКонтрагентамОбороты.Фирма УПОРЯДОЧИТЬ ПО |Договора, |Контрагент, |Склад, |СЗР, |Фирма"; ИначеЕсли СортировкаПоТоварам=Истина Тогда Запрос.Текст = Запрос.Текст +" СГРУППИРОВАТЬ ПО | ПродажиПоКонтрагентамОбороты.СЗР, | ПродажиПоКонтрагентамОбороты.Контрагент, | ПродажиПоКонтрагентамОбороты.Договора, | ПродажиПоКонтрагентамОбороты.Склад, | ПродажиПоКонтрагентамОбороты.Фирма УПОРЯДОЧИТЬ ПО |СЗР, |Контрагент, |Договора, |Склад, |Фирма"; ИначеЕсли СортировкаПоФирмам=Истина Тогда Запрос.Текст = Запрос.Текст +" СГРУППИРОВАТЬ ПО | ПродажиПоКонтрагентамОбороты.Фирма, | ПродажиПоКонтрагентамОбороты.Контрагент, | ПродажиПоКонтрагентамОбороты.Договора, | ПродажиПоКонтрагентамОбороты.Склад, | ПродажиПоКонтрагентамОбороты.СЗР УПОРЯДОЧИТЬ ПО |Фирма, |Контрагент, |Договора, |Склад, |СЗР"; ИначеЕсли СортировкаПоСкладам=Истина Тогда Запрос.Текст = Запрос.Текст +" СГРУППИРОВАТЬ ПО | ПродажиПоКонтрагентамОбороты.Склад, | ПродажиПоКонтрагентамОбороты.СЗР, | ПродажиПоКонтрагентамОбороты.Фирма, | ПродажиПоКонтрагентамОбороты.Контрагент, | ПродажиПоКонтрагентамОбороты.Договора УПОРЯДОЧИТЬ ПО |Склад, |СЗР, |Фирма, |Контрагент, |Договора"; КонецЕсли; Запрос.Текст = Запрос.Текст + " АВТОУПОРЯДОЧИВАНИЕ"; Если ВыводитьПромежуточныеИтогиСогласноСортировки=Истина Тогда Если СортировкаПоПокупателям=Истина Тогда Запрос.Текст = Запрос.Текст + " ИТОГИ ПО | Контрагент"; ИначеЕсли СортировкаПоДоговорам=Истина Тогда Запрос.Текст = Запрос.Текст + " ИТОГИ ПО | Договора"; ИначеЕсли СортировкаПоТоварам=Истина Тогда Запрос.Текст = Запрос.Текст + " ИТОГИ ПО | СЗР"; ИначеЕсли СортировкаПоФирмам=Истина Тогда Запрос.Текст = Запрос.Текст + " ИТОГИ ПО | Фирма"; ИначеЕсли СортировкаПоСкладам=Истина Тогда Запрос.Текст = Запрос.Текст + " ИТОГИ ПО | Склад"; КонецЕсли; КонецЕсли; Запрос.УстановитьПараметр("Договора", Договора); Запрос.УстановитьПараметр("Контрагент", Контрагент); Запрос.УстановитьПараметр("СЗР", СЗР); Запрос.УстановитьПараметр("Склад", Склад); Запрос.УстановитьПараметр("Фирма", Фирма); Запрос.УстановитьПараметр("НачДата", НачДата); Запрос.УстановитьПараметр("КонДата", КонДата); Результат = Запрос.Выполнить(); ВыборкаДоговора = Результат.Выбрать(); Как в запрос перенести условие: Пока ВыборкаДоговора.Следующий() Цикл Если НеУчитыватьНашиФирмыВПокупателях=1 Тогда Продолжить1=0; Пока СпрФирмы.следующий() цикл Если СпрФирмы.Соответствие=ВыборкаДоговора.Контрагент Тогда Продолжить1=1; КонецЕсли; КонецЦикла; Если Продолжить1=1 Тогда Продолжить; КонецЕсли; КонецЕсли; |
|||
1
Ненавижу 1С
гуру
12.08.14
✎
13:24
|
это переписывание кода с 7.7 что ли?
|
|||
2
minsk1s
12.08.14
✎
13:24
|
(1) угу
|
|||
3
Ненавижу 1С
гуру
12.08.14
✎
13:27
|
(2) оно и видно
1. что будет, если будет выполняться более одного условия? 2. алиасы (СЗР) в условии применять нельзя 3. условия на измерения лучше сделать в параметрах вирт. таблицы 4. условие СЗР.ЭтоСемена = Истина выглядит некрасиво, проще СЗР.ЭтоСемена Если УчитыватьТолькоСПризнакомЭтоДеталь=Истина Тогда Запрос.Текст = Запрос.Текст +" ГДЕ | СЗР.ЭтоДеталь = Истина"; КонецЕсли; Если УчитыватьТолькоСПризнакомЭтоСемена=Истина Тогда Запрос.Текст = Запрос.Текст +" ГДЕ | СЗР.ЭтоСемена = Истина"; КонецЕсли; Если ИсключитьСПризнакомЭтоДеталь=Истина Тогда Запрос.Текст = Запрос.Текст +" ГДЕ | СЗР.ЭтоДеталь = Ложь"; КонецЕсли; Если ИсключитьСПризнакомЭтоСемена=Истина Тогда Запрос.Текст = Запрос.Текст +" ГДЕ | СЗР.ЭтоСемена = Ложь"; КонецЕсли; |
|||
4
х86
12.08.14
✎
13:28
|
срочно читать про СКД или построитель
|
|||
5
х86
12.08.14
✎
13:30
|
(3)п4 а ты уверен что СЗР.ЭтоСемена не составной?
|
|||
6
minsk1s
12.08.14
✎
13:31
|
(4) учту. счас запара.
|
|||
7
minsk1s
12.08.14
✎
13:31
|
(3) спасиб. поправил.
|
|||
8
minsk1s
12.08.14
✎
13:32
|
(5) не составной. повезло)
|
|||
9
Ненавижу 1С
гуру
12.08.14
✎
13:32
|
(5) и чего?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |