Автоматизация формирования, хранения и обработки отчетности

Автор работы: Пользователь скрыл имя, 12 Февраля 2013 в 18:38, дипломная работа

Описание работы

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

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

Содержание работы

Введение 2
1. Теоретические аспекты разработки модуля «Амортизация основных средств и нематериальных активов» для конфигурации «1С: Бухгалтерский учёт, редакция 4.5» 5
1.1 Технологические средства конфигурирования подсистемы «1С: Предприятие» и особенности встроенного языка программирования 5
1.2 Метаданные подсистемы 9
1.3 Описание понятий (объектов) «1С: Бухгалтерия 7.7» 13
1.4 Компонента «Бухгалтерский учет» 19
1.5 Основные правила учёта основных средств и нематериальных активов и порядок расчёта сумм амортизации 22
2. Технико-экономическое обоснование разработки 41
2.1 Предварительная экономическая оценка 41
2.2 Обоснование критериев сравнения разрабатываемой программы с аналогом 42
2.3 Определение сметы затрат на разработку программного продукта (ПП) 43
2.4 Расчет и сопоставление эксплуатационных расходов 46
2.5 Расчет годового экономического эффекта от освоения нового программного продукта 47
2.6 Сопоставление технико-экономических характеристик разработки с аналогом 47
3. Технология разработки модуля «Амортизация основных средств и нематериальных активов» 49
3.1 Варианты реализации модуля «Амортизация ОС и НМА» 49
3.2 Анализ входной и выходной информации 51
3.3 Особенности реализация модуля «Амортизация основных средств и нематериальных активов» 55
3.4 Реализация хранения учётных записей, проверки подлинности и защиты от сбоев 67
3.5 Результаты тестирования модуля «Амортизация ОС и НМА» 73
Заключение 77
Список литературы 78

Файлы: 1 файл

0037528_2E417_diplomnyy_proekt_razrabotka_modulya_amortizaciya_osnovnyh_sr.doc

— 1.15 Мб (Скачать файл)

 

                            

 

Рис 3.5 Форма диалога  сведения об основном средстве

 

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

 

                

 

Рис 3.6 Значения периодических  реквизитов

Для формирования отчётности предусмотрена соответствующая  форма. Окно диалога содержит элементы выбора периода, за который будет формироваться отчёт, а также кнопку «Сформировать». (см. рисунок 3.7)

 

                                    

 

Рис. 3.7 Диалог отчёта

 

Для удобства пользователя период может быть выбран за квартал, месяц, день или в интервале необходимых дат. (см. рисунок 3.8)

 

                                       

 

Рис. 3.8 Выбор периода

 

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

 

                                      

 

Рис 3.9 Идентификатор

 

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

Таблица в системе  представляет собой совокупность ячеек  прямоугольной формы, организованных в строки и столбцы. Каждый столбец таблицы и каждая строка имеет свой уникальный номер. Строки и столбцы нумеруются независимо, нумерация начинается с 1 и ведется от левого верхнего угла таблицы. Таким образом, любая ячейка таблицы обозначена парой чисел — номером строки и номером столбца, на пересечении которых она находится. Отдельным ячейкам и их диапазонам (компактным группам прямоугольной формы) присвоены собственные имена для удобства обращения к ним, также присвоены имена секциям. Заполнение таблицы выходными данными описывается в модуле. Приведём фрагмент модуля элемента отчёта. (см. листинг 3.1)

 

Листинг 3.1

Фрагмент модуля элемента отчёта

 

НомерТаблицы = "Таблица  № 2-1"; //переменная номер таблицы

Таб=СоздатьОбъект("Таблица"); // создание объекта Таб типа «Таблица»

Таб.ИсходнаяТаблица("Таблица_21"); // ассоциирование объекта с формой

Таб.ТолькоПросмотр(1); // запрет на изменение

Таб.Опции(0, 0, 5, 3); // параметры отображения

Таб.ВывестиСекцию("Заголовок"); // вывод секции «Заголовок»

ОС.ВыбратьСтроки();      // открыть таблицу значений ОС для выборки //элементов    

Пока ОС.ПолучитьСтроку()=1 Цикл // цикл по элементам выборки

// далее определение значений переменных таблицы

      МесяцНачалаИспользования=ПериодСтр(НачМесяца(ОС.ДатаВводаВЭ      ксплуатацию),КонМесяца(ОС.ДатаВводаВЭксплуатацию));

     СрокПолезногоИспользования=ОС.СрокПолезногоИспользования;

     МесячнаяНорма=глФорматСум(ОС.МесячАмортвПроцентах,0);

     МесячнаяАмортизация=глФорматСум(ОС.МесАмортизация,0);

………………………………………………….

Таб.ВывестиСекцию("Строка"); // вывод секции «Строка» с переменными

                    ………………………………………………….

Таб.ВывестиСекцию("Год");  // вывод секции  «Год» с переменными

Таб.Показать("Книга  учета. " + НомерТаблицы);  // отображение таблицы

 

 

Визуальная форма является унифицированной и разработана встроенным в прикладную подсистему редактором таблиц. После нажатия на кнопку «Сформировать» Таблица будет заполнена выходными данными, полученными в ходе обработки, после чего её можно просмотреть, распечатать, сохранить в формате mxl (Таблицы), xls (Таблицы Excel), htm, html (HTML документ), txt (Текстовый документ). (см. таблицу 3.10)

 

 

Рис. 3.10 Редактор таблиц

 

Стоит отметить, таблица  в данном проекте реализована  не как «статический» объект, а  «динамический» при помощи «Расшифровки».

В поле «Расшифровка»  указано выражение на встроенном языке системы 1С:Предприятие. При  формировании табличного документа  это выражение будет вычислено  и его результат будет записан  в поле «Расшифровка» ячейки готового табличного документа. В отличие от текста, помещаемого в саму ячейку, значение выражения не преобразуется к типу «строка». Приведём фрагмент модуля. (см. листинг 3.2)

 

Листинг 3.2

 «Расшифровка» ОСВ

 

РасшОСВ = СоздатьОбъект("СписокЗначений");  

РасшОСВ.Установить("Отчет", "ОборотноСальдоваяВедомостьПоСчету");

                    ………………………………………………….

РасшифровкаОС=ОС.ОСНазвание;

РасшОСВ.Установить("Дата1", НачДата);   //входные параметры

РасшОСВ.Установить("Дата2", КонДата);

РасшОСВ.Установить("Счет", С021);

РасшОСВ.Установить("ВыбВидСубконто1", ВидыСубконто.ОсновныеСредства);

РасшОСВ.Установить("Субконто1", ОС.ОСНазвание);

Таким образом, осуществляется связь с оборотно-сальдовой ведомостью, которая в качестве контекста  получает входные параметры списка значений «РасшОСВ» и формирует выходные данные, (сальдо, обороты счёта) представленные отчётом.

Когда готовый табличный  документ открыт в режиме «Только  просмотр», при помещении указателя  мыши над ячейкой, содержащей заполненное  поле «Расшифровка», указатель меняется. Это значит, что возможна детализация (расшифровка) данных таблицы. Теперь, если дважды щелкнуть левой кнопкой мыши на этой ячейке (или сделать ее активной и нажать клавишу Enter), значение поля будет выдано на экран:       

 значения типа «строка», «число», «дата» и «перечисление» будут выданы для просмотра;       

 если значение имеет  тип «документ», соответствующий  документ будет открыт для  просмотра и редактирования;       

 если значение является  элементом справочника, этот элемент  будет открыт для просмотра и редактирования в диалоге. Если при настройке свойств справочника было задано редактирование в списке, будет открыта таблица справочника, а указатель в таблице будет установлен на нужный элемент справочника. (см. рисунок 3.11)

 

 

Рис. 3.11 Расшифровка сведений об основном средстве

 

В процессе обработки  данных обрабатываются данные справочника  «Основные средства» и «Нематериальные  активы» по каждому реквизиту  справочника. Выборка данных производится с помощью языка запросов и осуществляется из соответствующих справочников. Все условия выборки определены законодательной базой.

 Использование запроса обусловлено тем, что скорость выборки данных во много раз превышает скорость при использовании других средств выборки, так как запрос, написанный на языке подсистемы интерпретируется последней в SQL запрос  для произведения выборки из базы данных SQL Server-а. Приведём фрагмент запроса. (см. листинг 3.3)

Листинг 3.3 

Объект запрос

 

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(Сформировать)  

|Период с НачДата   по КонДата;

 Справочник.ОсновныеСредства.ДатаВводаВЭксплуатацию;

|ДатаПриобретения = Справочник.ОсновныеСредства.ДатаПриобретения;

|ПричинаВыбытия = Справочник.ОсновныеСредства.ПричинаВыбытия;

|ДатаВыбытия = Справочник.ОсновныеСредства.ДатаВыбытия;

                    ………………………………………………….  

|Условие (ПодлежитАмортизации  = 1); 

|Условие (Собственное  = 1);

|Условие (ПустоеЗначение(ДатаВводаВЭксплуатацию) = 0);   

|Условие (ДатаВводаВЭксплуатацию < КонДата);  

|Условие (СрокПолезногоИспользования>=12);

|Условие(СпособПоступления<>Перечисление.СпособыПоступленияОС.БезвозмездноеПоступление);   

|Условие ((НачислятьАмортизацию = 1) или (ДатаВыбытия > НачДата)  или (Пустоезначение(ДатаВыбытия)=1));

|Группировка ОСНазвание  Без Групп;

|"//}}ЗАПРОС;

// Если ошибка в  запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли;

 

В программном модуле так же использован механизм получения  бухгалтерских итогов. Для получения  большого количества итогов в различных разрезах объект «Бухгалтерские Итоги» переключается в режим работы с запросом. Для переключения в этот режим вызывается метод ВыполнитьЗапрос в параметрах которого, а также дополнительными методами устанавливается состав итогов, которые будут получены запросом. Выполнение данного метода осуществляет выборку данных и их предварительную обработку.

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

Запрос используется для получения кредитовых оборотов по бухгалтерским счетам: 02.1 (Амортизация основных средств), 04 (Нематериальные активы), 05 (Амортизация нематериальных активов) , а также для передачи в качестве параметра в функцию расчёта количества месяцев использования актива. Приведём фрагмент запроса. (см. листинг 3.4)

 

Листинг 3.4 

Бухгалтерские итоги

С021=СчетПоКоду("02.1");

БухИт = СоздатьОбъект("БухгалтерскиеИтоги");

БухИт.ИспользоватьСубконто(ВидыСубконто.ОсновныеСредства,ОСНазвание); 

БухИт.ВыполнитьЗапрос(ДатаН,ДатаК,С021 ,,,,,); 

БухИт.ВыбратьСубконто(1);

Пока БухИт.ПолучитьСубконто(1) = 1 Цикл

   Возврат БухИт.КО(С021); 

КонецЦикла; 

 

Функция расчёта месяцев  использования актива в налоговом периоде также использует механизм запроса бухгалтерских итогов для расчёта кредитового оборота по счёту 02.1. Количество месяцев определяется отношением кредитового оборота счёта 02.1 за налоговый период к сумме амортизации в месяц. Обороты определяются по субконто, переданного в качестве параметра ОСНазвание. (см. листинг 3.5)

 

Листинг 3.5  Количество месяцев  использования актива

 

Функция КолМесНалПер(ОСНазвание,САВМ)

Колво=0;Сум=0;  

С021=СчетПоКоду("02.1");

БухИт = СоздатьОбъект("БухгалтерскиеИтоги");

БухИт.ИспользоватьСубконто(ВидыСубконто.ОсновныеСредства,ОСНазвание);

БухИт.ВыполнитьЗапрос(НачДата,КонДата,С021 ,,,,,); 

БухИт.ВыбратьСубконто(1);

Пока БухИт.ПолучитьСубконто(1) = 1 Цикл 

сум=БухИт.КО(С021); 

КонецЦикла;  

Если САВМ>0 Тогда 

Колво=цел(Окр(Сум/окр(САВМ,2,1),1));

Иначе Колво=0;  

КонецЕсли; 

Возврат Колво;

КонецФункции

Для более подробной аналитики используется оборотно-сальдовая ведомость по счёту. Оборотно-сальдовая ведомость, а точнее, её электронный вариант представляет собой динамический отчёт. Здесь отражены: сальдо на начало периода, обороты за период, сальдо на конец периода. Видами субконто выступают: основные средства и нематериальные активы. Формируется ведомость за определённый период. Её можно использовать для просмотра суммы амортизации, включаемой в расходы налогового периода, суммы амортизации за предыдущий период, а также для сверки данных. Оборотно-сальдовая ведомость может быть вызвана как из отчёта, так и из главного меню подсистемы. Вызов из отчёта может быть во многом полезен бухгалтеру. Этот вариант предусмотрен на тот случай, когда возникают сомнения по поводу правильного заполнения отчёта по амортизации основных средств и нематериальных активов. (см. рисунок 3.12)

Информация о работе Автоматизация формирования, хранения и обработки отчетности