Имя: Пароль:
1C
1C 7.7
v7: Как получить последнее движение за период?
0 Провинциальный 1сник
 
06.07.20
16:34
В объекте БухгалтерскиеИтоги есть возможность выбрать периоды, в качестве периода может быть задана операция. Но порядок выборки периодов - с меньшего к большему. Можно ли как-то задать обратный порядок выборки периодов, чтобы получить последнее движение за период итогов, не выбирая все предыдущие? Или может кто подскажет какой-то другой красивый способ получить документ, сделавший последнее движение по счету и субконто?
1 Ёпрст
 
06.07.20
16:37
ОбратныйПорядок(1)

или Упорядочить По в тексте запроса
или order by date desk
2 Ёпрст
 
06.07.20
16:37
или сортировать, если в тз данные
3 mikecool
 
06.07.20
16:40
(0) а нет ли там случаем еще одного параметра при выборке, отвечающего за сортировку?
4 Ёпрст
 
06.07.20
16:41
и да.. в выборке запроса Группировка, второй параметр вроде
5 trdm
 
06.07.20
16:59
на том и порешим... расходимся..
6 Провинциальный 1сник
 
06.07.20
20:01
(1) ОбратныйПорядок() - такого метода в выборке из бухитогов нет.
(2) А предварительно от сотворения мира таблицу заполнять? Плохой вариант.
(4) Черный запрос не вариант
7 Ёпрст
 
06.07.20
21:35
(6) ну тогда смотри табличку 1sentry, делов то
8 Ёпрст
 
06.07.20
21:35
и примитивный запрос к ней
9 Креатив
 
06.07.20
22:29
В ВыбратьСубконто() последний параметр обратныйпорядок
10 Провинциальный 1сник
 
07.07.20
06:25
(9) Так мне не субконто надо выбирать, а периоды..
11 Креатив
 
07.07.20
08:05
(10)Попробуй сначала выбрать период, а потом субконто в обратном порядке. И будет тебе последнее движение в периоде. Или ты хочешь от последнего месяца/периода плясать к первому?
12 Провинциальный 1сник
 
07.07.20
11:22
(11) Мне не надо субконто в обратном порядке. Мне надо последнее движение по указанному счету с указанными отборами по субконто..
13 victuan1
 
08.07.20
04:39
Я такую задачу решаю циклом, в котором запросами перебираю подперироды с конца до начала времен (или какой-то отправной точки).
Выбрал эмпирически оптимальный размер подериода (например, 3 месяца), чтобы скорость выборки на моих стат. данных была максимальна.
Из цикла по попериодам предусмотрен досрочный выход, как только необходимые данные найдены в очередном обрабатываемом подпериоде.
14 Провинциальный 1сник
 
08.07.20
10:52
(13) Алгоритм поиска методом деления пополам? Это вариант. То есть, делим исходный период пополам, если во второй половине есть обороты - делим её и так далее, пока не наткнемся на один день, а внутри этого дня уже перебираем обороты по документам и находим последний. Возможно, что так будет быстрее, чем просто перебирать периоды от сотворения мира.. но это не точно.
15 Ёпрст
 
08.07.20
10:54
(14) Прямым запросом к 1sentry с фильтром будет мгновенно
16 Провинциальный 1сник
 
08.07.20
11:36
(15) Фильтр по набору субконто там заморочный получается, с кодами видов субконто..
17 victuan1
 
14.07.20
05:08
(13) Нет, метод перебора подпериодов с конца. Метод дихотомии я использую для других задач - не для этой.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший