Клиент поставил задачу: посчитать в 1С внутреннюю ставку доходности проекта. В MS Excel это решалось просто, достаточно было вызвать функцию ВСД (или IRR в не локализованной версии). В 1С такой функции нет. После анализа решений в интернете написал свою реализацию этой задачи, всё просто: на вход подается таблица значений, которая содержит денежные потоки через равные промежутки времени. На выходе получается процентная ставка за период.
Файлы
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
0% комиссии — оплата напрямую исполнителю;
Исполнители любого масштаба — от отдельных специалистов до команд под проект;
Прямой обмен контактами между заказчиком и исполнителем;
Безопасная сделка — при необходимости;
Рейтинги, кейсы и прозрачная система откликов.
Аналог функции ВСД программы MS Excel (расчет внутренней ставки доходности) для 1С реализован в виде внешнего отчета. Отчет содержит одну экспортную функцию ВСД, расположенную в модуле отчета. Варианты использования: встроить отчет в свою конфигурацию и вызывать эту функцию или скопировать функцию и расположить в своём модуле.
В качестве параметра функции использовать таблицу значений. Функция возвращает число, это рассчитанный процент за период.
Для демонстрации работы функции на форме расположена таблица значений. Заполнив её и нажав кнопку "Рассчитать ВСД" мы получим сообщение о значении ВСД для этих данных.
Описание оригинала функции от Microsoft: функция возвращает внутреннюю ставку доходности для ряда потоков денежных средств, представленных их численными значениями. В отличие от аннуитета, денежные суммы в пределах этих потоков могут колебаться. Однако обязательным условием является регулярность поступлений (например, ежемесячно или ежегодно). Внутренняя ставка доходности — это процентная ставка, принимаемая для инвестиции, состоящей из платежей (отрицательные величины) и доходов (положительные величины), которые имеют место в следующие друг за другом и одинаковые по продолжительности периоды.
Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux).
Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).
Порой необходимо временно отключить расширение 1С, не удаляя его, чтобы не потерять данные. Но в этом случае при каждом запуске всем будет лезть уведомление о неактивном расширении, хотя очевидно, это техническая информация, которой не стоит лишний раз пугать пользователей.
На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.
Ну вообще то ВСД можно рассчитывать не только когда все периоды между платежами идеально равны между собой. Если они не равны, то за базовый период принимается наиболее часто встречающийся в графике временной интервал между денежными потоками. Сложность расчета при этом существенно возрастает...
Добрый день. Приобрел вашу обработку. Сравнил с результатом работы функции ВСД, реализованной в MS EXCEL. Результаты отличаются. :( Ваша функция работает неверно?
Разобрался. В моих примерах ВСД было от 0 до 2 %. И поэтому я не сразу понял, что нужно округлять до целых.
Обработка работает корректно. Автору спасибо.