Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Не взлетает соединение по документу из регистра и журналом (число прочтений - 5838 )
Андрюха
Junior Member
**
Отсутствует



Сообщений: 74
Местоположение: Красноярск
Зарегистрирован: 19. Марта 2008
Пол: Мужской
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #15 - 28. Февраля 2012 :: 04:24
Печать  
Хочу получить сумму задолженности из регистра Покупатели в разрезе кредитных документов на дату, требуемые документы буду укладывать из СпискаЗначений. Связь с журналом в первом посте уже появилась в процессе экспериментов.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #16 - 28. Февраля 2012 :: 04:39
Печать  
Код
Выбрать все
ТекстЗапроса = "
	|SELECT ПокупателиОстатки.*
	|FROM $РегистрОстатки.Покупатели(:КонДата ~,,
	|	КредДокумент = #Х_Список.val),
	|	КредДокумент,
	|	СуммаРуб) AS ПокупателиОстатки
	|	jnner join #Х_Список on #Х_Список.val = ПокупателиОстатки.КредДокумент
	|";
		rc.УложитьСписокОбъектов13(СписокДок,"#Х_Список");
также условия на дату
 


не знаю только не споткнеться ли sql на вирт функциях.
  
Наверх
 
IP записан
 
Андрюха
Junior Member
**
Отсутствует



Сообщений: 74
Местоположение: Красноярск
Зарегистрирован: 19. Марта 2008
Пол: Мужской
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #17 - 28. Февраля 2012 :: 04:52
Печать  
Спотыкается SQL, говорит что State 42000, native 4104, message [Microsoft][ODBC SQL Server Driver][SQL Server]The multi-part identifier "#СписокДокументов.val" could not be bound.

Запрос вот такой получился:
Код
Выбрать все
ТекстЗапроса = "
	|SELECT ПокупателиОстатки.*
	|FROM $РегистрОстатки.Покупатели(:КонДата ~,,
	|	КредДокумент = #СписокДокументов.val,
	|	КредДокумент,
	|	СуммаРуб) AS ПокупателиОстатки
	|	INNER JOIN #СписокДокументов ON #СписокДокументов.val = ПокупателиОстатки.КредДокумент
	|";

СписокДокументов = СоздатьОбъект("СписокЗначений");
СписокДокументов.ДобавитьЗначение(ВыбДокумент);
рс.УложитьСписокОбъектов13(СписокДокументов, "#СписокДокументов");
рс.УстановитьТекстовыйПараметр("КонДата", ВыбДата); 

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #18 - 28. Февраля 2012 :: 05:03
Печать  
а так
Код
Выбрать все
ТекстЗапроса = "
	|SELECT ПокупателиОстатки.*
	|FROM $РегистрОстатки.Покупатели(:КонДата ~,,),
	|	КредДокумент,
	|	СуммаРуб) AS ПокупателиОстатки
	|	jnner join #Х_Список on #Х_Список.val = ПокупателиОстатки.КредДокумент
	|";

		rc.УложитьСписокОбъектов13(СписокДок,"#Х_Список");
 



  
Наверх
 
IP записан
 
Андрюха
Junior Member
**
Отсутствует



Сообщений: 74
Местоположение: Красноярск
Зарегистрирован: 19. Марта 2008
Пол: Мужской
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #19 - 28. Февраля 2012 :: 05:06
Печать  
Получилось! Спасибо!  Улыбка

Код
Выбрать все
ТекстЗапроса = "
	|SELECT ПокупателиОстатки.*
	|FROM $РегистрОстатки.Покупатели(:КонДата ~,,,
	|		КредДокумент,
	|		СуммаРуб) AS ПокупателиОстатки
	|	INNER JOIN #СписокДокументов ON #СписокДокументов.val = ПокупателиОстатки.КредДокумент
	|";

СписокДокументов = СоздатьОбъект("СписокЗначений");
СписокДокументов.ДобавитьЗначение(ВыбДокумент);
рс.УложитьСписокОбъектов13(СписокДокументов, "#СписокДокументов");
рс.УстановитьТекстовыйПараметр("КонДата", ВыбДата); 


  
Наверх
 
IP записан
 
Андрюха
Junior Member
**
Отсутствует



Сообщений: 74
Местоположение: Красноярск
Зарегистрирован: 19. Марта 2008
Пол: Мужской
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #20 - 28. Февраля 2012 :: 07:41
Печать  
Понадобилось всё-таки соединение с Журналом, не могу ладу дать, как его выписать. Пробую явно

Код
Выбрать все
INNER JOIN _1SJOURN AS Журнал ON ПокупателиОстатки.КредДокумент = Журнал.IDDOC 



и по 9-тизначному коду

Код
Выбрать все
INNER JOIN _1SJOURN AS Журнал ON substring(ПокупателиОстатки.КредДокумент,4,9) = Журнал.IDDOC 




и так

