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)от души благодарю за развернутый информативный ответ! | |
| Интернет-форум Краснодарского края и Краснодара |