Разработка программного обеспечения расчета платы за негативное воздействие на водные объекты

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 24.05.2018
Размер файла 740,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Интернет-журнал «НАУКОВЕДЕНИЕ» Том 8, №4 (июль - август 2016) http://naukovedenie.ru publishing@naukovedenie.ru

Размещено на http://www.allbest.ru/

1

http://naukovedenie.ru 12TVN416

Размещено на http://www.allbest.ru/

Разработка программного обеспечения расчета платы негативного воздействия на водные объекты

Расчет платы за негативное воздействие на окружающую среду представляет собой сложную задачу [1-3]. Наличие большого количества данных, необходимых для расчета, зачастую приводит к соответствующим ошибкам, которые в свою очередь или увеличивают платежи предприятий, или создают дополнительную работу по корректировки данных.

Существующее программное обеспечение в области расчета платы за негативное воздействие на окружающую среду [4-7] имеет ряд недостатков: значительная стоимость лицензии и технического обслуживания, ограниченность бесплатных версий, недостаток функционала или наоборот излишек функций, усложняющий интерфейс программного продукта.

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

Цель исследования является разработка программного обеспечение позволяющего производить расчет платы за сбросы загрязняющих веществ в водные объекты.

Правовая основа реализации программного обеспечения

На основании действующего законодательства Российской Федерации для субъектов предпринимательской деятельности, оказывающих негативное воздействие на окружающую среду, предусмотрена система платежей.

К субъектам предпринимательской деятельности в данном случае законодатель относит юридических лиц и индивидуальных предпринимателей, осуществляющих хозяйственную и иную деятельность непосредственно на территории РФ, а также континентальном шельфе и в исключительной экономической зоне РФ. При этом нормы законы исключают необходимость внесения платежей для объектов IV категории (объекты, оказывающие минимальное негативное воздействие на окружающую среду).

В общем виде структура платежей предприятия за негативное воздействие на окружающую среду в настоящее время представлена основными компонентами воздействия (рисунок 1).

пользователь программа нормативный

Рисунок 1. Структура формирование платежей за негативное воздействие на окружающую среду (составлено авторами)

Система платежей за негативное воздействие на водные объекты, как и любая другая практическая область экологического права строится на принципах, установленных рамочным законом № 7_ФЗ «Об охране окружающей среды» и ряде нормативно-правовых актов, поясняющих принципы правоприменения данных норм.

Соответствующим Постановлением Правительства РФ от 12.06.2003 № 344 «О нормативах платы за выбросы в атмосферный воздух загрязняющих веществ стационарными и передвижными источниками, сбросы загрязняющих веществ в поверхностные и подземные водные объекты, в том числе через централизованные системы водоотведения, размещение отходов производства и потребления» (далее - Постановление № 344) утверждены нормативы платы за воздействие на каждую компоненту окружающей среды отдельно взятым веществом. В настоящее время законодатель определяет плату за сбросы 142 загрязняющих веществ в водные объекты, 50 из которых относятся к пестицидам.

Также в Постановлении № 344 описывается процедура изменения платежей с учетом экологической ситуации (экологических факторов). В соответствии с требованиями для территорий, имеющих статус особо охраняемым природных территорий при расчетах добавляется коэффициент 2, такой же коэффициент используется в случае воздействия источника на территории лечебно-оздоровительных местностей и курортов, районов Крайнего Севера и приравненных к ним местностей, зонам экологического бедствия, а также к объекту особого природного значения - Байкальской природой территории.

Для объектов, не относящихся к вышеназванным территориям применяется принцип определения коэффициента по отнесению к соответствующему бассейну моря, бассейну реки и конкретному региону, на котором находится водный объект.

Перечень соответствующих коэффициентов представлен в приложении 2 Постановления № 344 «Коэффициенты, учитывающие экологические факторы (состояние водных объектов), по бассейнам морей и рек». Пример нахождения соответствующего коэффициента представлен на рисунке 2.