Код
Выбрать все
INNER JOIN _1SJOURN AS Журнал ON ПокупателиОстатки.КредДокумент = substring(Журнал.IDDOC,4,9) 



и эдак

Код
Выбрать все
INNER JOIN _1SJOURN AS Журнал ON substring(ПокупателиОстатки.КредДокумент,4,9) = substring(Журнал.IDDOC,4,9) 



Ничего не получается. Подскажите как правильно?
« Последняя редакция: 28. Февраля 2012 :: 09:52 - Андрюха »  
Наверх
 
IP записан
 
antoneus
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 54
Зарегистрирован: 16. Марта 2009
Пол: Мужской
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #21 - 28. Февраля 2012 :: 09:33
Печать  
наверно, всё-таки

INNER JOIN _1SJOURN AS Журнал ON substring(ПокупателиОстатки.КредДокумент,4,9) = Журнал.IDDOC
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #22 - 28. Февраля 2012 :: 10:00
Печать  
Андрюха писал(а) 28. Февраля 2012 :: 07:41:
Понадобилось всё-таки соединение с Журналом, не могу ладу дать, как его выписать. Пробую явно


Если все  Кредитовые документы одного вида то можно и не делать
соеденения.
Но может оно нужно для других целей ???

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


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #23 - 28. Февраля 2012 :: 13:04
Печать  
Спробуй так:
Код
Выбрать все
ТекстЗапроса = "
	|SELECT ПокупателиОстатки.*
	|FROM $РегистрОстатки.Покупатели(:КонДата ~,,
	|	КредДокумент = #СписокДокументов.val,
	|	КредДокумент,
	|	СуммаРуб) AS ПокупателиОстатки
	|	INNER JOIN #СписокДокументов ON #СписокДокументов.val = ПокупателиОстатки.КредДокумент
	|	INNER JOIN _1sjourn j ON j.iddoc = #СписокДокументов1.val
	|";

СписокДокументов = СоздатьОбъект("СписокЗначений");
СписокДокументов.ДобавитьЗначение(ВыбДокумент);
рс.УложитьСписокОбъектов13(СписокДокументов, "#СписокДокументов");
рс.УложитьСписокОбъектов(СписокДокументов, "#СписокДокументов1");
рс.УстановитьТекстовыйПараметр("КонДата", ВыбДата);

 



должно взлететь.
хотя непонятно почему не взлетает substring().
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #24 - 28. Февраля 2012 :: 13:10
Печать  
Андрюха писал(а) 28. Февраля 2012 :: 04:12:
Не, сам наверное не дожму. Там два поля всего:

КредДокумент                  СуммаРубОстаток
18R 14UOРЦБД                  10000.00


Судя по тому что выдало
КредДокумент тип Документ
значит все правильно, substring() должен вернуть чистый iddoc без вида документа.
  
Наверх
 
IP записан
 
kenzzzooo
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 26
Местоположение: Минеральные Воды
Зарегистрирован: 06. Января 2012
Пол: Мужской
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #25 - 28. Февраля 2012 :: 22:01
Печать  
Андрюха писал(а) 27. Февраля 2012 :: 10:46:
Почему-то не хотят вытаскиваться документы из Журнала, по измерению КредДокумент регистра Покупатели. Галочки Отбор движений/итогов на реквизите стоят, запись в регистре есть.

