Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Подчиненные документы (число прочтений - 1212 )
U_zer
Экс-Участник


Подчиненные документы
20. Мая 2009 :: 05:48
Печать  
Всем привет!
Есть простенький кусок кода:
Код
Выбрать все
|SELECT
|Left(j.DATE_TIME_IDDOC,8) [ПрДДата $Дата],
|$ПриходДенегНаСчетСтроки.табОснование [табОснование $Документ.Счет],
|$ПриходДенегНаСчетСтроки.табСумма [табСумма $число]
|FROM $ДокументСтроки.ПриходДенегНаСчет ПриходДенегНаСчетСтроки
|INNER JOIN _1SJOURN j (nolock) ON j.IDDOC = ПриходДенегНаСчетСтроки.iddoc
|WHERE j.DATE_TIME_IDDOC BETWEEN :ДНач and :ДКон~"+?(ПустаяСтрока(СтрУсл)=0," and ","")+СтрУсл+"
|";

Тзн = Запрос.ВыполнитьИнструкцию(Тз);
Если Тзн.КоличествоСтрок()>0 Тогда
	Тзн.ВыбратьСтроки();
	НачатьТранзакцию();
	Пока Тзн.ПолучитьСтроку() = 1 Цикл
		 Фл = 0;
		Если ДокП.ВыбратьПодчиненныеДокументы(,,Тзн.табОснование)=1 Тогда
		    Пока ДокП.ПолучитьДокумент()=1 Цикл
			Если ДокП.Вид() = "РасходнаяНакл" Тогда
				Если (ДокП.Итог("табСумма")<=Тзн.табСумма) Или (ДокП.ДатаДок-Тзн.ПрДДата<=5) Тогда
					  Фл = 1;
					Прервать;
				  КонецЕсли;
			 КонецЕсли;
	КонецЦикла;
КонецЕсли;
......................
 



Так вот, можно ли это условие в цикле засунуть в запрос и как?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Подчиненные документы
Ответ #1 - 20. Мая 2009 :: 07:07
Печать  
Как-то так?
Код
Выбрать все
SELECT
	Left(j.DATE_TIME_IDDOC,8) [ПрДДата $Дата],
	$ПриходДенегНаСчетСтроки.табОснование [табОснование $Документ.Счет],
	$ПриходДенегНаСчетСтроки.табСумма [табСумма $число]
FROM $ДокументСтроки.ПриходДенегНаСчет ПриходДенегНаСчетСтроки (nolock)
	INNER JOIN _1SJOURN j (nolock) ON j.IDDOC = ПриходДенегНаСчетСтроки.iddoc
	INNER JOIN _1SCRDOC c (nolock) ON c.PARENTVAL = 'O1' + $ВидДокумента36.Счет + $ПриходДенегНаСчетСтроки.табОснование
	INNER JOIN $Документ.РасходнаяНакл РасходнаяНакл (nolock) ON c.CHILDID = РасходнаяНакл.IDDOC
WHERE j.DATE_TIME_IDDOC BETWEEN :ДНач and :ДКон~
	AND (c.mdid = 0)
	AND (($РасходнаяНакл.табСумма <= $ПриходДенегНаСчетСтроки.табСумма)
		OR (DateDiff(d, Cast(Left(j.DATE_TIME_IDDOC, 8) AS datetime), Cast(Left(c.CHILD_DATE_TIME_IDDOC, 8) AS datetime)) <= 5))
	"+?(ПустаяСтрока(СтрУсл)=0," and ","")+СтрУсл+" 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
U_zer
Экс-Участник


Re: Подчиненные документы
Ответ #2 - 20. Мая 2009 :: 08:02
Печать  
Очень довольный Работает!!!! Биг респект тебе!
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать