Смекни!
smekni.com

Разработка модуля Амортизация основных средств и нематериальных активов (стр. 14 из 18)

Рис 3.4 Справочник основные средства

Первоначально реквизиты справочника представлены списком. Для редактирования и внесения изменений предусмотрена форма диалога. Здесь предусмотрены следующие вкладки: общие сведения, бухгалтерский учёт, налоговый учёт, модернизация. Вкладка общие сведения предназначена для заполнения таких сведений, как наименование, инвентарный номер, даты приобретения, способ поступления, дата ввода в эксплуатацию, определения будет ли начисляться амортизация и других общих сведений о внеоборотном активе. Вкладка бухгалтерский учёт предусматривает ввод первоначальной стоимости, срока полезного использования, выбора способа начисления амортизации, счёта отнесения затрат, выбираемого из основного плана счетов, выбора подразделения к которому будет относиться объект внеоборотных активов. Вкладка налоговый учёт предусматривает задание амортизационной группы, а также внесения идентичных сведений, но применительно к налоговому учёту. Вкладка модернизация содержит остаточную стоимость объекта внеоборотных активов после модернизации. (см. рисунок 3.5)

Рис 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

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

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

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

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

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

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

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

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

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