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