Имя: Пароль:
1C
1С v8
Запрос
0 247tsm
 
04.02.12
03:57
Не получается у меня составить простой запрос:
Есть документ ПриходБСО с реквизитами табличной части - ТипБланка (спр.ТипыБСО), Номер (строка), Количество (число).
Нужно выбрать документы ПриходБСО в диапазоне дат от Дата1 по Дата2.
В выборке должны быть поля Дата, ТипБланка, Номер, Количество, а также только те строки, у которых типБланка.Код=8.

Я написал так:

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

но в выборке лишние записи. Я думаю, из-за того, что выборка делается фактически по двум таблицам (раздел ИЗ). Но как сделать по-другому, я не знаю.
Буду рад, если кто-нибудь направит на путь истины или просто напишет правильный запрос.

Спасибо
1 voshka
 
04.02.12
04:03
ПриходБСОтч.Ссылка.Дата КАК Дата
2 GROOVY
 
04.02.12
04:24
ВЫБРАТЬ
   |    ПриходБСОТч.Ссылка.Дата КАК Дата,
   |    ПриходБСОтч.ТипБланка КАК ТипБланка,
   |    ПриходБСОтч.Номер КАК Номер,
   |    ПриходБСОтч.Количество КАК Количество
   |ИЗ
   |    Документ.ПриходБСО.ТабличнаяЧасть1 КАК ПриходБСОтч,
   |ГДЕ
   |    (ПриходБСОТч.Ссылка.Проведен) И
   |    (ПриходБСОТчСсылка.Дата МЕЖДУ &ДатаНач1 И &ДатаКон1) И
   |    (ПриходБСОтч.Бланк.Код=8)";


Можно еще правильнее с соединением заюзать, но лень печатать.
3 247tsm
 
04.02.12
05:29
Ok, GROOVY, спасибо все получилось.
Буду дальше изучать запросы.

Всем спасибо
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший