Не думал, что когда-нибудь потребуется интерполяция применительно к 1С, спрашивается, где интерполяция и где 1С, но оказывается она применима при планировании.
Представьте, что вам нужно спланировать продажи какого-то товара.
Очень часто при этом используются коэффициенты сезонности - это когда товар продается в какой-то месяц лучше, чем в другие. К примеру, телефоны лучше продаются перед новым годом, после идет спад. То же касается и легковых машин, и квартир и т.д. Тут ничего сложного нет - есть 12 месяцев, у каждого месяца есть свой коэффициент.
Но бывают и другие коэффициенты, к примеру, вы подготовили общественность и вывели новый товар на рынок, ну к примеру видеокарту 5090, в этом случае вы ожидаете пик продаж в самом начале, потом постепенный спад и через 1-1.5 года вывод в продажу новой версии 6090. При этом этот график из этих коэффициентов может как растягиваться - к примеру, вывод в продажу может затянуться и вывод в продажу новой карты 6090 будет через 2 года, либо сжиматься. При этом коэффициенты заданы только на 16 месяцев, и вы, раз задав коэффициенты, не хотите постоянно их перебивать, пускай алгоритмы сами растягивают эти коэффициенты. Есть много и других случаев планирования, которые сложнее представленных вариантов.
Для того, чтоб была возможность растягивать и сжимать графики из заранее заданных коэффициентов - выведенных на основании статистических закономерностей, была написана функция интерполяции.
Чтоб учесть нюансы, мы график разбиваем на ряды, к примеру, на картинке представлены 3 ряда:
это коэффициенты с 1-9, затем идут 0 с 10-15 и потом некий коэффициент с номером строки = 16. На рисунке мы растягиваем весь график.
Но иногда требуется, к примеру, какой-то ряд/ряды не растягивать, ну, к примеру, выждать 6 месяцев, а потом выплатить оставшуюся часть денег (гарантийное удержание), в этом случае нам нужно запретить растягивать ряд с нулями:
А что будет, если график сжать? Да без проблем:
Но если для растягивания ограничений нет:
То сжимать до 0 не получится, а до скольки можно, определить сложно, это зависит и от количества рядов, и от того, какие ряды можно изменять, какие нет.
Итого, интерполяция имеет место быть в 1С при алгоритмах планирования. Возможно, когда-нибудь потребуется и функция разложения Фурье, при выделении коэффициентов из накопленных статистических данных, чтобы использовать полученные коэффициенты для автоматической генерации алгоритмов автопланирования. Ну либо дождемся, когда AI это сделает за нас и вместо нас.
Выкладываю обработку, с которой можно поиграться с интерполяцией, и взять функцию интерполяции при необходимости.
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.169.18