Рисунок 2. Выбор значения коэффициента, учитывающего состояние водных объектов, по бассейнам морей и рек (на примере бассейнов морей Северного Ледовитого и Тихого океанов)

При расчете платежей за негативное воздействие на водные объекты, важным является определение структуры платежей. В соответствии с правилами «установления для абонентов организаций, осуществляющих водоотведение, нормативов допустимых сбросов загрязняющих веществ, иных веществ и микроорганизмов в водные объекты через централизованные системы водоотведения и лимитов на сбросы загрязняющих веществ, иных веществ и микроорганизмов», установленными Постановлением Правительства РФ от 30.04.2013 № 393, обязанность утверждения нормативов и лимитов на сбросы закреплена за Федеральной службой по надзору в сфере природопользования. При этом данные правила указывают на необходимость расчетов таких нормативов природопользователем (абонентом) самостоятельно по утвержденной методике, при условии отнесения его к соответствующей категории абонентов закрепленной законодательно.

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

Так в настоящее время в зависимости от установленных нормативов и лимитов все платежи делятся на три категории: в пределах нормативов, в пределах лимитов, сверхлимитные платежи (рисунок 3).

Рисунок 3. Структура платежной базы предприятия в зависимости от количественного показателя воздействия

Расчет платежной базы проводится по ступенчатому принципу. В случае массы (объема) загрязняющих веществ M и, соответствующих, установленных нормативов X и лимитов Y расчет платежной базы по структуре компонентов (рисунок 3) будет проводиться по трем составляющим:

X - в пределах нормативов;

Y-X - в пределах установленных лимитов (временно согласованных показателей воздействия);

M-Y - сверх установленных лимитов.

В случае отсутствия временно согласованных показателей негативного воздействия из ступенчатой структуры выпадает второй элемент расчета, таким образом условно Y=X и соответственно вся масса загрязняющих веществ, превышающая норматив, считается как сверхлимитная.

Обоснование выбора языка программирования и среды реализации проекта

В качестве языка для разработки был выбран язык программирования Python [8]. Основными преимуществами языка Python, послужившими для выбора его в качестве языка реализации проекта стали:

1. Простота и скорость разработки. Разработка программных продуктов на языке Python в случае необходимости создание небольшой программы с минимальным графическим интерфейсом требует меньше временных ресурсов в сравнении с такими языками как С, С++, С#, Java.

2. Открытость. Python является открытым проектом и разрабатывается большим количеством программистов. Интерпретатор языка распространяются бесплатно, также в свободном доступе доступно значительное количество кодов программ, написанных без использования специализированных технологий.

3. Кроссплатформенность. Программы, написанные на языке Python, могут быть «собраны» под большинство современных операционных систем. Так без особых проблем получается реализовать в рамках Windows, OS X и Linux одни и те же программные продукты, написанные на Python.

4. Значительное количество открытых библиотек и модулей. В настоящее время в свободном доступе находится значительное количество сторонних библиотек для работы с файлами, базами данных и т. д.

В качестве среды для разработки проекта был выбран Qt Designer. Qt Designer - инструмент для проектирования и создания графических пользовательских интерфейсов (GUI) из компонентов Qt. Принцип работы работы в среде реализуется по принципу «What you see is what you get», WYSIWYG, «что вы видите, то и получаете» (рисунок 4).

Рисунок 4. Интерфейс среды разработки Qt Designer

Виджеты и формы, созданные с помощью Qt Designer, интегрированы с управляющим кодом, использующий механизм сигналов и слотов Qt, который позволяет легко установить поведение к графическим элементам. Все свойства, установленные в Qt Designer можно изменить динамически внутри кода. Кроме того, такие возможности как продвижение (promotion) виджетов и пользовательские подключаемые модули позволяет использовать с Qt Designer собственные компоненты [9].

Есть два подхода, которые можно использовать при построении графического пользовательского интерфейса, используя виджеты Qt:

• создать, настроить виджеты и разместить их на форме в соответствующих компоновках с помощью программного кода;

• воспользоваться визуальным редактором форм Qt Designer, который создаст файл формы (он будет описывать ее внешний вид, размещение, размеры, настройки, компонование и т. д.). В дальнейшем из файла формы на этапе компиляции будет создан файл с кодом программы, будет программно создавать этот интерфейс и предоставлять программисту доступ к элементам на форме.

Файлы формы имеют расширение.ui. Qt Designer позволяет редактировать файлы форм, содержащих настройки вида виджетов. Данную среду можно использовать как отдельную программу или воспользоваться интеграцией с оболочкой Qt Creator - редактором форм.

Алгоритм и программная реализация проекта

Исходя из имеющихся недостатков специализированных программ расчета платы за негативное воздействие были разработаны основные принципы построения программы, исключающие недостатки, существующих программ:

1. Программа должна базироваться на существующих нормативно-правовых актах в области оценки платы за негативное воздействие на окружающую среду.

2. Программа должна содержать базу данных о нормативах платежей в пределах установленных нормативах и лимитов.

3. Принцип работы с программой конечного пользователя должен быть основан на заранее установленном алгоритме. У пользователя отсутствует выбор в порядке заполнения форм, переход к последующей форме возможен лишь при корректном заполнение предыдущей.

Алгоритм реализации программы включает три основных этапа:

1 Построение Формы 1, для сбора информации об объекте природопользования.

2. Построение Формы 2, для указания данных о загрязняющих веществах.

3. Расчет платы с последующем формированием файла MS Excel.

Формирование первого окна осуществляется с помощью класса MainWindow.

Данный класс включает в себя набор из 11 методов:

1. MainWindow.__init__(self)

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

2. MainWindow.loadConstants(self)

Метод, осуществляющий загрузку констант из внешних файлов:

…/resource/substance.txt - данные по ПДВ и ВСВ

…/resource/region.txt - данные по регионам

…/resource/payyear.txt - коэффициенты инфляции

3. MainWindow.showTipWarning (self, msg, widget, anchor = None)

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

Здесь msg - текст сообщения, widget - ссылка на виджет.

4. MainWindow.showError (self, msg):

Служебный метод, отображающий сообщение об ошибке.

5. MainWindow.getSelectedParameter (self, treeWidget):

Метод, возвращающий значение, выбранное в списке веществ в главном окне программы.

6. MainWindow.getAllParametersData (self, treeWidget):

Метод, возвращающий все значения в списке веществ в главном окне программы.

7. MainWindow.addSubstance(self):

MainWindow.deleteSubstance(self):

MainWindow.addAllSubstance(self):

MainWindow.deleteAllSubstance(self):

MainWindow.moveSubstanceUp(self):

MainWindow.moveSubstanceDown(self):

MainWindow.filterSubstance(self):

Манипулации с веществами: перенос в выбранные, удаление из выбранных, фильтрация, и т. д.

8. MainWindow.exampleForm(self):

Заполнение формы главного окна тестовыми данными.

9. MainWindow.resetForm(self):

Сброс формы.

10. MainWindow.validate(self):

Валидация формы. В случае если одно из полей формы не заполнено, вызывается метод showTipWarning по данному полю и отображается сообщение о необходимости заполнения.

11. MainWindow.calculate(self):

Основной метод, выполняющий вычисления и сохранение в файл Excel. Для получения данных о нормативах сбросов, метод вызывает экземпляр класса SubstanceForm.

Второй класс предназначен для действий с набором веществ и заполнения формы 2

Класс SubstanceForm имеет следующий набор методов:

1. SubstanceForm.__init__(self)

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

2. Методы showTipWarning (self, msg, widget, anchor = None) и showWarning (self, msg) аналогичны методам класса MainWindow, но и отвечают за вывод предупреждающих сообщений.

3. SubstanceForm.initTable(self) и SubstanceForm.fillTable(self)

Инициализация и заполнение таблицы для ввода ПДС, ВСС и фактических сбросов.

4. SubstanceForm.getTableData(self)

Считывает заполненные данные из таблицы и возвращает их в виде двумерного массива типа list. [[], [], []]

5. SubstanceForm.validate(self):

Валидация данных в таблице. В случае если одна из ячеек содержит нечисловое значение, вызывается метод showWarning по данной ячейке и отображается предупреждение. 6. Методы accept и go являются служебными методами класса QDialog, и их переопределение, в данном случае позволяет произвести ввод данных от пользователя в модальном режиме. Т.е. окно будет блокировать остальное приложение до тех пор, пока не будет закончен ввод данных и не будет нажата кнопка сохранения.

Для выполнения манипуляций с файлами Excel (чтение, запись, сохранение) была выбрана библиотека openpyxl, которая позволяет читать, писать и редактировать в режиме чтение / запись файлы формата *.xlsx (Excel 2010) [10].

Основные функции для работы с файлами:

1. wb = load_workbook ('документ.xlsx')

Загрузка книги документ.xlsx.

2. ws = wb.get_sheet_by_name («Лист1»)

Получение листа книги по имени.

3. c = ws['A4']

Чтение данных из ячейки в переменную с.

4. ws['A4'] = «Тестовая строка»

Запись данных в ячейку.

5. wb.save()

Сохранение книги.

Процесс компиляция программного обеспечения Итоговый код программы содержится в следующих файлах:

1. main.py - главный файл программы, содержащий классы MainWindow и SubstanceForm, а также служебный код.

2. interface.ui - файл интерфейса главного окна программы для QtDesigner;

3. interface.py - скомпилированный файл главного окна;

4. substform.ui - файл интерфейса формы ПДC, ВСC для QtDesigner;

5. substform.py - скомпилированный файл интерфейса формы ПДC, ВСC;

6. template.xlsx - шаблон эксель-формы;

7. icons.qrc - XML_файл ресурсов (иконок);

8. icons.py - скомпилированный файл ресурсов.

Помимо прочего для выбора условий сбросов загрязняющих веществ, а также значение платежей в пределах установленных нормативов и лимитов содержатся в папке Source три основных файла:

1. substance.txt - файл с данными по нормативам ПДС и ВСС для заданных веществ;

2. region.txt - данные по бассейнам рек и океанов;

3. payyear.txt - данные по коэффициентам инфляции за 2016, 2017 годы.

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

Особенностью добавления новых веществ в перечень является необходимость соблюдения пунктуации в следующем виде:

Наименование вещества | норма ПДС | норма ВСС.

Изменение знаков разделителей в тексте файла приведет к некорректности чтения значений.

Использование и распространение программы в виде разрозненных файлов не очень удобно по следующим причинам: требуется установка интерпретатора Python, сторонних библиотек (PyQt, openpyxl), настройка среды интерпретатора. Поэтому, удобнее скомпилировать программу в один или несколько исполняемых файлов, подключив интерпретатор как динамическую библиотеку. Для этих целей служит пакет py2exe. Установка: cmd - > pip install py2exe.

Для компиляции программы выполнялись следующие действия:

1. создание в директории с программой файла setup.py

2. В файле setup.py указывались основные директивы для компилятора. Стоит остановиться подробнее на одной из них: «py2exe»: {«includes»: [«sip», «sys», «os», «openpyxl», «PyQt4»]}

Здесь перечисляются библиотеки, которые должны быть импортированы в дистрибутив. Так, необходимо импортировать стандартные библиотеки os, sys для работы с операционной системой, а также библиотеку sip для работы с C/C++ классами. Директива includes также должна включать библиотеки PyQt4 и openpyxl.

3. Компиляция выполняется следующей командой: cmd -> setup.py py2exe

По окончании компиляции в директории dist появляется исполняемый файл программы, а также ряд вспомогательных файлов. Нужно отметить, что директорию resources а также файл template.xlsx нужно скопировать вручную, т. к. компилятор их не использует.

Для создания инсталлятора использовалась программа WinRar. По сути инсталлятором в данном случае мы называем SFX архив с опциями создания ярлыка и записи с правами администратора. Для создания инсталлятора нужно выполнить следующие шаги:

1. Выбрать все файлы и директории программы и в выпадающем меню выбрать add to archive.

2. В появившемся окне выбрать SFX архив.

3. Далее перейти на вкладку Advanced и нажать SFX options.

4. В появившемся окне вводим следующие данные:

Вкладка General, вводим путь для распаковки, в данном случае это C:\Program Files\ONVreport.

5. На вкладке Advanced вводим следующую команду

D, ONV.exe, «ONVreport program», Расчет по объекту негативного воздействия, icon.ico.

В данном случае мы помещаем ярлык на рабочий стол с иконкой icon.ico, который ссылается на файл ONVreport.exe.

Проанализировав нормативно-правовую базу исчисления вреда за негативное воздействие на водные объекты были выделены ключевые документы, используемые в расчетах и в формирование отчетности, к ним относятся: Постановления Правительства РФ № 344 и № 469, а также Приказ Федеральной службы по экологическому, технологическому и атомному надзору № 204. Нормы данных документов использовались для составления принципа расчета программным продуктом.

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

Итоговый программный продукт разработан на языке программирования Python с использованием среды для разработки Qt Designer, выбор данных инструментов обоснован решаемыми задачами. Полученный программный продукт лишен недостатков бесплатных аналогов, при этом дает идентичный результат с точки зрения построения итоговых файлов и может быть использован для сдачи отчетности предприятия в соответствующие органы Федерального надзора в сфере природопользования.

Литература

пользователь программа нормативный

1. Суслова, Ю.А. Экологические платежи / Ю.А. Суслова // Бухгалтерский учет № 1. - М.: Редакция журнала «Бухгалтерский учет», 2012. - № 1. - С. 107-112. 2. Гладун, И.В. Расчет платы за негативное воздействие на окружающую среду: учебное пособие / И.В. Гладун, Л.П. Майорова, О.А. Мищенко. - Хабаровск: Амурпринт, 2011. - 117 с.

3. Кечкина, О.В. Расчет платы за негативное воздействие на окружающую среду / О.В. Кечкина // Сборник статей Международной научно-практической конференции «Наука и современность». - Уфа: Омега Сайнс, 2015. - С. 55 - 57.

4. Программа ЭКО-эксперт. Плата за загрязнение окружающей среды и экологическая отчетность [Электронный ресурс] URL: http://www.airsoftbit.ru/programecologs/147_eco-expert-vozmojnosti (дата обращения: 08.06.2016).

5. Расчет платы за негативное воздействие на окружающую среду. Заполнение и отправка через 1С-Отчетность [Электронный ресурс] URL: http://buh.ru/articles/documents/35487/ (дата обращения: 08.06.2016).

6. Долматов, О.В. Электронное обращение природопользователей с Росприроднадзором / О.В. Долматов // Справочник эколога [Электронный ресурс] URL: http://www.profiz.ru/eco/1_2013/modul/ (дата обращения: 08.06.2016).

7. Модуль природопользователя [Электронный ресурс] URL:http://rpn.gov.ru/node/5523 (дата обращения: 08.06.2016).

8. TIOBE Software Index. «TIOBE Programming Community Index Python». Retrieved 10 September 2015.

9. Qt Designer Manual | Qt 4.8 [Электронный ресурс]. URL: http://doc.qt.io/qt4.8/designer-manual.html (дата обращения: 08.06.2016).

10. Openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files [Электронный ресурс]. URL: http://openpyxl.readthedocs.io/en/default/ (дата обращения: 08.06.2016).

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.