К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

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

Гость
0 - 27.09.2012 - 11:27
Доброго времени суток!
Подскажите, пожалуйста, как организовать обратный порядок выборки бухгалтерского запроса? мне нужно получать последние документы поступления, а не первые.



Гость
1 - 27.09.2012 - 11:27
Мой бух.запрос

Ит41_1ДП=СоздатьОбъект("БухгалтерскиеИтоги");
Ит41_1ДП.ИспользоватьСубконто(ВидыСубконто.Номенкл атура,ПеремНоменклатура,2);
Ит41_1ДП.ВыполнитьЗапрос(ДобавитьМесяц(ПеремТекДок .ДатаДок,-24),ПеремТекДок,"41.1",,,1,"Операция",);
Ит41_1ДП.ВыбратьПериоды(,1);
Пока Ит41_1ДП.ПолучитьПериод()=1 Цикл
Сообщить("Ит41_1ДП.Операция "+Ит41_1ДП.Операция+" Кол: "+Ит41_1ДП.ДО("К"));
КонецЦикла;
Гость
2 - 27.09.2012 - 12:10
никак
Гость
3 - 27.09.2012 - 12:15
Ит41_1ДП.ПолучитьПериод()

вот сюда можно подсовывать даты с конца
но внутри даты выборка все равно будет по возрастанию
Гость
4 - 27.09.2012 - 12:25
а если нужен изврат, то:

Процедура Получаем(Ит41_1ДП)
Пока Ит41_1ДП.ПолучитьПериод()=1 Цикл
Операция = СоздатьОбъект("Операция");
Операция.НайтиОперацию(Ит41_1ДП.Операция.Документ) ;
Количество = Ит41_1ДП.ДО("К");
Получаем(Ит41_1ДП);
Сообщить("Ит41_1ДП.Операция " + Операция +" Кол: "+Количество)
КонецЦикла
КонецПроцедуры


//*******************************************
Процедура Сформировать()
Ит41_1ДП=СоздатьОбъект("БухгалтерскиеИтоги");
Ит41_1ДП.ИспользоватьСубконто(ВидыСубконто.Номенкл атура,ПеремНоменклатура,2);
Ит41_1ДП.ВыполнитьЗапрос(ДобавитьМесяц(ПеремТекДок .ДатаДок,-24),ПеремТекДок.ДатаДок,"41.1",,,1,"Операция",);
Ит41_1ДП.ВыбратьПериоды(,1);
Получаем(Ит41_1ДП)
КонецПроцедуры
Гость
5 - 27.09.2012 - 12:32
(4)рекурсия?

спасибо за ответ, раз обратного порядка нет, то тогда скорее всего ограничусь прямой выборкой в ТЗ и ее обратным перебором. просто при изначально обратной выборке можно было останавливать цикл по мере накопления нужного количества, но думаю не столь критично, т.к. это разовая операция заполнения начальных остатков.
Гость
6 - 27.09.2012 - 12:37
да
Гость
7 - 27.09.2012 - 12:40
*для эстетов цикл в рекурсии можно заменить на условный оператор
Гость
8 - 27.09.2012 - 13:04
Вопрос достаточно диковат... Если вспомнить, как организовано хранение данных: остатки и обороты. Причем остатки всегда на начало периода. Остатки на конец периода есть сумма начальных остатков + обороты.
Что совершенно естественно: при добавлении/изменении оборотов в текущем периоде остатки вообще не корректируются, а внутри прошлого периода порождают изменение остатков "вперед" с приемлемо простым (и как следствие, приемлемо быстрым алгоритмом). Попробуйте наоборот, когда хранятся остатки на конец периода...

"потому и не кусает"...
Гость
9 - 28.09.2012 - 07:57
(8)от души благодарю за развернутый информативный ответ!


К списку вопросов






Copyright ©, Все права защищены