Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Помогите решить задачу (Перебор по бухг. итогам) (число прочтений - 1978 )
Zealot
1c++ donor
Отсутствует


Будьте профессионалами!

Сообщений: 180
Местоположение: KIEV
Зарегистрирован: 17. Сентября 2007
Пол: Мужской
Помогите решить задачу (Перебор по бухг. итогам)
06. Мая 2008 :: 18:38
Печать  
Есть банковская выписка, в ней естественно куча строк, разные бух. счета с разной аналитикой (видами субконто), в той же банковской выписки в таблице есть некий реквизит (дебетовое сальдо конечное, кредитовое сальдо конечное ну или начальное допустим), так вот надо в этот реквизит максимально быстро вычислить это сальдо и естественно в разрезе субконто, пробовал через быстрые бух. итоги ("БыстрыеИтоги") очень долго... банковские выписки не меньше 300 - 500 строк, так вот максимально чего я добился по времени это до 2 минут на расчет этой лобуды... блин хреново... ХЕЛП...
  

Старание и труд все перетрут.
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите решить задачу (Перебор по бухг. итога
Ответ #1 - 06. Мая 2008 :: 19:26
Печать  
Не люблю бухитоги...
Разве обязательно считать на момент документа? Текущие не пойдут?
И вообще странный реквизит - зачем он нужен? Ведь сальдо в любой момент может поменяться
Так долго даже штатный запрос не может выполняться имхо (если просто развернуть по контрам)
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Zealot
1c++ donor
Отсутствует


Будьте профессионалами!

Сообщений: 180
Местоположение: KIEV
Зарегистрирован: 17. Сентября 2007
Пол: Мужской
Re: Помогите решить задачу (Перебор по бухг. итога
Ответ #2 - 06. Мая 2008 :: 20:05
Печать  
Цитата:
Не люблю бухитоги...
Разве обязательно считать на момент документа? Текущие не пойдут?
И вообще странный реквизит - зачем он нужен? Ведь сальдо в любой момент может поменяться
Так долго даже штатный запрос не может выполняться имхо (если просто развернуть по контрам)


Проблема в том что контрагенты это по одним счетам, а по другим счетам например виды затрат, по третим например виды налогов и т.д.
Возьми к примеру типовую попробую штатными способами на 500 строк разнотипных счетов выписку решить эту задачу, в зависимости от компа уйдет от 10 мин и больше....

Чето толковое кто подскажет, а нужно это для заказчика!
  

Старание и труд все перетрут.
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите решить задачу (Перебор по бухг. итога
Ответ #3 - 06. Мая 2008 :: 20:27
Печать  
Конкретный пример приведи, может и подскажут
Например, в первой строке указан счет 62 и выбран какой-то контрагент с договором
Во второй - какой-нить счет затрат и выбрана какая-то статья

По первой строке надо получить сальдо по 62 счету (?) по указанному контрагенту и договору
По второй - сальдо счета затрат по выбранной статье (хм... они обычно оборотные)
И на какой момент времени?

ЗЫ. А может стоит подсчитывать при заполнении?
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Zealot
1c++ donor
Отсутствует


Будьте профессионалами!

Сообщений: 180
Местоположение: KIEV
Зарегистрирован: 17. Сентября 2007
Пол: Мужской
Re: Помогите решить задачу (Перебор по бухг. итога
Ответ #4 - 06. Мая 2008 :: 20:50
Печать  
Цитата:
Конкретный пример приведи, может и подскажут
Например, в первой строке указан счет 62 и выбран какой-то контрагент с договором
Во второй - какой-нить счет затрат и выбрана какая-то статья

По первой строке надо получить сальдо по 62 счету (?) по указанному контрагенту и договору
По второй - сальдо счета затрат по выбранной статье (хм... они обычно оборотные)
И на какой момент времени?

ЗЫ. А может стоит подсчитывать при заполнении?


Пример правильный, по оборотным видам субконто исключать, на момент времени на начало дня к примеру

При заполнении не всегда гуд, к примеру часть данных из клиент банка переносится и часть потом правится, да и правильней в момент проведения
  

Старание и труд все перетрут.
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите решить задачу (Перебор по бухг. итога
Ответ #5 - 07. Мая 2008 :: 08:07
Печать  
Что-нибудь вроде
Код
Выбрать все
SELECT БВ.LineNo_ НомСтр
    , Счет [Счет $Счет.Основной]
    , Субконто1 [Субконто1 $Субконто]
    , Субконто1_вид
    , СуммаОстаток СН
FROM $БИОстатки.Основной(:ВыбДата,
	  INNER JOIN $ДокументСтроки.БанковскаяВыписка БВ (nolock) ON Счет = Right($БВ.Счет, 9) AND CharIndex(Субконто1, $БВ.Субконто1) > 0,,
	  Субконто1,
	  (БВ.IDDOC = :БВ)
	  AND (РазделительУчета = :ВыбФирма)
    ) AS БИОстаткиОсновной
    INNER JOIN $ДокументСтроки.БанковскаяВыписка БВ (nolock) ON БИОстаткиОсновной.Счет = Right($БВ.Счет, 9) AND CharIndex(БИОстаткиОсновной.Субконто1, $БВ.Субконто1) > 0
WHERE (БВ.IDDOC = :БВ) 


если для одного необоротного субконто, нет строк с одинаковыми счетами и субконто и т.п.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Zealot
1c++ donor
Отсутствует


Будьте профессионалами!

Сообщений: 180
Местоположение: KIEV
Зарегистрирован: 17. Сентября 2007
Пол: Мужской
Re: Помогите решить задачу (Перебор по бухг. итога
Ответ #6 - 07. Мая 2008 :: 08:59
Печать  
berezdetsky писал(а) 07. Мая 2008 :: 08:07:
Что-нибудь вроде
Код
Выбрать все
SELECT БВ.LineNo_ НомСтр
    , Счет [Счет $Счет.Основной]
    , Субконто1 [Субконто1 $Субконто]
    , Субконто1_вид
    , СуммаОстаток СН
FROM $БИОстатки.Основной(:ВыбДата,
	  INNER JOIN $ДокументСтроки.БанковскаяВыписка БВ (nolock) ON Счет = Right($БВ.Счет, 9) AND CharIndex(Субконто1, $БВ.Субконто1) > 0,,
	  Субконто1,
	  (БВ.IDDOC = :БВ)
	  AND (РазделительУчета = :ВыбФирма)
    ) AS БИОстаткиОсновной
    INNER JOIN $ДокументСтроки.БанковскаяВыписка БВ (nolock) ON БИОстаткиОсновной.Счет = Right($БВ.Счет, 9) AND CharIndex(БИОстаткиОсновной.Субконто1, $БВ.Субконто1) > 0
WHERE (БВ.IDDOC = :БВ) 


если для одного необоротного субконто, нет строк с одинаковыми счетами и субконто и т.п.



+
  

Старание и труд все перетрут.
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать