Версия для печати темы (https://pro1c.org.ua/index.php?s=98af6045d8348c31f37f38275000fc5f&showtopic=5757)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Расчёт среднедневных остатков.

Автор: Олег Крам 23.12.11, 8:22

Поделитесь, пожалуйста, опытом .
Какой самый оптимальный по быстродействию алгоритм расчёта среднедневных остатков за произвольный период ?
В частности по остаткам ТМЦ.

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

Есть ли другие варианты ?

Автор: Vofka 23.12.11, 8:54

Цитата
Есть ли другие варианты ?

А могут быть другие варианты? Единственное что, так это хочу заметить, что запрос бы сделать 1 с разворотом по дням, а не на каждый день делать запрос.

Автор: pablo 23.12.11, 9:27

Оптимальный по быстродействию алгоритм предполагает повышенные расходы памяти и прочих ресурсов. Например, можно организовать периодический регистр сведений, который будет содержать средние остатки и заполняться при проведении документов по складу. Естественно при этом вырастет время проведения документа, но тут уже Вам решать: в какой точке быстродействие важнее.

Автор: Vofka 23.12.11, 9:39

Цитата
можно организовать периодический регистр сведений

Вышел новый релиз 7.7? smile.gif

Автор: Flexy 23.12.11, 9:45

Цитата(Vofka @ 23.12.11, 9:39) *
Вышел новый релиз 7.7? smile.gif

Да.7.8 laugh.gif

По теме: Взять отчет по остаткам и чуток допилить вывод именно среднедневных остатков.

Автор: pablo 23.12.11, 10:00

Виноват, не посмотрел платформу. Но применительно к 7.7 можно организовать периодический реквизит справочника Номенклатура tongue.gif

Автор: igmig65 23.12.11, 10:08

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

Для бухгалтерии это запрос к бухитогам, для ТиСа к регистру ч-з объект Запрос.
Для 1 варианта использовать цепочку БИ.ИспользоватьСубконто(ТМЦ);Выбрать/получить субконто(ТМЦ), потом выбрать получить периоды (смотреть параметры)
для 2 варианта это обычный запрос к регистру с Группировкой по ТМЦ - строки, и 2, - Группировка(День Все ВшедшиеВЗапрос) - колонки,
итоги промежуточных группировок придется собирать, например в массивах.

Автор: Vofka 23.12.11, 10:09

Цитата
Взять отчет по остаткам и чуток допилить вывод именно среднедневных остатков.

Отчет по остаткам берёт остатки на конкретную дату. А надо взять остатки на каждый день, сплюсовать их и поделить на количество дней. Это будет среднедневным остатком за определённый период.

Автор: igmig65 23.12.11, 10:14

Цитата
Отчет по остаткам берёт остатки на конкретную дату. А надо взять остатки на каждый день, сплюсовать их и поделить на количество дней. Это будет среднедневным остатком за определённый период.

Не всегда так будет правильно, в тесении периода могут быть остатки 0, ведь если в течении месяца на складе всего только 1 день был остаток 100, это ж незначит, что СрДнОст = 100/30. Нужно делить на кол-во ненулевых дней

Автор: Ardi 23.12.11, 10:52

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

Цитата(igmig65 @ 23.12.11, 11:14) *
Не всегда так будет правильно, в тесении периода могут быть остатки 0, ведь если в течении месяца на складе всего только 1 день был остаток 100, это ж незначит, что СрДнОст = 100/30. Нужно делить на кол-во ненулевых дней

Как раз на 30 и нужно делить.

Автор: Vofka 23.12.11, 11:03

Цитата
Не всегда так будет правильно, в тесении периода могут быть остатки 0, ведь если в течении месяца на складе всего только 1 день был остаток 100, это ж незначит, что СрДнОст = 100/30. Нужно делить на кол-во ненулевых дней

В любом случае на количество всех дней делить надо, потому что остаток среднедневной и по фиг сколько на каждый отдельный день был остаток.

Автор: nysysimara 23.12.11, 11:12

Цитата из мат.спр.:"Сре́днее значе́ние — числовая характеристика множества чисел или функций; — некоторое число, заключенное между наименьшим и наибольшим из их значений. Наиболее употребительными С.з. являются:
среднее арифметическое
среднее взвешенное — усовершенствованный способ вычисления среднего арифметического
среднее гармоническое
среднее геометрическое
среднее логарифмическое
среднее значение случайной величины — то же, что математическое ожидание случайной величины
среднее значение функции
средние Колмогорова
среднее степенное
непараметрические средние — мода, медиана."
В данном случае, по-моему, нужно среднее арифметическое:

"В математике и статистике сре́днее арифмети́ческое (или просто среднее) набора чисел — это сумма всех чисел в этом наборе, делённая на их количество."

Автор: igmig65 23.12.11, 23:17

со всем выше сказанным согласен, чисто математически, но.....

Цитата
В математике и статистике сре́днее арифмети́ческое (или просто среднее) набора чисел — это сумма всех чисел в этом наборе, делённая на их количество."

Вот я и говорю, что ИНОГДА этот набор чисел должен содержать даты с ненулевыми остатками.

Автор: Ardi 24.12.11, 0:37

Цитата(igmig65 @ 24.12.11, 0:17) *
Вот я и говорю, что ИНОГДА этот набор чисел должен содержать даты с ненулевыми остатками.

На какой вопрос отвечает этот отчет тому кто такой отчет смотрит?

Если поделить на число дней месяца - я понимаю ЗАЧЕМ он нужен.

Автор: igmig65 24.12.11, 2:33

Цитата(Ardi @ 24.12.11, 0:37) *
На какой вопрос отвечает этот отчет тому кто такой отчет смотрит?

Если поделить на число дней месяца - я понимаю ЗАЧЕМ он нужен.

Я согласен, что вы видите среднедневные остатки, а вот зачем ОНИ ВАМ НУЖНЫ? Вот например для расчета себестоимости, мало ли зарплата, эл.энергия, бензин, и тд, если хранение есть один из немаловажных видов деятельности. Конечно все индивидуально. Я просто имел ввиду что само понятие среднедневные остатки, в тек.контексте, невсегда может применяться как чисто математическое.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua