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

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

дата, товар, приход/расход (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
1с MS AS Excel Остаток
    #33129978
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, хочется обойтись только первичной таблицей движений, бех таблицы остатков, так наверно места менше будет занимать :)
...
Рейтинг: 0 / 0
1с MS AS Excel Остаток
    #33130058
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Var79

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

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

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

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

а как в AS в моем случае сделать остатки?
...
Рейтинг: 0 / 0
1с MS AS Excel Остаток
    #33130578
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вычисляйте пока так:
Код: plaintext
1.
2.
3.
sum(Ascendants([Time].CurrentMember),
   (sum([Time].FirstSibling :[Time].CurrentMember,
           [Measures].[ПриходРасход])) - [Measures].[ПриходРасход]) + 
  [Measures].[ПриходРасход]
только [Measures].[ПриходРасход] замените на
Код: plaintext
((Measures.Количество,[ПриходРасход].[ 0 ])-(Measures.Количество,[ПриходРасход].[ 1 ]))
будут проблемы с производительностью - приходите ещё
...
Рейтинг: 0 / 0
1с MS AS Excel Остаток
    #33131537
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
1с MS AS Excel Остаток
    #33131561
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я вроде понял откуда 285,998 - это остаток на самую последнюю дату в кубе, а как с этим боротся?
...
Рейтинг: 0 / 0
1с MS AS Excel Остаток
    #33131565
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Var79]но всеже хотелось бы услышать способы оптимизации :)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
1с MS AS Excel Остаток
    #33134044
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
1с MS AS Excel Остаток
    #33159775
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(([Measures].[Обороты],[Measures].[Debkred].[0])-([Measures].[Обороты],[Measures].[Debkred].[1]))
- где тут ошибка? пишет "[Measures].[Debkred].[0]" in a name-binding function
...
Рейтинг: 0 / 0
1с MS AS Excel Остаток
    #33159795
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин, зделаю тут заметку для себя....

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

Хоть я и с 1С не работаю, но 1С не уникальна и я использую в виртуальном "кубе остатков" два физических куба: куб движений и куб помесячных (понедельных) остатков.
...
Рейтинг: 0 / 0
1с MS AS Excel Остаток
    #33208409
Фотография Валек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто интересно почему автор пошел таким путем заведомо ведущим к потере производительности когда у него считай есть в наличии остатки гораздо ближе чем высчитывать их с самого начала. блин чет туплю с запросом вроде все просто взять кон.остатки по данному месяцу + расход - приход и пролучили нач.остатки на требуемый период. какието косяки то уровень не может в мембер сконвертировать то наоборот, все ранво разгребем
...
Рейтинг: 0 / 0
1с MS AS Excel Остаток
    #33211085
Stepan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Валекха, интересно судя по всему вы пытаетесь на основе таблицы движений какогото регистра сделать куб и оттудаже вычислять остаток на любую дату причем расчитывать его (остаток) с самого начала приходов и расходов, а не проще ли былобы использовать таблицу остатков данного регистра ведь там храняться остатки скажем так на конец каждого месяца и уже расчет вести от них. я думаю профи в MDX подскажут как в этом случае получить остаток на любую дату. счас попробую сам ради эксперимента MDX запрос состряпать
Дык, я тоже тут списАл и считаю остатки от начала времен. Если можно, подробнее, как таблицу остатков пристегнуть? Я щас попробую на таблице остатков кубик сваять, ток там же уже ГОТОВЫЕ агрегаты, и кубу, по идее, делать нечего... нет, не представляю, как это пристегнуть к кубу движений. Поделитесь, если получится!
...
Рейтинг: 0 / 0
1с MS AS Excel Остаток
    #33212047
Фотография Валек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок. Давай по пожробней разгребем для 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
25 сообщений из 45, страница 1 из 2
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / 1с MS AS Excel Остаток
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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