Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Перешл с SQL на DBF как быть с запросом (число прочтений - 9282 )
n0_0ne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 02. Марта 2009
Re: Перешл с SQL на DBF как быть с запросом
Ответ #15 - 21. Апреля 2010 :: 07:12
Печать  
Eprst
Ув. можно еще ваш мозг немного поюзать )))
Теперь в этот запрос, надо добавить исключение. Чтоб в выборку попадали только те документы у которых проект равен выбпроекту и док.корнтрагент не равен выбконтрагенту.

за ранее спс)
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Перешл с SQL на DBF как быть с запросом
Ответ #16 - 21. Апреля 2010 :: 07:16
Печать  
Дык у тебя есть же условие на проект.. ?
А на клиентоса - цепляй шапку(и) нужного документа(ов) через left join , и делай условие на клиентоса из этой шапки.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Перешл с SQL на DBF как быть с запросом
Ответ #17 - 21. Апреля 2010 :: 07:32
Печать  
Хотелось бы порекомендовать отборы по Проекту накладывать по таблице 1sjourn а по Контрагенту накладывать через таблицу 1scrdoс. Так как Проект - это общий реквизит документов, а по Контрагенту есть графа отбора.
Автор, может стоит попробовать использовать ПрямойЗапрос?
  
Наверх
IP записан
 
n0_0ne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 02. Марта 2009
Re: Перешл с SQL на DBF как быть с запросом
Ответ #18 - 21. Апреля 2010 :: 08:13
Печать  
Eprst
Спасибо )
leshik
Уже второй раз говоришь юзать прямой запрос )
Неужели действительно стоящая вещь?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Перешл с SQL на DBF как быть с запросом
Ответ #19 - 21. Апреля 2010 :: 10:58
Печать  
n0_0ne, ты попробуй. Вдруг понравится Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
n0_0ne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 02. Марта 2009
Re: Перешл с SQL на DBF как быть с запросом
Ответ #20 - 22. Апреля 2010 :: 03:43
Печать  
Код
Выбрать все
|SELECT
|     Жур.IDDocDef+Жур.IDDoc as [Док $Документ]
|    ,Жур.$ОбщийРеквизит.Проект as [Проект $Справочник.Проекты]
|
|FROM
|    1SJourn Жур
|LEFT JOIN
|	1SCRDOC Отбор ON Отбор.ChildID = Жур.IDDoc AND
|				Отбор. MDID = $ГрафаОтбора.Контрагент AND
|			    left(Отбор.ParentVal,4) = 'B1  '  AND   substring(Отбор.ParentVal,5,9) in (SELECT Val FROM :ВыбКонтр) AND
|			    Отбор.ChildDate BETWEEN (DTOS(:НачДата~~)+'		   ') AND (DTOS(:КонДата~~)+'ZZZZZZZZZZZZZZZ')
|WHERE DTOS(date)+time+iddoc BETWEEN (DTOS(:НачДата~~)+'		   ') AND (DTOS(:КонДата~~)+'ZZZZZZZZZZZZZZZ')
|AND Жур.$ОбщийРеквизит.Проект IN (SELECT val FROM :ВыбПроект) AND
|Жур.Closed  = 1
| 


Не работает Печаль

Код
Выбрать все
|SELECT
|     Жур.IDDocDef+Жур.IDDoc as [Док $Документ]
|    ,Жур.$ОбщийРеквизит.Проект as [Проект $Справочник.Проекты]
|
|FROM
|    1SJourn Жур
|LEFT JOIN
|	1SCRDOC Отбор ON Отбор.ChildID = Жур.IDDoc AND
|				Отбор. MDID = $ГрафаОтбора.Контрагент AND
|			    Отбор.ParentVal IN (SELECT val FROM :ВыбКонтр) AND
|			    Отбор.ChildDate BETWEEN (DTOS(:НачДата~~)+'		   ') AND (DTOS(:КонДата~~)+'ZZZZZZZZZZZZZZZ')
|WHERE DTOS(date)+time+iddoc BETWEEN (DTOS(:НачДата~~)+'		   ') AND (DTOS(:КонДата~~)+'ZZZZZZZZZZZZZZZ')
|AND Жур.$ОбщийРеквизит.Проект IN (SELECT val FROM :ВыбПроект) AND
|Жур.Closed  = 1
| 


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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Перешл с SQL на DBF как быть с запросом
Ответ #21 - 22. Апреля 2010 :: 04:33
Печать  
Еще бы это работало..
вот это что за....???


Цитата:
Отбор.ChildDate BETWEEN (DTOS(:НачДата~~)+'               ') AND (DTOS(:КонДата~~)+'ZZZZZZZZZZZZZZZ')


+ если уж делаешь таким способом фильтр на клиентоса, то нужен INNER JOIN
  
Наверх
 
IP записан
 
n0_0ne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 02. Марта 2009
Re: Перешл с SQL на DBF как быть с запросом
Ответ #22 - 22. Апреля 2010 :: 04:54
Печать  
Как что ) Чтоб индексы брал.

Он валится именно на списке контров, что ему ненравится как я их ему преподношу хоть инер хоть лефтом

В документации идет речь об УложитьСписокОбъектов13, а в новой версии его уже или нет или он у меня не раб(
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Перешл с SQL на DBF как быть с запросом
Ответ #23 - 22. Апреля 2010 :: 05:27
Печать  
n0_0ne писал(а) 22. Апреля 2010 :: 04:54:
Как что ) Чтоб индексы брал.



Ну бред же написан...
Улыбка

Открой словарь и посмотри, какой есть индекс у 1SCRDOC.
ЗЫ:Ну хоть статью то прочитай, для начала:
http://www.1cpp.ru/forum/YaBB.pl?num=1184317705
  
Наверх
 
IP записан
 
n0_0ne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 02. Марта 2009
Re: Перешл с SQL на DBF как быть с запросом
Ответ #24 - 22. Апреля 2010 :: 05:34
Печать  
Код
Выбрать все
FROM
    1SJourn Жур
INNER JOIN
	1SCRDOC Отбор ON Отбор.ChildID = Жур.IDDoc AND
				Отбор. MDID = '  NY' AND
				Отбор.ParentVal IN (SELECT val FROM '8a1b6cfc-6bd3-4ce4-bd6f-7549b571930a') AND
			    Отбор.ChildDate BETWEEN {d '1990-01-01'} AND {d '2010-03-31'}
WHERE DTOS(date)+time+iddoc BETWEEN (DTOS({d '1990-01-01'})+'		   ') AND (DTOS({d '2010-03-31'})+'ZZZZZZZZZZZZZZZ')
AND Жур.sp798 IN (SELECT val FROM '6db28948-060d-40a9-81ca-dbca3e747e45') AND
Жур.Closed  = 1 



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

Ткните носом где ошибка!!!
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Перешл с SQL на DBF как быть с запросом
Ответ #25 - 22. Апреля 2010 :: 05:53
Печать  
фильтр на дату не нужен, клиентосов нужно упаковывать в самуюдлиннуюСтрокуБД, ибо ParentVal - char(23)

Тип того:
left(Отбор.ParentVal,4) = 'B1  '  AND   substring(Отбор.ParentVal,5,9) in (SELECT Val FROM :ВыбКонтрагент)
  
Наверх
 
IP записан
 
n0_0ne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 02. Марта 2009
Re: Перешл с SQL на DBF как быть с запросом
Ответ #26 - 22. Апреля 2010 :: 06:23
Печать  
Делал и так все равно ошибка валится -

Код
Выбрать все
SELECT
     Жур.IDDocDef+Жур.IDDoc as [Док_1c_type_Документ]
    ,Жур.sp798 as [Проект_1c_type_Справочник_Проекты]
    
FROM
    1SJourn Жур
INNER JOIN
	1SCRDOC Отбор ON Отбор.ChildID = Жур.IDDoc AND
				Отбор. MDID = '  NY' AND
				left(Отбор.ParentVal,4) = 'B1  '  AND   substring(Отбор.ParentVal,5,9) in (SELECT Val FROM '3ee4f320-1a14-4134-8304-cf9d11ecbb3d')
			    
WHERE DTOS(date)+time+iddoc BETWEEN (DTOS({d '1990-01-01'})+'		   ') AND (DTOS({d '2010-03-31'})+'ZZZZZZZZZZZZZZZ')
AND Жур.sp798 IN (SELECT val FROM 'e2b83c8e-b52e-4254-babb-877055b1378f') AND
Жур.Closed  = 1
ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
ICommandText::Execute(): SQL: Queries of this type are not supported. 

  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Перешл с SQL на DBF как быть с запросом
Ответ #27 - 22. Апреля 2010 :: 07:12
Печать  
Для фокса нужно SUBSTR
  
Наверх
 
IP записан
 
n0_0ne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 02. Марта 2009
Re: Перешл с SQL на DBF как быть с запросом
Ответ #28 - 22. Апреля 2010 :: 07:17
Печать  
Некатит ))) Блин вроде простой запрос, а не раб ((((
  
Наверх
 
IP записан
 
n0_0ne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 02. Марта 2009
Re: Перешл с SQL на DBF как быть с запросом
Ответ #29 - 22. Апреля 2010 :: 07:36
Печать  
Код
Выбрать все
|SELECT
|     Жур.IDDocDef+Жур.IDDoc as [Док $Документ]
|    ,Жур.$ОбщийРеквизит.Проект as [Проект $Справочник.Проекты],
|	 $Док.Контрагент as [Контрагент $Справочник]
|FROM
|    1SJourn Жур
|INNER JOIN
|	$Документ.Реализация as Док ON Док.IDDoc = Жур.IDDoc AND $Док.Контрагент in (SELECT val FROM :ВыбКонтр)
|WHERE DTOS(date)+time+iddoc BETWEEN (DTOS(:НачДата~~)+'		   ') AND (DTOS(:КонДата~~)+'ZZZZZZZZZZZZZZZ')
|AND Жур.$ОбщийРеквизит.Проект IN (SELECT val FROM :ВыбПроект) AND
|Жур.Closed  = 1
|
|";
 


Так тоже не кактит и ошибка таже ( FAILED! ICommandText::Execute(): SQL: Queries of this type are not supported.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать