Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / 1с MS AS Excel Остаток / 25 сообщений из 45, страница 1 из 2
22.06.2005, 20:51
    #33129973
Var79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
поискал по форому, почитал, но все же создал новую ветку.

хранится информация о движении товаров примерно в таком формате:

дата, товар, приход/расход (0/1), количество, сумма,

Вопросы
1) как получить остатки товаров на дату (нарастающий итог по товару).
2) поле "приход/расход (0/1)" должно быть в мерах или в измерениях?

на форуме есть формула :

SUM(PeriodsToDate([Дата Физ].Levels(0),[Дата Физ].CurrentMember),Measures.Приход - Measures.Расход)

но я незнаю как в моем случае создать этот Measures.Приход и Measures.Расход

потому как приход по строке это
приход/расход (0/1)=0, количество=20

а расход по строке это
приход/расход (0/1)=1, количество=20

можно наверное во вьюхе сделать такие поля, но SQL плохо знаю, вьюхи и хранимые процедуры я не писал
Хочется оставить все как есть
и все считать в AS
...
Рейтинг: 0 / 0
22.06.2005, 20:53
    #33129978
Var79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
Да, хочется обойтись только первичной таблицей движений, бех таблицы остатков, так наверно места менше будет занимать :)
...
Рейтинг: 0 / 0
22.06.2005, 22:27
    #33130058
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
Var79

можно наверное во вьюхе сделать такие поля, но SQL плохо знаю, вьюхи и хранимые процедуры я не писал
Хочется оставить все как есть
и все считать в AS

На самом деле это без разницы, где делать, только все равно вам без знания SQL не обойтись, только если прямо в AS сделаете при определении мер, то сопровождать такое решение тяжелее будет, чем вьюхи.
...
Рейтинг: 0 / 0
22.06.2005, 22:32
    #33130062
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
Var79Да, хочется обойтись только первичной таблицей движений, бех таблицы остатков, так наверно места менше будет занимать :)

Все зависит от того для каких целей вы строите AS решение и от порядка величины ваших данных.

Чем выше требования к детализации данных (например остатки на произвольный день), чем больше записей в таблице движений, чем меньше моксимально допустимое время выполнения стандартных отчетов (не более n секунд), тем вам труднее будет обходится без таблица остатков (по году, поквартальных, помесячных, по неделе)
...
Рейтинг: 0 / 0
22.06.2005, 22:35
    #33130065
Var79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
Буду учится, когда то писал под MySQL что то знаю :-), но нада время на это.
Рекомендуется все же на SQLe сделать колонки?
какого плана должна быть таблица, чтото вроде этого?:
тов1 0 15
тов2 0 10
тов1 4 0
тов2 6 0

а как в AS в моем случае сделать остатки?
...
Рейтинг: 0 / 0
23.06.2005, 10:52
    #33130578
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
вычисляйте пока так:
Код: plaintext
1.
2.
3.
sum(Ascendants([Time].CurrentMember),
   (sum([Time].FirstSibling :[Time].CurrentMember,
           [Measures].[ПриходРасход])) - [Measures].[ПриходРасход]) + 
  [Measures].[ПриходРасход]
только [Measures].[ПриходРасход] замените на
Код: plaintext
((Measures.Количество,[ПриходРасход].[ 0 ])-(Measures.Количество,[ПриходРасход].[ 1 ]))
будут проблемы с производительностью - приходите ещё
...
Рейтинг: 0 / 0
23.06.2005, 15:29
    #33131537
Var79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
Dmitry Biryukovвычисляйте пока так:
Код: plaintext
1.
2.
3.
sum(Ascendants([Time].CurrentMember),
   (sum([Time].FirstSibling :[Time].CurrentMember,
           [Measures].[ПриходРасход])) - [Measures].[ПриходРасход]) + 
  [Measures].[ПриходРасход]
только [Measures].[ПриходРасход] замените на
Код: plaintext
((Measures.Количество,[ПриходРасход].[ 0 ])-(Measures.Количество,[ПриходРасход].[ 1 ]))
будут проблемы с производительностью - приходите ещё

2 Dmitry Biryukov Спасибо ОГРОМНОЕ заработало!
вроде нармально работает

но всеже хотелось бы услышать способы оптимизации :)

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

Вопрос:
если в Excel по горизантали Склады, по вертикали Товары, а там где поля страниц "Время" и если во "Время" поставить галочку несколько элементов и выбрать 26 27 и 28 февраля (что бы видеть продажи за эти дни) то остаток по группе товаров в моем случае будет 285,998 , откуда берется этот остаток?
А если выбрать 28 февраля то будет правильный остаток в моем случае 272,77 почему так? как с этим боротся? :)



Интересует хорошая (бумажная) литература по ОЛАП на русском языке ссылки в инете нашел но хотелось бы услышать мнение от Живого человека, кому какая литература на русском языке Очень понравилась по рекоминдуйте пожалуста :)
...
Рейтинг: 0 / 0
23.06.2005, 15:35
    #33131561
Var79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
я вроде понял откуда 285,998 - это остаток на самую последнюю дату в кубе, а как с этим боротся?
...
Рейтинг: 0 / 0
23.06.2005, 15:37
    #33131565
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
[quot Var79]но всеже хотелось бы услышать способы оптимизации :)

подтормаживает если товар раскрывать до элементов но там несколько тысяч елементов на нижнем уровне, может так и должно быть[quot]
сказали же - таблица остатков
...
Рейтинг: 0 / 0
23.06.2005, 15:50
    #33131604
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
Var79если в Excel по горизантали Склады, по вертикали Товары, а там где поля страниц "Время" и если во "Время" поставить галочку несколько элементов и выбрать 26 27 и 28 февраля (что бы видеть продажи за эти дни) то остаток по группе товаров в моем случае будет 285,998 , откуда берется этот остаток?
А если выбрать 28 февраля то будет правильный остаток в моем случае 272,77 почему так? как с этим боротся? :)
а никак...
обсуждали уже
...
Рейтинг: 0 / 0
23.06.2005, 16:09
    #33131668
Var79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
backfire Var79Да, хочется обойтись только первичной таблицей движений, бех таблицы остатков, так наверно места менше будет занимать :)

Все зависит от того для каких целей вы строите AS решение и от порядка величины ваших данных.

Чем выше требования к детализации данных (например остатки на произвольный день), чем больше записей в таблице движений, чем меньше моксимально допустимое время выполнения стандартных отчетов (не более n секунд), тем вам труднее будет обходится без таблица остатков (по году, поквартальных, помесячных, по неделе)

"Все зависит от того для каких целей вы строите AS решение и от порядка величины ваших данных." - даже незнаю что ответить... по максимуму наверно пока тока смотрю что к чему

в таблице движений будет на ближайшие 2а года не более 5млн записей, товаров сейчас 42000, болше 55000 врядли будет, реально использующееся товары 35000 элементов.
думаю 10 сек допустимо для такого отчета где показаны продажи закупки наценка и остаток, в разреде до дней и до элементов товаров (но чаще до групп)

пока немогу нечего сказать однозначно нужно эксперементировать
...
Рейтинг: 0 / 0
23.06.2005, 16:13
    #33131683
Var79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
Dmitry Biryukov Var79если в Excel по горизантали Склады, по вертикали Товары, а там где поля страниц "Время" и если во "Время" поставить галочку несколько элементов и выбрать 26 27 и 28 февраля (что бы видеть продажи за эти дни) то остаток по группе товаров в моем случае будет 285,998 , откуда берется этот остаток?
А если выбрать 28 февраля то будет правильный остаток в моем случае 272,77 почему так? как с этим боротся? :)
а никак...
обсуждали уже

А что делать клиента другого использовать вместо Excelя2к?
или дело в MS AS 2000?
а какой хороший недорогой (или даже бесплатный) ОЛАП инструмент (сервер и/или клиент) ?
хотя бесплатных наверно нет :)
...
Рейтинг: 0 / 0
23.06.2005, 16:41
    #33131783
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
если периоды смежные, то можно так сделать: http://spaces.msn.com/members/cwebbbi/Blog/cns!1pi7ETChsJ1un_2s41jm9Iyg!113.entry

если нет - подождите юкона (или ставьте бету). там обещают поддержку мультиселектов. хотя тогда и клиент нужен, который будет знать об этой фиче

если нужно срочно - придёт Юрий и покажет как это всё сделать мышкой за пару минут :-)
...
Рейтинг: 0 / 0
23.06.2005, 19:24
    #33132149
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
думаю 10 сек допустимо для такого отчета где показаны продажи закупки наценка и остаток, в разреде до дней и до элементов товаров

сделаете, расскажете.

А на засыпку
Создайте такой CM, который широко используется для оценки эффективности склада.

Оборачиваемость = Расход/Количкество/СреднийТоварныйЗапас

отсортируйте по нем все товары на день Х, если за 5 секунд ответит, то жить можно.
...
Рейтинг: 0 / 0
23.06.2005, 20:21
    #33132203
Var79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
backfire думаю 10 сек допустимо для такого отчета где показаны продажи закупки наценка и остаток, в разреде до дней и до элементов товаров

сделаете, расскажете.

А на засыпку
Создайте такой CM, который широко используется для оценки эффективности склада.

Оборачиваемость = Расход/Количкество/СреднийТоварныйЗапас

отсортируйте по нем все товары на день Х, если за 5 секунд ответит, то жить можно.

"Оборачиваемость = Расход/Количкество/СреднийТоварныйЗапас "
непонятно что тут есть "Количество" и чем оно отличается от Расхода :( а СреднийТоварныйЗапас как считать вообще? а если были дни где небыло товара на остатке, тут по моему моих знаний еще маловата будет.
может кто подскажет как написать эту формулу?
...
Рейтинг: 0 / 0
23.06.2005, 20:47
    #33132218
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
Var79 backfire думаю 10 сек допустимо для такого отчета где показаны продажи закупки наценка и остаток, в разреде до дней и до элементов товаров

сделаете, расскажете.

А на засыпку
Создайте такой CM, который широко используется для оценки эффективности склада.

Оборачиваемость = Расход/Количкество/СреднийТоварныйЗапас

отсортируйте по нем все товары на день Х, если за 5 секунд ответит, то жить можно.

"Оборачиваемость = Расход/Количкество/СреднийТоварныйЗапас "
непонятно что тут есть "Количество" и чем оно отличается от Расхода :( а СреднийТоварныйЗапас как считать вообще? а если были дни где небыло товара на остатке, тут по моему моих знаний еще маловата будет.
может кто подскажет как написать эту формулу?

Прошу прощения за опечатку. Должно было быть.

Оборачиваемость = Расход/КоличествоДнейВПериодеВремени/СреднийТоварныйЗапас
...
Рейтинг: 0 / 0
24.06.2005, 11:25
    #33132897
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
Dmitry Biryukovподождите юкона (или ставьте бету). там обещают поддержку мультиселектов
Я думаю что для такого calculated member, и в Юконе мултиселект не будет работать, т.к. он хочет взять Time.CurrentMember, а если по времени будет выбрано несколько периодов, то как определить какой из них CurrentMember - так что в этом случае будет выдаваться ошибка.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
24.06.2005, 17:02
    #33134044
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
Mosha Dmitry Biryukovподождите юкона (или ставьте бету). там обещают поддержку мультиселектов
Я думаю что для такого calculated member, и в Юконе мултиселект не будет работать, т.к. он хочет взять Time.CurrentMember, а если по времени будет выбрано несколько периодов, то как определить какой из них CurrentMember - так что в этом случае будет выдаваться ошибка.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

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

Вопрос: как определить в MDX

(<Dimension>.CurrentMember is CalculetedMember)
...
Рейтинг: 0 / 0
11.07.2005, 16:25
    #33159775
Var79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
(([Measures].[Обороты],[Measures].[Debkred].[0])-([Measures].[Обороты],[Measures].[Debkred].[1]))
- где тут ошибка? пишет "[Measures].[Debkred].[0]" in a name-binding function
...
Рейтинг: 0 / 0
11.07.2005, 16:34
    #33159795
Var79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
блин, зделаю тут заметку для себя....

1 Измерение "ПрихРасх" это [Debkred]
2 СМ ПриходРасход это (([Measures].[Обороты],[ПрихРасх].[0])-([Measures].[Обороты],[ПрихРасх].[1]))
3 СМ Остаток это sum(Ascendants([Time].CurrentMember),
(sum([Time].FirstSibling :[Time].CurrentMember,
[Measures].[ПриходРасход])) - [Measures].[ПриходРасход]) +
[Measures].[ПриходРасход]
...
Рейтинг: 0 / 0
10.08.2005, 11:07
    #33208013
Валек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
ха, интересно судя по всему вы пытаетесь на основе таблицы движений какогото регистра сделать куб и оттудаже вычислять остаток на любую дату причем расчитывать его (остаток) с самого начала приходов и расходов, а не проще ли былобы использовать таблицу остатков данного регистра ведь там храняться остатки скажем так на конец каждого месяца и уже расчет вести от них. я думаю профи в MDX подскажут как в этом случае получить остаток на любую дату. счас попробую сам ради эксперимента MDX запрос состряпать
...
Рейтинг: 0 / 0
10.08.2005, 11:16
    #33208042
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
Валекха, интересно судя по всему вы пытаетесь на основе таблицы движений какогото регистра сделать куб и оттудаже вычислять остаток на любую дату причем расчитывать его (остаток) с самого начала приходов и расходов, а не проще ли былобы использовать таблицу остатков данного регистра ведь там храняться остатки скажем так на конец каждого месяца и уже расчет вести от них. я думаю профи в MDX подскажут как в этом случае получить остаток на любую дату. счас попробую сам ради эксперимента MDX запрос состряпать

Хоть я и с 1С не работаю, но 1С не уникальна и я использую в виртуальном "кубе остатков" два физических куба: куб движений и куб помесячных (понедельных) остатков.
...
Рейтинг: 0 / 0
10.08.2005, 14:53
    #33208409
Валек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
просто интересно почему автор пошел таким путем заведомо ведущим к потере производительности когда у него считай есть в наличии остатки гораздо ближе чем высчитывать их с самого начала. блин чет туплю с запросом вроде все просто взять кон.остатки по данному месяцу + расход - приход и пролучили нач.остатки на требуемый период. какието косяки то уровень не может в мембер сконвертировать то наоборот, все ранво разгребем
...
Рейтинг: 0 / 0
11.08.2005, 16:50
    #33211085
Stepan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
Валекха, интересно судя по всему вы пытаетесь на основе таблицы движений какогото регистра сделать куб и оттудаже вычислять остаток на любую дату причем расчитывать его (остаток) с самого начала приходов и расходов, а не проще ли былобы использовать таблицу остатков данного регистра ведь там храняться остатки скажем так на конец каждого месяца и уже расчет вести от них. я думаю профи в MDX подскажут как в этом случае получить остаток на любую дату. счас попробую сам ради эксперимента MDX запрос состряпать
Дык, я тоже тут списАл и считаю остатки от начала времен. Если можно, подробнее, как таблицу остатков пристегнуть? Я щас попробую на таблице остатков кубик сваять, ток там же уже ГОТОВЫЕ агрегаты, и кубу, по идее, делать нечего... нет, не представляю, как это пристегнуть к кубу движений. Поделитесь, если получится!
...
Рейтинг: 0 / 0
12.08.2005, 09:27
    #33212047
Валек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с MS AS Excel Остаток
ок. Давай по пожробней разгребем для 1с7.7 конфа ТиС возьмем регистр остатков к примеру у меня это таблици RG99 - сам регистр остатки храняться помесячно и RA99 - таблица движений регистра остатков. Сделаем на просмотрах:

1. вюха для RG99 нам нужны будут след поля период остатков, ID товара, ID склада и остаток. период остатков мы сразу сконвертируем т.к. в регистре остатки храняться на конец месяца это есть начальные остатки след. месяца что мы и проделываем конструкцией CONVERT вот и сама вьюха:
CREATE VIEW dbo.VIEW_DWH_RG99
AS
SELECT CONVERT(smalldatetime, DATEADD([Month], 1, dbo.RG99.PERIOD), 104) AS PERIOD_OSTATKOV, dbo.SC33.ID AS TovarID, dbo.SC31.ID AS SkladID,
dbo.RG99.SP102 AS OSTATOK
FROM dbo.RG99 INNER JOIN
dbo.SC33 ON dbo.RG99.SP101 = dbo.SC33.ID INNER JOIN
dbo.SC31 ON dbo.RG99.SP100 = dbo.SC31.ID
GROUP BY dbo.RG99.PERIOD, dbo.SC33.ID, dbo.SC31.ID, dbo.RG99.SP102

2. вюха для RA99 нам нужны будут след поля период остатков (хотя оно и не нужно будет это так для других целей), дата движения, документ, ID товара, ID склада, приход если дебеткредит=0 и расход если дебеткредит=1. период остатков мы сразу сконвертируем, дату движения тоже вот и сама вьюха:
CREATE VIEW dbo.VIEW_DWH_RA99
AS
SELECT CONVERT(smalldatetime, CONVERT(varchar(10), CONVERT(datetime, '01.' + cast(month(CONVERT(datetime, CONVERT(varchar(8),
dbo.ra99.date_time_iddoc, 104), 104)) AS varchar(10)) + '.' + cast(year(CONVERT(datetime, CONVERT(varchar(8), dbo.ra99.date_time_iddoc, 104), 104))
AS varchar(10)), 104), 104), 104) AS PERIOD_OSTATKOV, CONVERT(smalldatetime, CONVERT(datetime, CONVERT(varchar(8),
dbo.ra99.date_time_iddoc, 104), 104), 104) AS DATA_DVIJENIA, dbo.RA99.DATE_TIME_IDDOC, dbo.SC33.id AS TovarID, dbo.SC31.id AS SkladID,
CASE WHEN dbo.ra99.debkred = 0 THEN dbo.RA99.SP102 ELSE 0 END AS PRIHOD,
CASE WHEN dbo.ra99.debkred = 1 THEN dbo.RA99.SP102 ELSE 0 END AS RASHOD
FROM dbo._1SJOURN INNER JOIN
dbo.RA99 ON dbo._1SJOURN.IDDOC = dbo.RA99.IDDOC INNER JOIN
dbo.SC31 ON dbo.RA99.SP100 = dbo.SC31.ID INNER JOIN
dbo.SC33 ON dbo.RA99.SP101 = dbo.SC33.ID
WHERE _1sjourn.closed = 1
GROUP BY dbo.RA99.DATE_TIME_IDDOC, dbo.ra99.debkred, dbo.RA99.SP102, dbo.SC33.id, dbo.SC31.id

3. еще нам нужна будет вьюха временной оси (период типа) скажем так, мы должны в нее собрать все даты по которым были остатки и движения а вот и она сама:

CREATE VIEW dbo.VIEW_DWH_VREMA_RGRA_99
AS
SELECT CONVERT(smalldatetime, dbo.VIEW_DWH_RA99.PERIOD_OSTATKOV, 104) AS PERIOD
FROM dbo.VIEW_DWH_RA99
UNION
SELECT CONVERT(smalldatetime, dbo.VIEW_DWH_Rg99.PERIOD_OSTATKOV, 104) AS PERIOD
FROM dbo.VIEW_DWH_RG99
UNION
SELECT CONVERT(smalldatetime, dbo.VIEW_DWH_RA99.DATA_DVIJENIA, 104) AS PERIOD
FROM dbo.VIEW_DWH_RA99

ну вот вьюхи создали запустили проверили что все корректно выбираеться.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / 1с MS AS Excel Остаток / 25 сообщений из 45, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]