Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Условия в прямом запросе (число прочтений - 2984 )
Юзеверъ
YaBB Newbies
*
Отсутствует



Сообщений: 9
Зарегистрирован: 30. Августа 2012
Пол: Мужской
Условия в прямом запросе
30. Августа 2012 :: 10:01
Печать  
Добрый день.
Начал изучать прямые запросы. Помогите доработать запрос к БД для 1С 7.7

Есть Оборотный регистр по продажам. в Нем есть ссылка на документ(Накладная). Как выбрать только те документы, которые отгружаются по определенному складу. Реквизит склада в регистрах не учавствует. На сколько я понял, нужно сделать соединение, но не понял, как это работает :( Помогите достроить запрос

ТекстЗапроса = "
     |SELECT
     |      Cast(Left(Продажи.DATE_TIME_IDDOC, 8) AS datetime) Документ_дата,
     |      $Продажи.Покупатель [Покупатель $Справочник.Контрагенты],
     |      $Продажи.Накладная [Накладная $Справочник.Документы],
     |      $Продажи.Филиал [Филиал $Справочник.Подразделение],
     |      $Продажи.Товар [Товар $Справочник.Номенклатура],
     |      $Продажи.Адрес [Адрес $Справочник.Адреса],
     |      Продажи.LINENO_ НомерСтроки,
     |      Sum($Продажи.Количество) СуммаКоличество,
     |      Sum($Продажи.Цена) СуммаЦена,
     |      Sum($Продажи.СуммаБезНДС) СуммаСуммаБезНДС,
     |      Sum($Продажи.Сумма) СуммаСумма            
     |FROM
     |      $Регистр.Продажи AS Продажи With (NOLOCK)
     |WHERE
     |      (Cast(Left(Продажи.DATE_TIME_IDDOC, 8) AS datetime) >= :НачДата)
     |      AND (Cast(Left(Продажи.DATE_TIME_IDDOC, 8) AS datetime) <= :КонДата)
     |GROUP BY
     |      $Продажи.Накладная,
     |      $Продажи.Товар,
     |      Cast(Left(Продажи.DATE_TIME_IDDOC, 8) AS datetime),
     |      $Продажи.Покупатель,
     |      $Продажи.Филиал,
     |      $Продажи.Адрес,
     |      Продажи.LINENO_
     |";      

Реквизит склада будет Накладная.Мол
Заранее спасибо за помощь.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Условия в прямом запросе
Ответ #1 - 30. Августа 2012 :: 10:26
Печать  
Вместо

|WHERE
    |      (Cast(Left(Продажи.DATE_TIME_IDDOC, 8) AS datetime) >= :НачДата)
    |      AND (Cast(Left(Продажи.DATE_TIME_IDDOC, 8) AS datetime) <= :КонДата)


Пиши
Код
Выбрать все
|WHERE
     |	Продажи.DATE_TIME_IDDOC >= :НачДата
     |	AND Продажи.DATE_TIME_IDDOC <= :КонДата~
 



Привязать склад одним из способов :
1.может можно увязать каким то отношением подразделения и склады и его использать
2.Переделать регистр и писать доп реквизит склад.
3.Соеденять с таблицой каждого из видов документов и вытаскивать оттуда только один склад.
лучше сделать сначала для одного вида документов а
остальные через union all
  
Наверх
 
IP записан
 
Юзеверъ
YaBB Newbies
*
Отсутствует



Сообщений: 9
Зарегистрирован: 30. Августа 2012
Пол: Мужской
Re: Условия в прямом запросе
Ответ #2 - 30. Августа 2012 :: 10:31
Печать  
За поправку спасибо, исправил.

Вообще была мысль (в виду отсутсвия опыта) выбрать все документы, удовлетворяющие условиям (период, склад, контрагент, товар или товарная группа). После перебором получать движение регистра, уже имея документ. Но, подозреваю, будет долго.
Возможности добавить склад в регистры нет, увы (
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Условия в прямом запросе
Ответ #3 - 30. Августа 2012 :: 10:37
Печать  
Юзеверъ писал(а) 30. Августа 2012 :: 10:31:
За поправку спасибо, исправил.

Вообще была мысль (в виду отсутсвия опыта) выбрать все документы, удовлетворяющие условиям (период, склад, контрагент, товар или товарная группа). После перебором получать движение регистра, уже имея документ. Но, подозреваю, будет долго.
Возможности добавить склад в регистры нет, увы (

перечисли ВСЕ  виды документов которые хочешь в своем запросе.
  
Наверх
 
IP записан
 
Юзеверъ
YaBB Newbies
*
Отсутствует



Сообщений: 9
Зарегистрирован: 30. Августа 2012
Пол: Мужской
Re: Условия в прямом запросе
Ответ #4 - 30. Августа 2012 :: 10:43
Печать  
1. ТТН
2. АктПриема
3. Перемещение
4. Возврат

Если есть возможность на примере показать, как это написать, для того, чтобы понять, как это работает, буду очень благодарен...
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Условия в прямом запросе
Ответ #5 - 30. Августа 2012 :: 11:25
Печать  
Надо сделать грфу отбора по складу и соединиться с таблицей отбора
  
Наверх
IP записан
 
Юзеверъ
YaBB Newbies
*
Отсутствует



Сообщений: 9
Зарегистрирован: 30. Августа 2012
Пол: Мужской
Re: Условия в прямом запросе
Ответ #6 - 30. Августа 2012 :: 12:10
Печать  
Всем Спасибо. Разобрался
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать