Имя: Пароль:
1C
1С v8
Помогите с простым запросом.
0 Radion
 
09.08.11
13:49
Как сделать так, чтобы если переменные Склад и Номенклатура пустые, запрос выбирал по всем складам и по всей номенклатуре? А сейчас нужно конкретно указывать склад и номенклатуру. Спасибо.

|ВЫБРАТЬ
|   ТоварыНаСкладахОстатки.Период,
|    ТоварыНаСкладахОстатки.Склад,
|    ТоварыНаСкладахОстатки.Номенклатура,
|    ТоварыНаСкладахОстатки.КоличествоКонечныйОстаток
|ИЗ
|    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач,&ДатаКон,День) КАК ТоварыНаСкладахОстатки
|ГДЕ
|   ТоварыНаСкладахОстатки.Склад = &Склад И ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура
|
   |УПОРЯДОЧИТЬ ПО
   |   ТоварыНаСкладахОстатки.Период
2 Нуф-Нуф
 
09.08.11
13:51
ставь метки в тексте запроса - и по условию на заполненности полей отбора подставляй условия - но тогда неполучится использовать конструктор запроса.

или запихни отчет в скд, программно подключай отборы и получай в тз
3 GROOVY
 
09.08.11
13:51
1. В параметры временных таблиц условие перенеси, иначе тебе голову надо оторвать.
4 Prikum
 
09.08.11
13:51
Использовать иерархию и переменные вывести внутрь виртуальной таблицы
5 Ненавижу 1С
 
гуру
09.08.11
13:51
(0) построитель и параметры в ВТ
6 GROOVY
 
09.08.11
13:52
2. Условие можно сделать таким:
Номенклатура = &Номенклатура ИЛИ &Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
7 Cube
 
09.08.11
13:52
(0) Расстрелять! Или заставь себя перенести отбор в параметры виртуальной таблицы...
8 GoldenDawn
 
09.08.11
13:52
(0)не слушай никого - убрать условие)))
9 Планета Обезьян
 
09.08.11
13:53
А почему бы не соединить 2 таблицы - по всем складам и только по выбранному?
10 Luhtas
 
09.08.11
14:00
(0)

|ВЫБРАТЬ
|   ТоварыНаСкладахОстатки.Период,
|    ТоварыНаСкладахОстатки.Склад КАК Склад,
|    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
|    ТоварыНаСкладахОстатки.КоличествоКонечныйОстаток
|ИЗ
|    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач,&ДатаКон,День, Склад=&Склад ИЛИ &Склад=Значение(Справочник.Склады.ПУстаяСсылка)И Номенклатура=&Номенклатура ИЛИ &Номенклатура=ЗНАЧЕНИЕ(Справочник.Номенклатура.ПУстаяСсылка)) КАК ТоварыНаСкладахОстатки

   |УПОРЯДОЧИТЬ ПО
   |   ТоварыНаСкладахОстатки.Период

Как-то вот так...
11 GROOVY
 
09.08.11
14:01
(10) ИМХО, скобки в условии забыл.
12 Luhtas
 
09.08.11
14:02
(11) Прошу прощения, Павел. Торопился.
13 Ненавижу 1С
 
гуру
09.08.11
14:03
ВЫБРАТЬ
   ТоварыНаСкладахОстатки.Период КАК Период,
   ТоварыНаСкладахОстатки.Склад,
   ТоварыНаСкладахОстатки.Номенклатура,
   ТоварыНаСкладахОстатки.КоличествоКонечныйОстаток
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, День, , {(Склад).*, (Номенклатура).*}) КАК ТоварыНаСкладахОстатки

УПОРЯДОЧИТЬ ПО
   Период
14 iamnub
 
09.08.11
14:06
Во 1С-ники матерые скульщики - лолище.
15 Шапокляк
 
09.08.11
14:07
(0) А в условии вы не пробовали использовать вместо "=" конструкции "В" или "В ИЕРАРХИИ"?
16 iamnub
 
09.08.11
14:10
|ВЫБРАТЬ
|    ТоварыНаСкладахОстатки.Номенклатура,
|    ТоварыНаСкладахОстатки.КоличествоКонечныйОстаток
|ИЗ
|    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач,&ДатаКон,День) КАК ТоварыНаСкладахОстатки
|ГДЕ
|  ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура
|  ИЛИ ИСТИНА = &ФильтрПоНоменклатуреНеЗадан

Запрос.УстановитьПараметр("ФильтрПоНоменклатуреНеЗадан",(Истина или ложь));

Такой запрос откроется конструктором.
17 Ненавижу 1С
 
гуру
09.08.11
14:23
(0) привет, uh534!
18 Radion
 
09.08.11
14:49
Спасибо всем!