Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Вычисления при обходе выборки запроса.... / 3 сообщений из 3, страница 1 из 1
07.07.2011, 20:25
    #37342073
dimbasbear
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисления при обходе выборки запроса....
Добрый вечер!

Есть запрос, делаю выборку с обходом по группировакам.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Результат = Запрос.Выполнить();
		
	
		СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкам;
		ВыборкаИтоги = Результат.Выбрать(СпособВыборки);
		

		Пока ВыборкаИтоги.Следующий() Цикл
					
			Выборка = ВыборкаИтоги.Выбрать();
						
			Пока Выборка.Следующий() Цикл
			
				Факт = Выборка.Факт;
				Остаток = Выборка.Остаток;
				Склад = Выборка.Склад;

                               //Тут что-то делаем
                              // На каждой итерации при обходе строк, этот факт затирается....

                              Факт = Факт-Остаток;
				
			КонецЦикла; 
		КонецЦикла;
		
	КонецЕсли;				   

Получаем перечень строк с группировками, потом обходим по группировкам, внутри каждой группировки обходим по строка. В нутри вычисляем новый Факт.
Проблема в том что вычисляемый Факт затирается при обходе каждой новой строки, а мне надо чтобы он сохранялся для каждой новой строки. Как это сделать??????

Заранее спасибо1
...
Рейтинг: 0 / 0
07.07.2011, 21:07
    #37342113
pail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисления при обходе выборки запроса....
Дожили...азам программирования на форуме учить.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Результат = Запрос.Выполнить();
		
	
		СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкам;
		ВыборкаИтоги = Результат.Выбрать(СпособВыборки);
		

		Пока ВыборкаИтоги.Следующий() Цикл
					
			Выборка = ВыборкаИтоги.Выбрать();
						
			Пока Выборка.Следующий() Цикл
			
				Факт = Выборка.Факт;// вот именно здесь он и затирается
				Остаток = Выборка.Остаток;
				Склад = Выборка.Склад;

                               //Тут что-то делаем
                              // На каждой итерации при обходе строк, этот факт затирается....

                              Факт = Факт-Остаток;
				
			КонецЦикла; 
		КонецЦикла;
		
	КонецЕсли;				   

а разные имена для переменных - совсем никак невозможно использовать? и даже обход результатов запроса тут не виноват.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Результат = Запрос.Выполнить();
		
	
		СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкам;
		ВыборкаИтоги = Результат.Выбрать(СпособВыборки);
		ФактИтог= 0 ;

		Пока ВыборкаИтоги.Следующий() Цикл
					
			Выборка = ВыборкаИтоги.Выбрать();
						
			Пока Выборка.Следующий() Цикл
			
				Факт = Выборка.Факт;
				Остаток = Выборка.Остаток;
				Склад = Выборка.Склад;

                               //Тут что-то делаем
        
                              ФактИтог=ФактИтог-Остаток; /// или что там у вас задумано вычислять
				
			КонецЦикла; 
		КонецЦикла;
		
	КонецЕсли;				   
...
Рейтинг: 0 / 0
07.07.2011, 21:16
    #37342121
dimbasbear
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисления при обходе выборки запроса....
pailДожили...азам программирования на форуме учить.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Результат = Запрос.Выполнить();
		
	
		СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкам;
		ВыборкаИтоги = Результат.Выбрать(СпособВыборки);
		

		Пока ВыборкаИтоги.Следующий() Цикл
					
			Выборка = ВыборкаИтоги.Выбрать();
						
			Пока Выборка.Следующий() Цикл
			
				Факт = Выборка.Факт;// вот именно здесь он и затирается
				Остаток = Выборка.Остаток;
				Склад = Выборка.Склад;

                               //Тут что-то делаем
                              // На каждой итерации при обходе строк, этот факт затирается....

                              Факт = Факт-Остаток;
				
			КонецЦикла; 
		КонецЦикла;
		
	КонецЕсли;				   

а разные имена для переменных - совсем никак невозможно использовать? и даже обход результатов запроса тут не виноват.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Результат = Запрос.Выполнить();
		
	
		СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкам;
		ВыборкаИтоги = Результат.Выбрать(СпособВыборки);
		ФактИтог= 0 ;

		Пока ВыборкаИтоги.Следующий() Цикл
					
			Выборка = ВыборкаИтоги.Выбрать();
						
			Пока Выборка.Следующий() Цикл
			
				Факт = Выборка.Факт;
				Остаток = Выборка.Остаток;
				Склад = Выборка.Склад;

                               //Тут что-то делаем
        
                              ФактИтог=ФактИтог-Остаток; /// или что там у вас задумано вычислять
				
			КонецЦикла; 
		КонецЦикла;
		
	КонецЕсли;				   


Проблема не в этом была. Надо было просто Факт брать из уровня выше - на группировке.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Вычисления при обходе выборки запроса.... / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]