Страница 2 из 3

Re: Быстро посчитать сальдо по МЦ

Добавлено: 26 апр 2012, 16:44
hope
Думаю - Может в стандартный галактический отчет по наличию - добавить свою информацию???? Может быть устроит быстродействие???
Данные пока всего за 3 года.
С dll, наверное, не буду заморачиваться.... Галактика у нас умирает, 1С победила.

Re: Быстро посчитать сальдо по МЦ

Добавлено: 27 апр 2012, 16:41
RAJAH
В 7.12 FastReport есть? Можно в FR создать ADODataBase, подсоединиться к своей БД, привязать к нему ADOQuery, а там уже по правилам T-SQL написать запрос.

Re: Быстро посчитать сальдо по МЦ

Добавлено: 28 апр 2012, 12:35
n0where
В Галактике возможно использовать DirectSQL.
Что значит бегать циклами?
Выполните в саппорте

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

SQL SELECT
KatMC.Name,
KatPodr.Name,
KatMol.Name,
KatParty.Name,
Data.sKol
FROM
(
SELECT
CMC,
CPARTY,
CCMOL,
CCPODR,
sum((case when VIDORDER=1 then -KOL else KOL end)) as sKOL
FROM
SPORDER
GROUP BY
CMC, cPARTY, CCMOL, CCPODR, VIDORDER
) as Data
LEFT JOIN KATMC on KatMC.nRec = Data.cmc
LEFT JOIN KATPARTY on KATPARTY.NREC = DATA.CPARTY
LEFT JOIN KATMOL on KATMOL.NREC = DATA.CCMOL
LEFT JOIN KATPODR on KATPODR.NREC = DATA.CCPODR;
У нас данные за 10 лет. запрос выполняется 20 сек

Re: Быстро посчитать сальдо по МЦ

Добавлено: 28 апр 2012, 13:57
RAJAH
n0where
На предыдущей странице выяснили, что у hope стоит 7.12, а там нет D-SQL.

Re: Быстро посчитать сальдо по МЦ

Добавлено: 03 май 2012, 13:46
hope
Указанный выше запрос не выполняется, не знает 7.12 оператор SQL, к сожалению.

Вопрос n0where: разве это быстро - собирать сальдо по всем складским ордерам?
У нас в одной базе за 3 года 7 млн записей в SpOrder. Хотя, можно попробовать - может по ордерам, действительно, быстрее посчитает сальдо?

В 7.12 группировку можно в запросе использовать?

Re: Быстро посчитать сальдо по МЦ

Добавлено: 03 май 2012, 15:11
n0where
Ну а в чем проблема? не одним саппортом еДины - SQL запрос в другом месте выполнить то можно.
разве это быстро - собирать сальдо по всем складским ордерам?
Я ж говорю - У нас 6 млн. Даже если было и 20. Все же быстрее чем в Галактике.

Re: Быстро посчитать сальдо по МЦ

Добавлено: 03 май 2012, 15:41
hope
Пробую настроить связь с таблицами Галактики в Access, но почему-то таблицы пустыми подвязываются???

Re: Быстро посчитать сальдо по МЦ

Добавлено: 04 май 2012, 11:06
hope
Кто-нибудь подключается к базе Галактики из MS Access?
Подскажи, плз, почему данные не видятся - таблицы пустые?

Re: Быстро посчитать сальдо по МЦ

Добавлено: 04 май 2012, 13:27
ecasoft
hope писал(а):Если в 7.12 нет DSQL, буду пробовать Store_ - может быть устроит быстродействие....
Спасибо!
Я бы поступил слудующим образом:
Cначало создать таблицу МЦ, по которым есть остатки и сохранить ее в Галактике в любой таблице контура, который у Вас не используется. Затем каждый раз получая остатки:

1. Пополнять табдицу всеми МЦ новыми (записанными в каталог МЦ после последнего запуска этой программы)
2. Получать остатки по 8 тыс записей SQL-лем. Это будет в любом случае быстро.

Re: Быстро посчитать сальдо по МЦ

Добавлено: 04 май 2012, 14:36
hope
"Cначало создать таблицу МЦ, по которым есть остатки и сохранить ее в Галактике в любой таблице контура"

Так ведь на разные даты - остатки по разным МЦ - так и получится весь каталог МЦ в этой таблице окажется...

Re: Быстро посчитать сальдо по МЦ

Добавлено: 04 май 2012, 15:01
hope
hope писал(а):Кто-нибудь подключается к базе Галактики из MS Access?
Подскажи, плз, почему данные не видятся - таблицы пустые?
Не те таблицы настраивала для связи - журнальные, которые были пустыми.

Теперь данные есть, только ссылки-Nrec-и - отображаются как псевдографика....

Re: Быстро посчитать сальдо по МЦ

Добавлено: 04 май 2012, 15:59
hope
Может кто-нибудь в курсе: как сделать, чтобы в Access поля типа Comp отображались правильно?

Re: Быстро посчитать сальдо по МЦ

Добавлено: 04 май 2012, 17:56
spark
hope писал(а):Может кто-нибудь в курсе: как сделать, чтобы в Access поля типа Comp отображались правильно?

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

SELECT dbo.ToInt64(F$NREC) as NREC FROM dbo.T$BASEDOC

Re: Быстро посчитать сальдо по МЦ

Добавлено: 04 май 2012, 18:49
ecasoft
hope писал(а):"Cначало создать таблицу МЦ, по которым есть остатки и сохранить ее в Галактике в любой таблице контура"

Так ведь на разные даты - остатки по разным МЦ - так и получится весь каталог МЦ в этой таблице окажется...
Я прочел Ваше самое первое сообщение, первые две строки - 80 тыс МЦ, остатки 8 тыс. Вы сами его перечитайте - что Вы имели ввиду под этими цифрами в первом сообщении? Теперь Вы говорите, что 80 тыс остатков, раз остатки по всем есть?

Вам какие остатки нужны? За какой период? Например, за последний год - пройдитесь и найдите МЦ, те что были с остатками в последнем году - получите таблицу.

PS У нас на сопровождении текстильная компания. МЦ - 120 тыс. Реальных остатков - не более 10 тыс. за последний год. Имеется ввиду, что в последнем году хотя бы один день у этих МЦ был с ненулевыe остатками. Таблица остатков этого не знает и Вы идете по 120 тыс. А если отбирать 10 тыс, а затем по ним делать остатки, то это сокращает значительно получение остатков.

Аналогичная картина в ГАлактике с пересчетом средних цен в расходных ордерах. Когда Вы входите, то Вам предлагается пометить те, которые нужно пересчисчитать. Но это бред,т.к. Вы часто помечаете все или одну. А можно написать программку которая поставил пометку только у тех, по которым было движение и расчет будет в несколько раз короче- может несколько минут. А многие считают ночами,т.к. всегда у всех пересчистывают.

Re: Быстро посчитать сальдо по МЦ

Добавлено: 05 май 2012, 00:29
Den
ecasoft, топикстартер просто привел немного лишней информации... )Остатки за период ..это как ? Остатки - они всегда на какую то дату, насколько я себе представлял...
Все сводится к тому(упрощенно пишу конечно...) чтобы выловить из saldomc на n-ую дату разрез (разрез тот, который нужен в соответствии с методом учета по складу на предпритяии..имею ввиду подраз -мол-мц, подраз-мол-мц-партия и т.д....) по которому кол-во остатка не нулевое. И, конечно, тут katmc имеет к данной задаче вообщем то весьма косвенное отношение