Страница 1 из 1

Как рассчитать сальдо по счету на опр. дату?

Добавлено: 02 июл 2007, 14:09
Nike
Здравствуйте! Пишу программу на Дельфи, использующую данные из БД галактики (к-я стоит на первазиве). Существует необходимость получить значение сальдо по определенному субсчету определенного счета на определенную дату. Как это сделать?

Пробовал вот так:

Код: Выделить всё

select sum(Sums) from saldmoun sal where scheto='6241'
 and SUBOSSCH='2011'
 and datesal=(Select  Max(datesal) from saldmoun sa where sa.nrec=sal.nrec and datesal<= '2007-06-30' )
Но сумма при этом получается неправильная (не совпадает со значением аналитики в Галактике). Пробовал ковыряться с полем viob таблицы saldmoun - не помогло. Подскажите пожалуйста, как данное значение из базы вытащить?? Уже нифига не соображаю и чувствую себя полным идиотом :?

Re: Как рассчитать сальдо по счету на опр. дату?

Добавлено: 02 июл 2007, 20:04
Deinis
Во-первых нужного тебе сальдо в БД может и не быть. В смысле - сальдо - вещь динамическая, сейчас - одно значение, через 3 минуты - уже другое.
Поэтому Галактика хранит сальдо в таблице SaldMoun только на какие-то реперные точки, а именно - входящее сальдо (на утро) на каждое 1-е число месяца :).
Процедура сохранения сальдо в таблицу SaldMoun вызывается либо вручную (через меню в модуле ФРО), либо по мере закрытия периода в бухгалтерии (в модуле ФРО или Настройка).

Хочешь посчитать на конкретную дату? Тогда бери сальдо из SaldMoun на дату отчетного периода в бухгалтерии. Поле ViOb показывает - дебет или кредит.
Прибавляй все дебетовые обороты и вычитай все кредитовые обороты(Oborot.SumOb) за период с 1-го месяца по нужную тебе дату. Дебет или кредит в проводке - думаю поймешь где.
Не вполне уверен насчет поля Oborot.SumOb, там ведь могут быть еще конвертирования, точно уже не помню. Но вроде все нормально в это поле рублевая сумма и попадает.

Чтобы сальдо, рассчитанное "в стороне от" совпадало полностью с сальдо, рассчитанным "внутри" Галактики, нужно расчет вести с учетом всех аналитических разрезах, а не только по счету/субсчету (это касается Активно/Пассивных счетов).

Кстати, в Галактике есть стандартная функция CalcNewSaldo (чтобы не лезть в таблицу проводок). Но она по-моему вызывается только из VIP-а.

Re: Как рассчитать сальдо по счету на опр. дату?

Добавлено: 04 ноя 2014, 11:51
novichok
Мне тоже нужно рассчитать сальдо на дату, только программу пишу на vip-е. Как использовать функцию CalcNewSaldo:
CalcNewSaldo; или CalcNewSaldo(дата);
Эта функция ничего не испортит в галактике (где-то писали, что нельзя сальдо рассчитывать программно)?

Re: Как рассчитать сальдо по счету на опр. дату?

Добавлено: 04 ноя 2014, 17:59
Алексей
Верно копаете, именно этой функцией и рассчитывается сальдо, при чем на любую дату и складывает полученный расчёт во временную таблицу. Ничего не портит.
Поищите пример использования на форуме.

Re: Как рассчитать сальдо по счету на опр. дату?

Добавлено: 05 ноя 2014, 18:50
spark
novichok писал(а):Мне тоже нужно рассчитать сальдо на дату, только программу пишу на vip-е. Как использовать функцию CalcNewSaldo:
CalcNewSaldo; или CalcNewSaldo(дата);
Эта функция ничего не испортит в галактике (где-то писали, что нельзя сальдо рассчитывать программно)?
В VIP'е можно использовать функцию GetPat(' ') и с помощью бухгалтерских формул получать сальдо, обороты и т.д.

Re: Как рассчитать сальдо по счету на опр. дату?

Добавлено: 17 ноя 2014, 06:18
exorka
Важно еще помнить что есть еще и данные по которым не было оборотов. А еще есть "Пропуск уровня аналитики" что тоже необходимо учесть.