Код
Выбрать все
ТекстЗапроса = "
	|SELECT Журнал.IDDOC [Документ $Документ]
	|	, ПокупателиОстатки.СуммаРубОстаток
	|	, Журнал.IDDOCDEF Документ_вид
	|FROM $РегистрОстатки.Покупатели(,
	|		INNER JOIN _1SJOURN AS Журнал ON КредДокумент = Журнал.IDDOC,
	|		(КредДокумент IN (SELECT val FROM #СписокДокументов)),
	|		КредДокумент,
	|		СуммаРуб) AS ПокупателиОстатки
	|	INNER JOIN _1SJOURN AS Журнал ON ПокупателиОстатки.КредДокумент = Журнал.IDDOC
	|"; 



Код
Выбрать все
	ТекстЗапроса = "
		|SELECT Журнал.IDDOC 			[Документ $Документ]
		|	, Журнал.IDDOCDEF 		Документ_вид
		|	, Sum(Покупатели.СуммаРубОстаток) 	СуммаОстаток
		|FROM $РегистрОстатки.ПокупателиОстатки(:КонДата ~,
		|		INNER JOIN _1SJOURN AS Журнал ON SUBSTRING(КредДокумент,4,9) = Журнал.IDDOC,
		|		(Журнал.IDDOC IN (SELECT val FROM #СписокДокументов)),
		|		Документ,) AS Покупатели
		|	INNER JOIN _1SJOURN AS Журнал ON SUBSTRING(Покупатели.КредДокумент,4,9) = Журнал.IDDOC
		|WHERE (Журнал.IDDOC IN (SELECT val FROM #СписокДокументов))
		|GROUP BY Журнал.IDDOC
		|	, Журнал.IDDOCDEF
		|";

СписокДокументов = СоздатьОбъект("СписокЗначений");
СписокДокументов.ДобавитьЗначение(ВыбДокумент);
рс.УложитьСписокОбъектов(СписокДокументов, "#СписокДокументов");
рс.УстановитьТекстовыйПараметр("КонДата", ВыбДата);




 

  
Наверх
 
IP записан
 
Андрюха
Junior Member
**
Отсутствует



Сообщений: 74
Местоположение: Красноярск
Зарегистрирован: 19. Марта 2008
Пол: Мужской
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #26 - 29. Февраля 2012 :: 09:02
Печать  
kenzzzooo писал(а) 28. Февраля 2012 :: 22:01:
Код
Выбрать все
	ТекстЗапроса = "
		|SELECT Журнал.IDDOC [Документ $Документ]
		|	, Журнал.IDDOCDEF Документ_вид
		|	, Sum(Покупатели.СуммаРубОстаток) 	СуммаОстаток
		|FROM $РегистрОстатки.ПокупателиОстатки(:КонДата ~,
		|		INNER JOIN _1SJOURN AS Журнал ON SUBSTRING(КредДокумент,4,9) = Журнал.IDDOC,
		|		(Журнал.IDDOC IN (SELECT val FROM #СписокДокументов)),
		|		Документ,) AS Покупатели
		|	INNER JOIN _1SJOURN AS Журнал ON SUBSTRING(Покупатели.КредДокумент,4,9) = Журнал.IDDOC
		|WHERE (Журнал.IDDOC IN (SELECT val FROM #СписокДокументов))
		|GROUP BY Журнал.IDDOC
		|	, Журнал.IDDOCDEF
		|";

СписокДокументов = СоздатьОбъект("СписокЗначений");
СписокДокументов.ДобавитьЗначение(ВыбДокумент);
рс.УложитьСписокОбъектов(СписокДокументов, "#СписокДокументов");
рс.УстановитьТекстовыйПараметр("КонДата", ВыбДата); 



Поправил пару ошибок, всё равно не хочет.

Код
Выбрать все
ТекстЗапроса = "
	|SELECT Журнал.IDDOC [Документ $Документ]
	|	, Журнал.IDDOCDEF Документ_вид
	|	, Sum(Покупатели.СуммаРубОстаток) СуммаОстаток
	|FROM $РегистрОстатки.Покупатели(:КонДата ~,
	|		INNER JOIN _1SJOURN AS Журнал ON SUBSTRING(КредДокумент,4,9) = Журнал.IDDOC,
	|		(Журнал.IDDOC IN (SELECT val FROM #СписокДокументов)),
	|		КредДокумент,) AS Покупатели
	|	INNER JOIN _1SJOURN AS Журнал ON SUBSTRING(Покупатели.КредДокумент,4,9) = Журнал.IDDOC
	|WHERE (Журнал.IDDOC IN (SELECT val FROM #СписокДокументов))
	|GROUP BY Журнал.IDDOC
	|	, Журнал.IDDOCDEF
	|"; 



Ну это вообще какая-то курская аномалия, почему не хочет-то зараза? Идд совпадают, я проверил. Однозначно же, что:
SUBSTRING(Покупатели.КредДокумент,4,9) = Журнал.IDDOC
  
Наверх
 
IP записан
 
kenzzzooo
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 26
Местоположение: Минеральные Воды
Зарегистрирован: 06. Января 2012
Пол: Мужской
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #27 - 29. Февраля 2012 :: 13:57
Печать  
Андрюха писал(а) 29. Февраля 2012 :: 09:02:
SUBSTRING(Покупатели.КредДокумент,4,9) = Журнал.IDDOC


блиииииииииииииииииин..... уже же сталкивался с этим....  Улыбка забыл, однако:

SUBSTRING(Покупатели.КредДокумент,5,9)
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #28 - 29. Февраля 2012 :: 14:00
Печать  
Слушай!
А ты цель скажи зачем тебе из журнала то тянуть?
во:
Код
Выбрать все
select
Покупатели.КредДокумент [Док $Документ],
Покупатели.ДолгОстаток Сумма
from кумент)) Покупатели
 

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


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Не взлетает соединение по документу из регистра и журналом
Ответ #29 - 29. Февраля 2012 :: 14:01
Печать  
kenzzzooo писал(а) 29. Февраля 2012 :: 13:57:
Андрюха писал(а) 29. Февраля 2012 :: 09:02:
SUBSTRING(Покупатели.КредДокумент,4,9) = Журнал.IDDOC


блиииииииииииииииииин..... уже же сталкивался с этим....  Улыбка забыл, однако:

SUBSTRING(Покупатели.КредДокумент,5,9)

точно!
сам тормознул.

Вот токо с какой целью тебе журнал нужен, я так и не понял.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать