Имя: Пароль:
1C
1С v8
Подскажите как правильно вывести итоги
0 BlackOlga
 
19.03.12
12:54
Добрый день. Пытаюсь сделать простенькую вещь: делаю запрос из регистра накопления, делаю итог по остаткам и всё кажется замечательно и уже готово. Наткнулась на проблему- как вывести этот итог, в обычном числовом выражении, заполучить его.

Вот что делаю:


Запрос1 = Новый Запрос();
   Запрос1.Текст="ВЫБРАТЬ
                 |    ЗапасыНаСкладахОстатки.Номенклатура,
                 |    ЗапасыНаСкладахОстатки.Организация,
                 |    ЗапасыНаСкладахОстатки.СтруктурнаяЕдиница,
                 |    ЗапасыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
                 |ИЗ
                 |    РегистрНакопления.ЗапасыНаСкладах.Остатки КАК ЗапасыНаСкладахОстатки
                 |ГДЕ
                 |    ЗапасыНаСкладахОстатки.СтруктурнаяЕдиница = &Склад
                 |ИТОГИ
                 |    СУММА(КоличествоОстаток)
                 |ПО
                 |    ОБЩИЕ";
   Запрос1.УстановитьПараметр("Склад",ЭтотСклад);
   Результат=Запрос1.Выполнить().Выбрать();


И далее хочу пока просто в сообщении себе для проверки выдать это количество суммируемое:


Пока Результат.Следующий() цикл
   Сообщить(Результат.КоличествоОстаток);    
конеццикла;


Подскажите пожалуйста, как сделать правильно?
1 Alex S D
 
19.03.12
12:57
КоличествоОстаток=Запрос1.Выполнить().Выгрузить()[0].КоличествоОстаток;
2 BlackOlga
 
19.03.12
13:01
Спасибо большое,но не вышло- ругается что индекс за пределами массива. Я не очень поняла зачем Выгрузить()[0] именно..
3 Alex S D
 
19.03.12
13:03
значит результат запроса пуст
4 BlackOlga
 
19.03.12
13:06
Хм, будем проверять... на всякий случай не исключаю что очень стормозила и сделала что-то неправильно в двух строчках.


Запрос1 = Новый Запрос();
   Запрос1.Текст="ВЫБРАТЬ
                 |    ЗапасыНаСкладахОстатки.Номенклатура,
                 |    ЗапасыНаСкладахОстатки.Организация,
                 |    ЗапасыНаСкладахОстатки.СтруктурнаяЕдиница,
                 |    ЗапасыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
                 |ИЗ
                 |    РегистрНакопления.ЗапасыНаСкладах.Остатки КАК ЗапасыНаСкладахОстатки
                 |ГДЕ
                 |    ЗапасыНаСкладахОстатки.СтруктурнаяЕдиница = &Склад
                 |ИТОГИ
                 |    СУММА(КоличествоОстаток)
                 |ПО
                 |    ОБЩИЕ";
   Запрос1.УстановитьПараметр("Склад",ЭтотСклад);
   
   КоличествоОстаток=Запрос1.Выполнить().Выгрузить()[0].КоличествоОстаток;
   Сообщить(КоличествоОстаток);



Спасибо большое за помощь!
5 BlackOlga
 
19.03.12
13:08
Всё, пробно сделала другой результат, в регистр запихнула данные другие- всё работает.  

Спасибо ещё раз!
6 Buster007
 
19.03.12
13:08
Результат=Запрос1.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Результат.Следующий() цикл
Сообщить("Итог у меня такой" + Строка(Результат.КоличествоОстаток );
КонецЦикла;
7 BlackOlga
 
19.03.12
13:15
Этот вариант мне более понятный, сразу  возьму  на вооружение ) Спасибо!
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший