Экономическая характеристика разрабатываемой подсистемы

Внедрение разрабатываемой подсистемы позволит менеджерам по учету движения товаров в более короткие сроки осуществлять обработку документов для отгрузки и резервирования товаров; менеджеры по учету движения товаров смогут более рационально использовать свое рабочее время.

Оценка отрицательных денежных потоков

Инвестиции в проект будут складываться только из затрат на разработку прикладного решения. В состав этих затрат входят затраты на выполнение следующих задач:

· исследование предметной области;

· выбор и обоснование проектных решений;

· проектирование;

· разработка;

· тестирование и отладка;

· опытное тестирование.

Стоимость разработки проекта будет складываться из общей стоимости работы ресурсов.

Для ресурсов назначим следующую стоимость работы:

· дипломник - 0 руб./час;

· программист – 10000 руб;

· представитель заказчика - 0 руб./час.

Выплата программисту осуществляется единовременно по выполнению разработки подсистемы «Перемещение товаров»

Оценка положительных денежных потоков

Положительные денежные потоки предполагается получить за счет уменьшения количества перерабатываемых часов у менеджеров по учету движения товаров. В сезонный период (апрель – август) значительно увеличивается общее количество обрабатываемых заказов. В неделю приходиться порядка 100 отгрузок на одного менеджера (по статистическим данным о деятельности сервисной службы ООО «Полиграф Принт» за предыдущие периоды). Время выполнение обработки 1 заказа без внедрения разрабатываемой подсистемы, для подготовки к отгрузке, составляет в среднем 30 минут. Соответственно в сезонный период наступает необходимость увеличения количества рабочих часов (в среднем на 10), за счет переработок. Рассчитаем выплату за перерабатываемые часы в неделю, приходящиеся на одного менеджера. При учете того, что штат менеджеров по учету движения товаров 11 человек, необходимость в постоянной переработке возникает у 5 сотрудников. Итоговые затраты компании ООО «Полиграф Принт» без внедрения разрабатываемой подсистемы учитываются из расчета перерабатываемых общих часов 5 сотрудников. Ниже приводимые расчёты основаны на данных бухгалтерского отдела ООО «Полиграф Принт».

10000 – заработная плата менеджера в месяц

56,82 - заработная плата менеджера в час

(100*30) /60 = 50 – часов, затрачивает менеджер на обработку документов в неделю

(50 – (8*5))*56,82 = 568,2 – рублей, в среднем оплата за перерабатываемые часы в неделю

568,2*4*5 = 11364 – рублей, в среднем оплата за перерабатываемые часы за сезонный период (апрель – август)

5*11364 = 56820 – рублей, в среднем составляют затраты на оплату перерабатываемых часов менеджерам отдела за сезонный период (апрель – август)

Итого затраты на год составляют 56820 рублей

Поскольку внедряемая подсистема позволит сократить время на обработку документов отгрузки товаров, то необходимость в переработке часов сводиться к минимуму.

Расчет показателей

Произведем расчет показателей экономической эффективности на 5 лет.

Ставку рефинансирования примем равной 12,5 % (по данным Центробанка на 05.05.2015)

Темп инфляции примем равным 16,5% в год.

Рассчитаем чистый приведенный доход NPV

.

Экономическая характеристика разрабатываемой подсистемы - student2.ru

Таблица 1 Расчет NPV

Результаты расчета показывают, что проект имеет положительную величину NPV. Это говорит о том, что внедрение данного проекта принесет прибыль.

Определим срок окупаемости инвестиций PP:

PP = 10000/56820 = 0,176

Таким образом, проект окупит себя за 0,176 года

Определим индекс доходности инвестиций PI:

PI = 192311,49/-(-10000) = 19,23

Т.о. каждый вложенный в проект рубль окупит себя и принесет еще 19,23 руб.

Выводы по главе 4

Проведенный экономический анализ показал, что:

· чистый приведенный доход (NPV) за 5 лет использования системы составляет 192311,49 руб.;

· срок окупаемости инвестиций в проект (PP) составляет 0,176 года;

· каждый вложенный в проект рубль окупит себя и принесет дополнительно 19,23 руб. (PI);

Учитывая вышеприведенный показатели, можно сделать вывод, что проект экономически эффективен и принесет прибыль после своего внедрения.

Заключение

Разработанная система позволит повысить эффективность процесса создания документов отгрузки товаров за счет использования информационных технологий.

В ходе выполнения дипломной работы была создана подсистема «Перемещение товаров», автоматизирующая основные действия процесса:

· построение отчёта «Анализ доступности товаров» по каждому наименованию номенклатуры;

· определение, на каком складе числиться нужный товар, его количество и резерв контрагента;

· формирование списков товаров, по каждому складу;

· создание документов «Перемещения товаров» для каждого склада.

Проведенный экономический анализ показал, что проект эффективен с экономической точки зрения и принесет после своего внедрения прибыль.

Созданная программа была успешно внедрена в информационную систему ООО «Полиграф Принт», а также успешно протестирована на работоспособность сотрудниками сервисной службы.

Список литературы

1. Сайт компании - Режим доступа: http://www.academy-group.ru/

2. 1С: Предприятие 8.2. Универсальный самоучитель - Режим доступа: http://www.assessor.ru/forum/index.php?t=1740

3. http://www.znay.ru/risk/02-10.shtml

4. Система моделирования бизнес процессов ARIS - Режим доступа: http://bourabai.ru/cm/aris.htm

5. Бизнес – требования - Режим доступа: http://www.dpgrup.ru/software-requirements.htm

6. С:Предприятие 8.1. Конфигурирование и администрирование. М: Фирма «1С», 2007.

7. 1С:Предприятие 8.1. Руководство по установке и запуску. М.: Фирма «1С», 2007. - 96 с.

8. Вендров А.М. CASE-технологии. Современные методы и средства проектирования информационных систем. М., МГУ, 1998.

9. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы, 2-е стереотипное издание. М.: ООО «1С- Паблишинг», 2006. - 656 с.: ил.

10. Беляев Д.А. Информационные технологии управления: Опорный конспект лекций. Сыктывкар: Издательство Сыктывкарского университета, 2006. 50 с.

11. Паулк Марк, Модель зрелости процессов разработки программного обеспечения/ Паулк Марк, Куртис Билл, Хриссис Мэри Бет, Вебер Чарльз В, Гарсия Сьюзен М, Буш Мерилин, 2002. -50с

12. 1997-99 Кирилл Воронов, КГ "Воронов и Максимов", Показатели оценки роста инвестиционного проекта, Режим доступа: http://www.aup.ru/articles/investment/5.htm



Приложение А

Экономическая характеристика разрабатываемой подсистемы - student2.ru

Рис.17 Организационная структура Общества с Ограниченной Ответственностью «Полиграф Принт»

Приложение Б

Процедура элемента командной строки «Проверка на остатки»:

Процедура КоманднаяПанельТоварыПроверкаНаОстатки(Кнопка)

// Вставить содержимое обработчика.

Если ЭтоНовый() = Истина или Модифицированность()=Истина Тогда

Сообщить("Необходимо записать документ!");

Возврат;

КонецЕсли;

Если Справочники.ПринадлежностьРезервов.НайтиПоРеквизиту("ПользовательРезерва",Контрагент)<> Справочники.ПринадлежностьРезервов.ПустаяСсылка() Тогда

ТекущийКонтрагент = Справочники.ПринадлежностьРезервов.НайтиПоРеквизиту("ПользовательРезерва",Контрагент).ВладелецРезерва;

Иначе

ТекущийКонтрагент = Контрагент;

КонецЕсли;

ТаблицаДанных = Товары.Выгрузить();

ТабДок = Новый ТабличныйДокумент;

Макет = ПолучитьМакет("ПроверкаНаОстатки");

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");

ОбластьШапка.Параметры.ДатаДок = ДатаПроведения;

ОбластьПозиция = Макет.ПолучитьОбласть("ПозицияЗаголовок");

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ОбластьЧерта = Макет.ПолучитьОбласть("Черта");

ОбластьПробел = Макет.ПолучитьОбласть("Пробел");

ТабДок.Вывести(ОбластьШапка);

Если Контрагент <> ТекущийКонтрагент Тогда

ОбластьДругой = Макет.ПолучитьОбласть("ДругойКонтрагент");

ОбластьДругой.Параметры.ТекущийКонтрагент = ТекущийКонтрагент;

ТабДок.Вывести(ОбластьДругой);

КонецЕсли;

Показывать = Ложь;

Остатки = Хватает(ТаблицаДанных.ВыгрузитьКолонку("Номенклатура"), ТекущийКонтрагент);

УДругих = ЧужиеРезервы(ТаблицаДанных.ВыгрузитьКолонку("Номенклатура"), ТекущийКонтрагент);

ТолькоСвободныеОстатки = Ложь;

Режим = РежимДиалогаВопрос.ДаНет;

Ответ = Вопрос("Проверять остатки с учетом собственных резервов?", Режим, 0);

Если Ответ = КодВозвратаДиалога.Нет Тогда

ТолькоСвободныеОстатки = Истина;

КонецЕсли;

Для каждого СтрокаДанных из ТаблицаДанных Цикл

Отбор = Новый Структура;

Отбор.Вставить("Номенклатура", СтрокаДанных.Номенклатура);

Отбор.Вставить("ХарактеристикаНоменклатуры", СтрокаДанных.ХарактеристикаНоменклатуры);

МассивСтрок = Остатки.НайтиСтроки(Отбор);

Если ТолькоСвободныеОстатки = Истина Тогда

СвойРезерв = 0;

Иначе Если МассивСтрок.Количество() <> 0 Тогда

СвойРезерв = МассивСтрок.Получить(0).РезервСвой;

Иначе

СвойРезерв = 0;

КонецЕсли;

Если МассивСтрок.Количество() = 0 или СвойРезерв + МассивСтрок.Получить(0).СвободныйОстаток < СтрокаДанных.Количество Тогда

Показывать = Истина;

//не хватает

//определяем сколько

Если МассивСтрок.Количество() = 0 Тогда

НеХватаетШтук = СтрокаДанных.Количество;

ВРезервеШтук = 0;

ВСвободеШтук = 0;

Иначе

НеХватаетШтук = СтрокаДанных.Количество-СвойРезерв-МассивСтрок.Получить(0).СвободныйОстаток;

ВРезервеШтук = МассивСтрок.Получить(0).РезервСвой;

ВСвободеШтук = МассивСтрок.Получить(0).СвободныйОстаток;

КонецЕсли;

ОбластьЗаголовок.Параметры.Сообщение = "Где можно взять:";

ОбластьПозиция.Параметры.Строка = "Строка " + Строка(СтрокаДанных.НомерСтроки);

ОбластьПозиция.Параметры.Номенклатура = Строка(СтрокаДанных.Номенклатура.Код)+" "+Строка(СтрокаДанных.Номенклатура);

ОбластьПозиция.Параметры.Характеристика = СтрокаДанных.ХарактеристикаНоменклатуры;

ОбластьПозиция.Параметры.Количество = "Необходимо (шт): " +Строка(СтрокаДанных.Количество)+" "+ ?(ВРезервеШтук = 0,"","Зарезервировано (шт): " + Строка(ВРезервеШтук)+", ") + ?(ВСвободеШтук = 0,"","В свободе(шт): " + Строка(ВСвободеШтук) +", ") + "Не хватает (шт): "+ Строка(НеХватаетШтук);

ТабДок.Вывести(ОбластьПозиция);

ТабДок.Вывести(ОбластьЗаголовок);

Отбор.Удалить("ХарактеристикаНоменклатуры");

ДругиеСтандарты = Остатки.НайтиСтроки(Отбор);

Если ДругиеСтандарты.Количество() = 0 или (ДругиеСтандарты.Количество() = 1 и ДругиеСтандарты.Получить(0).ХарактеристикаНоменклатуры = СтрокаДанных.ХарактеристикаНоменклатуры) Тогда

//вообще нет этой позиции

РезервыДругих = УДругих.НайтиСтроки(Отбор);

Если РезервыДругих.Количество() <> 0 Тогда

ОбластьДругиеКонтрагенты = Макет.ПолучитьОбласть("ДругиеШапка");

ТабДок.Вывести(ОбластьДругиеКонтрагенты);

ОбластьДругиеКонтрагентыСтрока = Макет.ПолучитьОбласть("ДругиеСтрока");

Для каждого ЭлементМассива из РезервыДругих Цикл

Если ЭлементМассива.КоличествоОстаток <> 0 Тогда

ОбластьДругиеКонтрагентыСтрока.Параметры.Стандарт = ЭлементМассива..

Приложение В

Процедура создания документов «Перемещение товаров» со складов хранения на склад «Ежедневный»:

Процедура КнопкаВыполнитьНажатие(Кнопка)

ТолькоРезерв = Ложь;

//либо реализация либо для счета уже создали резерв

Если ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ПоместитьВРезерв.Доступность = Ложь и ТипЗнч(ДокументОснование) = ТипЗнч(Документы.СчетНаОплатуПокупателю.ПустаяСсылка()) Тогда

КонецОбработки = Ложь;

Для Каждого СтрокаДанных из Товары Цикл

СтрокаДанных.Обработан = Ложь;

КонецЦикла;

ИначеЕсли Не ПроверкаДанных()Тогда

Возврат;

КонецЕсли;

Если Справочники.ПринадлежностьРезервов.НайтиПоРеквизиту("ПользовательРезерва",ДокументОснование.Контрагент)<> Справочники.ПринадлежностьРезервов.ПустаяСсылка() Тогда

ТекущийКонтрагент = Справочники.ПринадлежностьРезервов.НайтиПоРеквизиту("ПользовательРезерва",ДокументОснование.Контрагент).ВладелецРезерва;

Иначе

ТекущийКонтрагент = ДокументОснование.Контрагент;

КонецЕсли;

ЗапросДата = Новый Запрос;

ЗапросДата.УстановитьПараметр("Контрагент", ТекущийКонтрагент);

ЗапросДата.Текст = "ВЫБРАТЬ

| МАКСИМУМ(ТоварыВРезервеНаСкладах.Период) КАК Период

|ИЗ

| РегистрНакопления.ТоварыВРезервеНаСкладах КАК ТоварыВРезервеНаСкладах";

Попытка

ДатаРезерва = КонецДня(ЗапросДата.Выполнить().Выгрузить().Получить(0).Период);

Исключение

ДатаРезерва = КонецГода(ТекущаяДата());

КонецПопытки;

Если ДатаРезерва<ТекущаяДата() Тогда

ДатаРезерва = ТекущаяДата();

КонецЕсли;

Запрос = Новый Запрос;

Запрос.УстановитьПараметр("ДатаРезерва",КонецДня(ДатаРезерва));

Если ДокументОснование.Контрагент = Справочники.Контрагенты.НайтиПоКоду("000000015")Тогда //детский мир москва

Запрос.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоКоду("00191"));

Иначе

Запрос.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоКоду("00007"));

КонецЕсли;

Запрос.УстановитьПараметр("Сезон", ДокументОснование.Сезон);

Запрос.УстановитьПараметр("Контрагент", ТекущийКонтрагент);

Запрос.Текст = "ВЫБРАТЬ

| ЗаказыПокупателейОстатки.ЗаказПокупателя,

| ЗаказыПокупателейОстатки.ЗаказПокупателя.СкладГруппа КАК Склад,

| ЗаказыПокупателейОстатки.КоличествоОстаток

|ИЗ

| РегистрНакопления.ЗаказыПокупателей.Остатки(

| &ДатаРезерва,

| ЗаказПокупателя.Контрагент = &Контрагент

| И ЗаказПокупателя.СкладГруппа В ИЕРАРХИИ (&Склад)

| И Номенклатура = &Номенклатура

| И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры

| И ЗаказПокупателя.Сезон = &Сезон) КАК ЗаказыПокупателейОстатки

|ГДЕ

| ЗаказыПокупателейОстатки.КоличествоОстаток > 0";

Для каждого СтрокаДанных из Товары Цикл

Если СтрокаДанных.Обработан = Ложь Тогда

Запрос.УстановитьПараметр("Номенклатура",СтрокаДанных.Номенклатура);

Запрос.УстановитьПараметр("ХарактеристикаНоменклатуры",СтрокаДанных.ХарактеристикаНоменклатуры);

РезультатЗаказ = Запрос.Выполнить().Выгрузить();

Результат = РезультатЗаказ.Скопировать();

Результат.Свернуть("Склад", "КоличествоОстаток");

Если СтрокаДанных.Перемещено < СтрокаДанных.Количество Тогда

БудемПеремещатьКоличество = СтрокаДанных.Количество - СтрокаДанных.Перемещено;

Иначе

СтрокаДанных.Обработан = Истина;

Продолжить;

КонецЕсли;

Если ОпределитьБазовуюЦену(ТекущаяДата(),СтрокаДанных) = 0 Тогда

Сообщить(Строка(СтрокаДанных.Код) +" "+Строка(СтрокаДанных.Номенклатура)+ " нет базовой цены!");

Продолжить;

ИначеЕсли Результат.Количество()=0 Тогда //в резерве нет или отрицательное

Если ИзСвободыВРезерв(СтрокаДанных, БудемПеремещатьКоличество, ТекущийКонтрагент) = Истина Тогда //удалось

Если ТипЗнч(ДокументОснование) = ТипЗнч(Документы.СчетНаОплатуПокупателю.ПустаяСсылка()) Тогда

ПричинаКорректировки = Справочники.ПризнакиСписанияРезервов.Продажа;

ВыполнитьПеремещение(Запрос.Выполнить().Выгрузить(), СтрокаДанных, БудемПеремещатьКоличество, ПричинаКорректировки);

КонецЕсли;

Если СтрокаДанных.Количество <= СтрокаДанных.Перемещено Тогда

СтрокаДанных.Обработан = Истина;

КонецЕсли;

Продолжить;

Иначе

Сообщить(Строка(СтрокаДанных.Код) +" "+Строка(СтрокаДанных.Номенклатура) + " в свободе не достаточно. Замените или удалите позицию");

КонецЕсли;

//в резерве сколько то..

Наши рекомендации