|
Остатки на несколько дат в Запросе | ☑ | ||
---|---|---|---|---|
0
zhukovia
29.04.20
✎
17:32
|
Можно ли как то в запросе получить остатки на момент времени следующий сразу за датой документов выбранных в другом запросе? Поясняю. У меня запросом выбираются документы, а после этого мне нужно выбрать остатки по некоторым счетам на момент времени после этих документов (для каждого). Сейчас я просто перебираю в цикле ТЗ документов и с помощью РегистрыБухгалтерии.Остатки(МоментСразуПослеДокумента,,Отбор) получаю нужные остатки и дописываю их в ТЗ. Но это очень медленно получается. Поэтому интересуюсь, можно или нет в одном запросе все сделать.
|
|||
1
breezee
29.04.20
✎
18:20
|
(0) Погуглите остатки на каждый день в запросе. Стал расписывать как это получается простыми словами, но решил Вас больше не путать. Тема уже была на обсуждении..
|
|||
2
palsergeich
29.04.20
✎
18:29
|
(0) Особо быстрее вряд ли получится, ибо если даты документов разные, а нужно получить остаток именно на момент времени - никак кроме как отдельный запрос на каждую дату каждого документа.
Возможно следует подумать как упростить задачу. |
|||
3
zhukovia
29.04.20
✎
18:35
|
(1) Я смотрел уже это, но не совсем понимаю как мне это использовать. У меня не на каждый день надо, а на даты конкретных документов. А они могут быть с интервалом в месяц, или три в один день. Может намекнете еще как нибудь, как
делать то? |
|||
4
zhukovia
29.04.20
✎
18:38
|
(2) Печально если так. Документы разные, причем может быть как раз в месяц, так и несколько за день, остатки соответственно за день будут разными. Т.е. нельзя в запрос список передать и остатки по нему получить?
|
|||
5
breezee
29.04.20
✎
19:00
|
А вообще я давно не делал запрос к регистру юухгалтреии. Остатки и обороты там есть? Конечный остаток и так будет остатком сразу за моментом времени документа
|
|||
6
zhukovia
29.04.20
✎
19:08
|
(5) Не совсем понял о чем речь. Да там есть и остатки и обороты. Но про какой остаток идет речь? Остаток на конец чего?
|
|||
7
breezee
29.04.20
✎
19:12
|
(6) Да, конечный остаток. В 1 таблице в запросе Вы выберите все документы, во втором в отбор по ним, в таблице РегистрБухгалтреии.ДВиженияхССубконто отбор по регистраторам из таблицы1 и выводить регистратор и конечный остаток
|
|||
8
zhukovia
29.04.20
✎
19:21
|
(7) Я об этом и спрашиваю. Как это сделать? Как передать этот отбор в запрос 2? Пример или ссылку на пример можно?
|
|||
9
rsv
29.04.20
✎
20:10
|
(0) как вариант при обходе таблицы доков делать динамический текст запроса
Остатки дата1 Union all Остатки. Дата2 . . N И тд и потом один раз выполнить запрос |
|||
10
Cyberhawk
29.04.20
✎
20:19
|
(1) (5) Не прокатит та методика с моментом времени
|
|||
11
zhukovia
30.04.20
✎
09:36
|
(10) Т.е. никак получается?
|
|||
12
zhukovia
30.04.20
✎
09:37
|
(9) И быстрее получится? Доков может быть несколько сотен, значит и запросов будет столько же. Я правильно понял?
|
|||
13
Cyberhawk
30.04.20
✎
09:49
|
(11) Так ты определись, на дату или на момент времени
|
|||
14
SleepyHead
гуру
30.04.20
✎
10:13
|
(11) Рассчитать остаток на дату первого документа и выбрать движения всех последующих до последнего, а потом считать остатки в обходе предлагали уже?
|
|||
15
zhukovia
30.04.20
✎
11:03
|
(13) Мне надо на время документа, включая этот документ. Т.е. показать какие остатки получились после проведения этого документа.
|
|||
16
Cyberhawk
30.04.20
✎
11:06
|
(15) ОстаткиИОбороты с периодичностью по регистратору (РесурсКонечныйОстаток) тебе в помощь
|
|||
17
zhukovia
30.04.20
✎
11:06
|
(14) Дак заранее не понятно один документ в течении дня или несколько. Что за "хитрый" запрос нужно написать чтобы это все обрабатывалось, я не понимаю. Тогда уж, наверное проще оставить как я сделал, через перебор списка док в цикле с расчетом остатков по каждому. Медленно но зато понятно. Или я не правильно понял что вы предлагаете?
|
|||
18
zhukovia
30.04.20
✎
11:07
|
(16) А вот как туда список документов засунуть?
|
|||
19
mistеr
30.04.20
✎
11:17
|
(15) Постановка задачи вызывает сомнения. Одно проведение задним числом и эти данные уже неактуальны. Я бы докопался до истоков и скорректировал постановку.
|
|||
20
mistеr
30.04.20
✎
11:18
|
Отсутствие эффективных типовых механизмов для решения задачи это сигнал о том, что постановка возможно неадекватная. Либо структура метаданных неадекватная.
|
|||
21
Cyberhawk
30.04.20
✎
11:21
|
(18) Куда?
|
|||
22
zhukovia
30.04.20
✎
11:29
|
(21) В ОстаткиИОбороты с периодичностью по регистратору. Мне же нужно запрос составить с отбором по этим регистраторам. Во и вопрос как список подать туда? Не в цикле же. Я конечно скорее всего туплю, но не могу сообразить как
|
|||
23
zhukovia
30.04.20
✎
11:33
|
(20) Возможно и так. Но с этим ничего поделать уже не получится. Мне нужно вывести отчет в котором список документов (разных), а в дополнительных колонках остатки по 41 и 60 счетам. Причем не все документы двигают эти счета и у некоторых остаток будет повторятся.
|
|||
24
mistеr
30.04.20
✎
11:46
|
(22) Получи "ОстаткиИОбороты с периодичностью по регистратору" за весь период (мин., макс.) и отбирай по регистраторам.
|
|||
25
zhukovia
30.04.20
✎
12:05
|
(24) А как быть если документ не двигал этот счет? Как я понял тогда его не будет в остатках или не так?
|
|||
26
НичегоНе Понятно
30.04.20
✎
12:11
|
(3)>> У меня не на каждый день надо, а на даты конкретных документов
Так без разницы же. Вот здесь я выбирал цену на дату продажи товара http://developer1c.ru/srez-poslednikh-registra-svedenii-na-kazhduiu-datu-podrobno.html |
|||
27
mistеr
30.04.20
✎
12:12
|
(25) Да, не будет. Если нужен, присоедини список доков.
|
|||
28
mistеr
30.04.20
✎
12:16
|
(27) Остатки нужно взять с предыдущего или следующего дока, как-то извернуться. ВычислитьВыражение() например.
|
|||
29
mistеr
30.04.20
✎
12:17
|
(26) Остатки РБ так не выберешь.
|
|||
30
zhukovia
30.04.20
✎
12:52
|
(27) Как присоединить то? Как вообще сделать подобный запрос? Например есть список из дат и как его засунуть в запрос остатков? РегистрБухгалтерии.РасчетыРегистр.Остатки(Дата в (&СписокДат)) КАК РасчетыРегистр Ведь так же не получится сделать или может через ГДЕ делать Дата в (&СписокДат). Дайте пример или ссылку на пример, ну или направление хотя бы. А то я правда не понимаю что делать и в каком направлении копать?
|
|||
31
mistеr
30.04.20
✎
13:46
|
(30) Нет готового решения, нужно думать, изобретать. Направление я указал.
|
|||
32
zhukovia
30.04.20
✎
14:07
|
(31) Ну спасибо и на этом.
|
|||
33
Бертыш
30.04.20
✎
14:20
|
(30) Как было сказано в знаменитом вирусном ролике про тех поддержку "Вы заходите не оттуда".
Вам нужно рассчитывать остатки путем добавления и вычитания к остатку на некую минимальную дату икс. Если речь идёт о датах документа то добавляем секунду при формировании таблицы дат, а если речь идёт о моментах времени, а у вас скорее всего речь именно о моментах времени, о границах, то даже и не знаю. Думать надо и самое простое что при этом выдумывается так это некая отстранённая структура хранения для нужных данных. Ни достоверности правда при этом ни эффективности.... Можно ещё в выдуманный реквизит при проведении писать якую чушь нужную |
|||
34
Бертыш
30.04.20
✎
14:28
|
Я в прошлом году похожие кульбиты с расчетом долга на позицию документа и кучей сопутствующих параметров по просьбе заказчика крутил ибо он настаивал на том что нельзя менять структуру и перепроводить документы, то есть требовал что бы вместо получения данных из структур хранения цифирь бралась расчетным путём от момента начала ведения учёта. Отчёт менеджера о продажах или как то так эта хрень называлась. Ну я пошёл человеку на встречу, но по мере накручивания им хотелок становилось всё хуже и всё страшнее и я окончательно сломался и отказался продолжать работу когда мой запрос стал занимать эдак 11 тысяч строк. Пытаешься же держать всю логику в голове, а там и сальда на итую дату и просроченное сальдор на итую дату и ещё куча доп условий и выводимых параметров была
|
|||
35
zhukovia
30.04.20
✎
14:55
|
(33) Про то что можно добавить 1 сек к датам я понимаю, и можно так и сделать. Но вод как запрос сделать с запросом остатков на эти даты никак не пойму. Не делать же условие ГДЕ Дата в (&СписокДат). Так же не прокатит? И как соединить в одном запросе Таблицу с документами и Запрос остатка? Я понимаю, что эти вопросы может быть и тривиальны для знающих, но мой "скил" явно недостаточный для того чтобы слёту понимать "обороты" вроде "присоедини список доков". Можно пример на пальцах (схематично) как запихать этот чертов список в запрос? Ну типа так: ВЫБРАТЬ * ИЗ Регистр.Обороты(Дата В (ВЫБРАТЬ * ИЗ СписокДокументов).ДатаДокумента)
|
|||
36
zhukovia
30.04.20
✎
14:58
|
(34) И кстати, не подскажете как лучше в запросе сравнивать со счетом?
Так РасчетыРегистр.СчетКт.Код = ""41"" или так РасчетыРегистр.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Расчеты.Счет41) |
|||
37
Бертыш
30.04.20
✎
15:40
|
(35) Да нет же.... вы не ставите условие на таблицу остатков, а формируете таблицу дат и на каждую дату соединением таблиц рассчитываете остаток
|
|||
38
Бертыш
30.04.20
✎
15:42
|
+37 Посмотрите как определяется курс валюты на каждую дату. от вам примерно также
|
|||
39
Бертыш
30.04.20
✎
15:43
|
||||
40
Бертыш
30.04.20
✎
15:44
|
Вот Вам оно надо, только у Вас вместо среза последних некое начальное сальдо на доистоическую дату обращением к таблицы остатков на тую дату, плюс минус движуха туда сюда
|
|||
41
zhukovia
30.04.20
✎
15:45
|
(40) Спасибо. Посмотрю сейчас.
|
|||
42
mistеr
30.04.20
✎
15:50
|
(40) Боюсь, не осилит ТС "плюс минус движуха". Да и я пожалуй не осилю. Пусть платформа этим занимается.
|
|||
43
Бертыш
30.04.20
✎
16:23
|
(42) Ну тогда таблица должна быть по любому не остатки, а остаткиобороты
|
|||
44
Бертыш
30.04.20
✎
16:27
|
+43 как кстати уже писал кто то ранее
|
|||
45
Cyberhawk
01.05.20
✎
09:42
|
(22) ГДЕ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |