Реферат Выгрузка форм налоговой отчетности в формате XML
Работа добавлена на сайт bukvasha.net: 2015-10-28Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
СОДЕРЖАНИЕ
| Введение | 9 |
1 | Общее описание | 11 |
1.1 | Цель | 11 |
1.2 | Область применения | 12 |
1.3 | Определения, термины и сокращения | 41 |
2 | Требования к внешнему интерфейсу | 43 |
2.1 | Пользовательские интерфейсы | 43 |
2.2 | Аппаратные интерфейсы | 53 |
2.3 | Программные интерфейсы | 54 |
2.4 | Детальные требования | 58 |
3 | Специальная часть | 60 |
3.1 | Моделирование предметной области | 60 |
3.2 | Спецификация вариантов использования | 60 |
3.3 | Моделирование динамических аспектов системы | 65 |
3.4 | Статический вид системы | 66 |
3.5 | Проектирование пользовательского интерфейса | 68 |
3.6 | Тестирование | 70 |
4 | Экономическая часть | 74 |
4.1 | Технико–экономическое обоснование создания ПО | 74 |
4.2 | Расчет сметной стоимости разработки программных средств | 78 |
5 | Охрана труда | 90 |
5.1 | Анализ опасных и вредных производственных факторов в ВЦ | 90 |
5.2 | Защитные мероприятия | 91 |
| Заключение | 100 |
| Список использованной литературы | 101 |
| Приложение А. Техническое задание | 103 |
| Приложение Б. Текст программы | 107 |
|
ВВЕДЕНИЕ
Наверное, уже трудно найти бухгалтера в странах СНГ, который бы не слышал о продукте фирмы 1С предназначенным изначально для автоматизации бухгалтерского учета. Мнения об этом продукте складывались у каждого как от своих впечатлений при самостоятельной работы с программным продуктом, так и от слухов и рассказов знакомых. Как я заметил, мнения разделяются на мнения людей занимающихся разработкой внедрением решений на платформе 1С:Предприятие и мнения людей занимающихся ведением бухгалтерского учета в 1С:Предприятие. Это две группы людей, которые в общем случае имеют противоречивые суждения о программе.
Налоги – один из главных инструментов государства в осуществлении экономической и социальной политики. Решение этих задач прямо зависит от объемов поступлений налогов.
Анализ поступлений налогов, тенденций развития налогооблагаемой базы и составляющих ее элементов и на этой основе прогнозирование объемов поступлений платежей в бюджет на определенный период являются важнейшей задачей экономических ведомств, финансовых органов на всех уровнях управления.
«1С:Предприятие» – это программный продукт компании 1С, предназначенный для быстрой разработки прикладных решений. Технологическая платформа «1С:Предприятие» не является программным продуктом для использования конечными пользователями, которые обычно работают с одним из многих прикладных решений (конфигураций), использующих единую технологическую платформу. Платформа и прикладные решения, разработанные на её основе, образуют систему программ «1С:Предприятие», которая предназначена для автоматизации различных видов деятельности, включая решение задач автоматизации учёта и управления на предприятии (КИС) [1].
Средства быстрой разработки представлены визуальным «конфигурированием», которое позволяет разработчику сосредоточиться на создании бизнес–логики приложения и не заниматься технологическими подробностями, такими как организация взаимодействия с базой данных, обработка транзакционных блокировок, нюансы программирования экранных форм и т. п. Конфигурирование частично заменяет кодирование и, таким образом, снижает требования к квалификации разработчиков 1С. Тем не менее имеет встроенный язык для реализации произвольной бизнес–логики.
Встроенный язык программирования 1С:Предприятие – язык программирования, который используется в семействе программ «1С:Предприятие». Данный язык является предварительно компилируемым предметно–ориентированным языком высокого уровня [2].
Средой исполнения языка является программная платформа «1С:Предприятие». Визуальная среда разработки («Конфигуратор») является неотъемлемой частью пакета программ «1С:Предприятие».
Диалекты языка для платформ 1С 6; 7 версий (7.0, 7.5, 7.7) совместимы «снизу вверх» с незначительными исключениями; языки для платформ 1С:6 и 1С:7х и 1С:8.0 несовместимы. Встроенный язык 1С:8 наиболее подобен по своему синтаксису языку Visual Basic.
Платформой предоставляется фиксированный набор базовых классов, ориентированных на решение типовых задач прикладной области:
а) константа;
б) справочник;
в) документ;
г) журнал документов;
д) перечисление;
е) отчет;
ж) обработка;
и) план счетов и др.
На основании базовых классов средствами визуального конфигурирования можно создавать любое количество порождённых классов (возможность определить новый класс программно – отсутствует). Допускается только одна явная ступень наследования классов. Как правило, объекты порождённых классов представляют собой записи (или некоторые наборы записей) в базе данных. Такие классы образуют «Дерево метаданных». В терминах встроенного языка программирования 1С такие классы называются объектами метаданных.
Основными видами объектов метаданных являются: «Справочники», «Документы», «Отчеты», «Обработки», «Планы видов характеристик», «Планы счетов», «Планы видов расчета», «Регистры сведений», «Регистры накопления», «Регистры расчета», «Бизнес–процессы», «Задачи».
Поддерживаются русский и английский синтаксис команд.
Проекты на встроенном языке 1С:Предприятия называются конфигурациями. Распространение (продажа) и внедрение таких конфигураций – это основная коммерческая деятельность фирм–партнёров 1С.
1 Общее описание
1.1 Цель
Целью разработки является создание приложения, которое бы автоматизировало, сокращало время и не допускало бы ошибок, связанных с человеческим фактором при сборе сведений и заполнении форм налоговой отчетности из программы 1С:Предприятие в программу налоговой отчетности Исид.
Версия 7.7 состоит из программной оболочки или движка, который работает с одной или несколькими базами данных, определяемых конфигурацией. К программной оболочке подключаются компоненты, реализующие различные механизмы учёта и администрирования. Стандартные компоненты – «Бухгалтерский учёт», «Оперативный учёт», «Расчёт», «Управление распределёнными ИБ» [3].
Может работать в нескольких режимах:
а) «1С:Предприятие» – основной режим работы пользователя, ввод данных, получение отчётов;
б) «Конфигуратор» – режим администрирования и изменения конфигурации;
в) «Отладчик» – режим отладки и замера производительности конфигурации;
г) «Монитор» – режим просмотра активных пользователей и журнала регистрации событий.
Конфигурация содержит параметры базы данных и пользовательского интерфейса. Файл конфигурации 1Cv7.MD расположен в каталоге базы данных. Конфигурация редактируется в режиме «Конфигуратора», предоставляющего удобный визуальный инструмент для создания и редактирования таблиц данных и графических форм, а также написания алгоритмов на встроенном языке программирования. Порядок конфигурирования и встроенный язык описан в прилагаемой документации. Кроме того, в конфигураторе есть Синтакс–Помощник по встроенному языку программирования.
Существует несколько дополнительных компонент, расширяющих основные классы, их свободное добавление и изменение; фирмой– разработчиком они не рекомендованы к использованию. Это означает, что фирма 1С и её франчайзи отказываются от какой либо технической поддержки конфигураций, использующих такие компоненты.
Так компонента 1С++ расширяет язык 1С средствами полноценного объектно–ориентированного программирования. Её использование значительно расширяет возможности конфигурирования 1С. Это свободный программный продукт, распространяемый под лицензией GPL.
Более того – существует полностью свободный проект
Язык платформы 2С проектировался с целью максимальной преемственности с существующими для 1С наработками, и является расширением базового языка 1С. Путём написания соответствующих базовых классов язык 2С может быть приближен как к 1С 7.7, так и к 1С 8.0, хотя 2С:Платформа и не может обеспечить 100 % автоматическую переносимость конфигураций из той или иной версии 1С:Предприятия.
Также имеются аналоги 1С:Предприятия. Под свободной лицензией GPL имеется очень близкая к
1.2 Область применения
Крупная строительная компания ведет строительство больших жилых комплексов. По специфике работы, в компании работают много иностранных специалистов(около 600 человек). На фирме ведется бухгалтерский учет в программе 1С:Предприятие и налоговый учет в программах Эфно, Исид, НДС. Бухгалтерский и налоговый учеты ведутся раздельно. Для налоговой отчетности по нерезидентам нужно заполнять форму налоговой отчетности 201.01. Для облегчения заполнения этой формы налоговой отчетности нужно организовать механизм получения, обработки данных из программы 1С:Предприятие и выгрузку и сохранение данных в формате документов программ налоговой отчетности. Конфигурация является типовой (Версия 7.7 релиз 257) и не должна быть изменена, для возможности дальнейшего обновления. Поэтому разработка должна быть внешней. Компания часто выдает авансы своим сотрудникам и считает подоходный налог по удельному весу, что также должно учитываться при выборке данных из системы и корректном заполнении формы. Для этого в программе будут созданы 2 забалансовых счета (НЕ1 и НЕ2): один для подсчета общего переходящего остатка подоходного налога, а второй для индивидуального по сотрудникам. Т.к. счета вводятся в программе, конфигурация остается неизменной и типовой. На оба счета будет формировать операция, которая в системе на заданный период будет всегда только одна. Система проводит проверку на лишние операции по периоду, за который они сформированы и удаляет их. Расчет по налоговой форме будет производиться последовательно, т.е. с начала года и до конца, поквартально. Для пользователя будет предусмотрен ввод следующего периода только если сформирована выгрузка за предыдущий (т.к. система будет ложить проводки на забалансовые счета руководствуясь остатками предыдущего и выбранного периода). Пользователь может в любой момент может выбрать более ранний период.
1.2.1 Учет поступлений налогов
Бесперебойное финансирование предусмотренных бюджетами мероприятий требует систематического пополнения финансовых ресурсов на федеральном и местных уровнях. Это достигается в основном за счет уплаты юридическими и физическими лицами налогов и других обязательных платежей. В соответствии с действующим налоговым законодательством и другими нормативными актами плательщики обязаны уплачивать указанные платежи в установленных размерах и в определенные сроки.
В практике работы юридические и физические лица допускают несвоевременную уплату налогов и других обязательных платежей в связи с рядом объективных и субъективных причин, в частности из–за отсутствия необходимых денежных средств на своих счетах в банках и иных финансово–кредитных учреждениях, несвоевременной сдачи в банки документов на уплату платежей в бюджет, уклонения от их уплаты и т. п.
На налоговые органы возложен контроль за обеспечением полноты и своевременности уплаты юридическими и физическими лицами причитающихся налогов и других обязательных платежей. Налоговым органам предоставлено право взыскивать с плательщиков не уплаченные в срок платежи в бесспорном порядке с одновременным предъявлением им финансовых санкций.
Контроль за полнотой и своевременностью уплаты исчисленных налогов и других обязательных платежей осуществляется как в ходе проверок непосредственно на предприятиях, так и на основе поступающих в налоговые органы банковских документов (копий платежных поручений, подтверждающих уплату налогов, выписок банков и т. п.).
Проверки непосредственно на предприятиях, как правило, высокоэффективны, способствуют повышению уровня организации бухгалтерского учета и платежной дисциплины плательщиков. Вместе с тем такой контроль не может быть всеобъемлющим, поскольку сравнительно небольшой аппарат работников налоговых органов не в состоянии одновременно проверить значительное число предприятий, состоящих на учете в качестве налогоплательщиков.
В этих условиях всеобъемлющий контроль за предприятиями достигается посредством ведения в налоговых органах оперативно–бухгалтерского учета начислений и поступлений каждого вида налогов и других обязательных платежей и по каждому плетельщику [4].
Оперативно–бухгалтерский учет представляет собой стройную систему учета и отчетности. Он охватывает весь комплекс вопросов, связанных с начислением налогов, других платежей и финансовых санкций, их фактическим поступлением в бюджеты всех уровней, возвратом или зачетом переплат в счет уплаты очередных платежей, составлением установленной отчетности, аналитических записок и т. п.
Порядок ведения оперативно–бухгалтерского учета определяется Государственной налоговой службой РК. Его ведут налоговые инспекции, у которых непосредственно состоят на учете в качестве налогоплательщиков юридические и физические лица. Вышестоящие налоговые органы ведут учет поступлений платежей в целом по регионам, стране.
Учет начисленных и фактически поступивших сумм налогов и финансовых санкций ведется в соответствии с классификацией доходов и расходов бюджетов, утверждаемой Министерством финансов РК. Для четкого разграничения поступлений доходов в классификации определены конкретные разделы, на которые соответственно зачисляются отдельные виды налогов и платежей, платежи, объединенные в одну группу, или платежи от отдельных групп плательщиков. В то же время многие разделы бюджетной классификации подразделяются на параграфы, соответствующие отдельным налогам, установленным на конкретные виды продукции (товаров), категориям плательщиков или видам налогов и других обязательных платежей [5].
Юридические лица при исчислении и уплате налогов и других обязательных платежей руководствуются указанными выше законодательными и нормативными актами. В установленные сроки они представляют налоговым органам бухгалтерские отчеты и налоговые расчеты, в которых исчислены суммы платежей, подлежащие уплате в бюджет за определенный отчетный период.
Налоговым органам представляются также справки о предполагаемых суммах прибыли и авансовых взносов по налогу на прибыль, подлежащих уплате в бюджет в определенные законодательством сроки.
Для обеспечения правильного зачисления налогов и других платежей налоговые органы сообщают кредитным учреждениям список плательщиков, перечень уплачиваемых ими платежей с указанием, в какой бюджет и на какие подразделения бюджетной классификации они должны зачисляться.
Подоходный налог с доходов граждан, выплачиваемых им по месту основной работы, удерживается предприятиями в определенных законодательством размерах. В сроки, установленные для выплаты заработной платы, каждое предприятие сдает в банк платежное поручение на перечисление удержанного с граждан подоходного налога в бюджет. Если законодательством будет установлено, что перечисление части налога должно производиться в федеральный бюджет, то предприятие сдает в банк два платежных поручения – одно для уплаты доли в установленном размере в федеральный бюджет, другое – для уплаты остальной суммы в местный бюджет. В платежных поручениях указываются наименование предприятия, сумма подоходного налога, раздел и параграф бюджетной классификации, в какой бюджет должен быть зачислен налог. Банк списывает со счета предприятия–клиента указанные в платежных поручениях суммы и зачисляет их в бюджет. Копии исполненных платежных поручений с выписками банка передаются: одна – финансовому органу по месту нахождения предприятия для учета исполнения доходной части местного бюджета, а вторая – местному органу казначейства для учета исполнения доходной части федерального бюджета. Не позднее следующего дня эти документы из финансового органа и местного органа казначейства должны передаваться налоговой инспекции, на учете которой состоит предприятие.
Аналогично удерживается и перечисляется в бюджет подоходный налог с граждан, имеющих в течение года доходы на других предприятиях кроме основного места работы. Каждое такое предприятие, производящее выплаты, обязано сообщать налоговым органам о суммах произведенных конкретному гражданину выплат и суммах удержанного с него подоходного налога. Гражданин должен вести учет всех доходов, полученных в течение года как в денежной, так и в натуральной форме. По окончании года он обязан к установленному законодательством сроку представить в налоговую инспекцию по местожительству декларацию о совокупном годовом доходе, полученном в истекшем году. В практике работы законодательством устанавливается порядок представления деклараций только гражданами, у которых полученный из нескольких источников выплат совокупный годовой доход превышает сумму, облагаемую по минимальной ставке подоходного налога. Это значительно сокращает объем поступающих в налоговые органы деклараций.
На основе полученных от предприятий сведений, декларации и других документов, свидетельствующих о совокупном годовом доходе гражданина, налоговая инспекция производит ему окончательный расчет подоходного налога за истекший год. Налог исчисляется по ставке, соответствующей размеру годового дохода. Гражданину предъявляется к дополнительной уплате в бюджет разница в сумме налога, исчисленного налоговой инспекцией но совокупному годовому доходу, и сумме налога, удержанного предприятиями при выплатах ему доходов. Уплату указанной разницы гражданин производит в Сберегательном банке, который обязан выдать ему квитанцию, а копию квитанции направить местному органу казначейства или финансовому органу в зависимости от вида бюджета, в который зачисляется налог. Затем она передается налоговой инспекции.
По ряду категорий граждан, получающих доходы у различных источников выплат (например, писатели, работники искусств й т. д.), из совокупного годового дохода исключаются расходы, связанные с деятельностью этих граждан. Предприятия, производящие им в течение года выплаты, удерживают подоходный налог с полных сумм выплат. По окончании года на основе деклараций и других документов, свидетельствующих о совокупном годовом доходе, налоговые инспекции производят окончательный расчет налога. При этом из совокупного годового дохода исключаются подтвержденные документально или в установленных законодательством размерах суммы расходов. Исчисленная таким образом налоговой инспекцией сумма налога по совокупному годовому доходу может оказаться меньше суммы, удержанной с граждан у источника выплаты доходов. Разница в суммах налога подлежит возврату из бюджета.
Подоходный налог с граждан, занимающихся предпринимательской деятельностью без образования юридического лица, исчисляется налоговыми инспекциями. Гражданин, получивший в установленном порядке разрешение на занятие такой деятельностью, обязан заявить в налоговую инспекцию о доходах, которые он предполагает получить в течение года. Исходя из этой суммы, налоговая инспекция производит расчет авансовых платежей налога и вручает гражданину платежное извещение на их уплату в установленные сроки. В течение года гражданин может заявить о повышении (снижении) суммы первоначально предполагаемого дохода. В этом случае налоговая инспекция обязана сделать перерасчет авансовых платежей налога и вручить гражданину новое платежное извещение.
По окончании года или при прекращении предпринимательской деятельности в течение года гражданин обязан представить в налоговую инспекцию декларацию о фактически полученных им доходах, журнал учета доходов и расходов, а также документы, подтверждающие расходы. С учетом этих документов, актов обследований деятельности гражданина, проведенных налоговой инспекцией, сведений, полученных от предприятии о выплатах гражданину доходов, и других документов, подтверждающих его совокупный годовой доход, налоговая инспекция производит окончательный расчет подоходного налога за истекший год. Разница в суммах налога, определенного по окончательному расчету и уплаченного в виде авансовых платежей, подлежит дополнительной уплате или возврату из бюджета. Если налоговая инспекция установит, что гражданин не полностью указал в декларации годовой доход, ему предъявляются к дополнительной уплате налог и предусмотренные законодательством финансовые санкции.
Все суммы подоходного налога и санкций, предъявленные к уплате, граждане вносят в бюджет через Сберегательный банк, который выдает им квитанции, Копии квитанций поступают в финансовые органы, а затем передаются в налоговые органы.
В соответствии с разъяснениями НК МФ РК от 21.01.2003г. № НК–УМ–07–3–21/486, от 23.01. 2003г. № НК–УМ–07–3–18/586 по заполнению Формы 201.00. предусмотрено следующее.
Суммы индивидуального подоходного налога и обязательных пенсионных взносов, подлежащих перечислению в бюджет и НПФ за 2002 год, определяются по формулам, приведенным в строках 201.00.011 и 201.00. 012 Расчета по индивидуальному подоходному налогу по выплаченным доходам, облагаемым у источника выплаты (Форма 201.00), утвержденного Приказом МГД РК от 18.09.2001 года № 1306 (далее – Расчет).
Вместе с тем, в определенных случаях (при отсутствии задолженности по доходам работника на начало года и своевременной выплате заработной платы в следующем отчетном месяце; при выплате задолженности по заработной плате прошлых лет, если в период образования данной задолженности обязательные пенсионные взносы не удерживались; при наличии в штате рабтников–пенсионеров; в случае выплат налоговым агентом физическим лицам дохода от разовых выплат), применение указанных формул для определения сумм индивидуального подоходного налога и обязательных пенсионных взносов, подлежащих перечислению в НПФ, приводит к искажению данных сумм.
В связи с чем, налогоплательщики вправе представить, в соответствии со статьей 71 Налогового кодекса, дополнительный Расчет с указанием в строках 201.00.011 и 201.00. 012 фактически исчисленных сумм индивидуального подоходного налога и обязательных пенсионных взносов без применения указанных формул.
1.2.2 Электронные формы налоговой отчетности
Электронная форма отчетности в бухгалтерии была введена в Казахстане еще 5 лет назад. И лишь через 2 года после этого исторического решения большинство предприятий (АО, ТОО, ОАО) реально перешли на электронку.
В принципе, задумка это хорошая и соответствует духу нашего виртуального времени. Правда, есть и недоработки. Во–первых, бухгалтерам нужно постоянно делать обновления (EFNO, ISID, NDS, enis–klient), которые очень трудно скачиваются с интернета. Поэтому им часто приходится обращаться за обновлениями в налоговый комитет или в специальные фирмы, что неизбежно влечет за собой потерю времени и дополнительные расходы.
Второй недостаток электронной формы отчетности – это криптоключи, которые имеют дурную привычку выходить из строя исключительно во время сдачи квартальных и годовых отчетов. В остальное время, когда они абсолютно не нужны, криптоключи работают исправно.
В принципе, все эти проблемы решаемы для профессиональных бухгалтеров. Но вот незадача: с 1 января 2008 года на электронную форму отчетности перевели и индивидуальных предпринимателей. Теперь каждый квартал индивидуальные предприниматели должны отчитываться в налоговом комитете. Ладно, если бы они просто заполняли бланки; вся трагедия заключается в том, что частников перевели именно на электронную сдачу отчетов. И не было бы это проблемой, если бы в большинстве случаев индивидуальные предприниматели не были бы безграмотны в компьютерной области.
Начнем с преимуществ представления налоговой отчетности в электронном виде. Итак, назовем основные из них:
а) экономия времени. Бесконечные очереди в последние дни сдачи отчетности, напряженная обстановка в коридорах налогового органа, а также время, необходимое на дорогу до инспекции и обратно, отнимают много времени и нервов. Это особенно актуально, когда налогоплательщик, в силу специфики своей деятельности, состоит на учете в нескольких инспекциях. Однако, для того чтобы максимально сократить количество посещений налоговой инспекции, организации следует воспользоваться своим правом по представлению также бухгалтерской отчетности по телекоммуникационным каналам связи;
б) отсутствует обязанность представлять отчетность на бумажном носителе;
в) сокращение количества технических ошибок при заполнении отчетности. Перед отправкой файлов в налоговый орган вся отчетность проходит обязательный контроль на правильность заполнения в соответствии с требованиями утвержденного формата;
г) исключаются факты представления налоговой отчетности по неустановленной форме. Оперативное обновление программного обеспечения, в том числе форм отчетности и средств контроля через Интернет, позволяет налогоплательщику всегда быть в курсе изменений налогового законодательства;
д) представление отчетности независимо от графика работы налогового органа. Налогоплательщик может выбрать для себя оптимальное время сдачи электронной отчетности в налоговый орган, причем это могут быть как ранние, утренние часы, так и поздние, вечерние, вплоть до 24–х часов последнего дня срока представления отчетности в налоговый орган. Однако брать на вооружение последний случай крайне нежелательно. Теоретически все должно пройти гладко, однако на практике в силу определенных обстоятельств (перегрузка сети, сбои в программе и т. д.) установленный срок можно пропустить, в результате чего избежать налоговой ответственности вряд ли удастся;
е) подтверждение доставки отчетности;
ж) оперативность и точность обработки информации. В отличие от отчетности, представленной на бумажном носителе, данные электронных деклараций и расчетов разносятся по лицевым счетам налогоплательщика в автоматическом режиме. Вероятность появления технических ошибок на стадии ввода информации в данном случае сводится к нулю, к тому же на практике камеральная налоговая проверка такой отчетности проходит в более короткие сроки по сравнению с «бумажными собратьями». В результате налогоплательщик может рассчитывать на более оперативное получение сведений об исполнении налоговых обязательств перед бюджетом, в том числе в электронном виде;
и) обеспечение конфиденциальности.
Следует отметить, что вышеперечисленные достоинства в какой–то степени идеализируют общую картину представления электронной отчетности. Без ложки дегтя в бочке меда все же не обходится. Итак, к недостаткам представления отчетности в электронном виде следует отнести:
а) наличие технической базы. Для подготовки электронной отчетности необходимо как минимум наличие компьютера, подключенного к сети Интернет, а также специалиста (сотрудника), обученного работе с соответствующим программным обеспечением;
б) зависимость от работы интернет–провайдера и спецоператора. Из–за сбоев сервера интернет–провайдера налогоплательщик может быть ограничен в доступе в Интернет, как следствие – проблемы с отправкой электронной отчетности своевременно, привлечение налогоплательщика к ответственности. Аналогичная ситуация складывается из–за пробелов в работе специального оператора. В последнем случае, как правило, согласно договору ответственность несет оператор, однако штраф выпишут все равно на налогоплательщика;
в) сбои программного обеспечения . Программные средства, которые используются для передачи электронной отчетности по телекоммуникационным каналам связи, далеки от совершенства, и из–за технических ошибок в их работе у налогоплательщиков могут возникнуть проблемы. Так, известны случаи, когда данные налоговой отчетности, поданной налогоплательщиком, отличались от сведений, которые поступили в налоговый орган. Лечение «болезни» – сверка отчетности с налоговым органом. Также из–за сбоев в программе электронная отчетность может не дойти до налогового органа, в результате налогоплательщик не получит протокола (подтверждения) из инспекции и экземпляр отчета, подписанный электронной цифровой подписью налогового органа. Итог – снова никому не нужные разбирательства. Вместе с тем в последнее время качество работы как самого программного обеспечения, так и налоговиков в этом направлении значительно улучшилось;
г) не все ошибки в налоговой отчетности улавливаются программой на стадии контроля, поэтому налогоплательщик может и не подозревать об их существовании. Однако инспектор отдела по работе с налогоплательщиками мог бы указать на них налогоплательщику при личном контакте (представлении отчетности на бумажных носителях);
д) дублирование отчетности со штампом налогового органа. Если налогоплательщик планирует получить кредит в банке, то, вероятнее всего, ему придется заверить экземпляр отчетности на бумажном носителе в налоговом органе. Дело в том, что переданная в электронном виде отчетность имеет равную юридическую силу с бумажным вариантом только в том случае, если она заверена электронно–цифровой подписью надлежащим образом. Однако кредитное учреждение проверить данный факт не может, поэтому в большинстве случаев банки требуют отчетность со штампом налогового органа, а не с протоколом входного контроля.
Предположим, вы решили сдавать отчетность через сеть. С чего начать?
Нужно проверить собственную техническую готовность. Для сдачи отчетности через Интернет необходим компьютер с более чем скромными по нынешним временам характеристиками: процессор Pentium 90 или выше; объем оперативной памяти от 32 Мбайт; 50 Мбайт свободного пространства на жестком диске; дисковод для 3,5–дюймовой дискеты; дисковод для компакт–дисков. Разумеется, компьютер должен быть снабжен модемом или иметь выход в Сеть через выделенную линию.
Если с техникой все в порядке, можно приступать к следующему этапу: выбору специализированного оператора связи, с помощью которого вы будете пересылать отчетность в инспекцию.
Без помощи оператора связи сдать отчетность через Интернет невозможно. Оператор подключит вашу организацию к системе электронной отчетности по каналам связи (ЭОКС). Он обеспечит вас специальным программным комплексом, необходимым для формирования и отправки отчетности, средствами криптографической защиты информации и ключами средств криптографической защиты.
Средства криптографической защиты обеспечивают защиту передаваемой информации. Это шифрование и электронно–цифровая подпись (ЭЦП).
Наличие ЭЦП на документе позволяет ответить на два вопроса:
а) действительно ли автором присланного электронного документа является заявленный отправитель;
б) не внесены ли в документ без санкции автора какие–либо изменения.
Механизм работы электронной цифровой подписи предполагает наличие у каждого участника системы ЭОКС двух ключей ЭЦП: открытого и закрытого. ЭЦП – реквизит электронного документа, полученный в результате преобразования информации с использованием закрытого ключа электронной цифровой подписи. Закрытый ключ позволяет формировать уникальную последовательность символов, принадлежащую только данному исходному тексту (информации), – электронную подпись. Закрытый ключ известен только ответственному лицу, на имя которого выдан сертификат ключа подписи.
ЭЦП позволяет не только установить владельца ключа подписи (того, кто подписал документ), но и обнаружить случайные или преднамеренные искажения, связанные с непреднамеренным или намеренным вмешательством в какую–либо часть документа.
Открытый ключ известен всем потенциальным получателям документа и связан с закрытым ключом. Это также некая уникальная последовательность символов. Если закрытый ключ служит для создания ЭЦП, то открытый предназначен для подтверждения подлинности электронной цифровой подписи в документе. В процессе подтверждения подлинности ЭЦП устанавливается авторство документа (ибо только автору известен закрытый ключ, которым «подписан документ»), а также отсутствие искажений в документе, поскольку при внесении в документ изменений будет утрачено соответствие между содержанием документа и его ЭЦП, и процедура проверки подлинности ЭЦП даст отрицательный результат.
Программный комплекс в целом обеспечивает: заполнение форм отчетности, контроль правильности их заполнения, подпись файлов с отчетностью ЭЦП и их шифрование, а также их доставку в налоговые органы через Интернет.
Итак, ваша организация получила от оператора связи программный комплекс и средства криптографической защиты. Теперь можно приступать к работе. Порядок электронного документооборота описан в «Методических рекомендациях об организации и функционировании системы представления налоговых деклараций и бухгалтерской отчетности в электронном виде по телекоммуникационным каналам связи».
Естественно, прежде всего нужно сформировать декларацию или другую отчетную форму, которую вы хотите переслать. Отправляемый документ должен соответствовать утвержденному формату. Формат –– это формализованное описание состава и структуры показателей налоговой и бухгалтерской отчетности. Задачу соответствия отчетности формату должен решать бухгалтерский программный комплекс, формирующий отчетность: вам же достаточно «вбить» цифры в нужные поля.
Затем необходимо подписать документ своей ЭЦП (используя закрытый ключ), зашифровать (используя открытый ключ своей налоговой инспекции) и отправить в налоговую инспекцию. На практике все эти действия сводятся к нажатию нескольких кнопок в окне программы. «Сложностей в использовании системы не возникает, отправка документов в налоговую инспекцию занимает 10–15 минут», говорит Валерия Вениаминовна Моцарь из компании «Reebok».
Отправив отчетность, вы получите от специализированного оператора связи подтверждение даты представления файла отчетности – электронный документ с ЭЦП уполномоченного лица специализированного оператора с указанием даты и времени отправки каждого конкретного файла отчетности, зафиксированных по системному времени сервера оператора. Этот документ является электронным аналогом почтового штемпеля на конверте с формами отчетности на бумаге. Налоговая инспекция пришлет квитанцию о приеме отчетности и протокол входного контроля. Все три документа придут в течение суток (не считая выходных и праздничных дней). То есть если документ отправлен в пятницу, вы должны получить ответные документы не позднее понедельника. Впрочем, как показывает практика, ответ от оператора приходит в течение нескольких часов.
Как только организация получила от оператора подтверждение, подписанное его ЭЦП, декларация считается представленной. Датой представления считается дата отправки декларации в электронном виде, зафиксированная в подтверждении оператора связи. Так сказано в пункте 4 раздела II Порядка представления налоговой декларации в электронном виде по телекоммуникационным каналам связи.
Кроме подтверждения оператором даты представления файла отчетности вы должны получить от инспекции: квитанцию о приеме отчетности и протокол входного контроля. Эти два документа являются электронным аналогом штампа «Получено» и подписи сотрудника налоговой инспекции на втором экземпляре документов отчетности на бумаге. Квитанция о приеме, например, представляет собой файл отчетности налогоплательщика, подписанный не только ЭЦП налогоплательщика, но и ЭЦП налоговой инспекции.
В протоколе может быть указано, что декларация не прошла входной контроль. Тогда нужно повторить процедуру формирования отчетности и ее отправки.
Если протокол входного контроля подтвердил, что формы не содержат ошибок и прошли входной контроль, отчетность считается принятой.
Если вы отправили отчетность, но до того как истечет срок ее представления, хотите внести в нее исправления, просто отправьте в инспекцию новый вариант. Инспекция примет к обработке последний из полученных вариантов отчетности.
Сданные таким образом формы отчетности считаются оригиналами и имеют юридическую значимость, подлежат хранению и могут использоваться в качестве доказательств в суде. Представлять в инспекцию бумажный экземпляр сданной отчетности не нужно.
В данной работе рассматривается работа с программой формирования и отправки налоговой отчетности ISID.
Здесь описывается порядок установки (инсталляции) и обновления ИСИД (учет индивидуальных доходов, реестр по выплаченным доходам, облагаемых у источников выплаты) для налогоплательщика.
Приведенный ниже порядок, является одним из оптимальных путей инсталляции или обновления ИСИД для налогоплательщика, при котором Вы сможете поставить новую или старую версию программы на свой компьютер с минимальным риском вызвать какие–нибудь проблемы или быстро и легко решить их.
Начнем с дистрибутива ИСИД (пакета инсталляции), во–первых есть два вида пакетов инсталляции. Это полный пакет установки (обычно называются примерно так ISIDClient_х.х.х.х.exe, где х.х.х.х номер версии, например 1.6.1.3) и пакеты обновления(обычно называются примерно так upISIDClient_х.х.х.х.exe, где х.х.х.х номер версии). Отличия в том, что полный дистрибутив занимает больше места, т.к. содержат все формы ИСИД, а в пакете обновления есть только те формы, которые вышли в этой версии или были в ней изменены. Тут важно, что обновление надо ставить последовательно, если скажем ранее была официально выпущена версия 1.6.1.0, то необходимо ставить или полный пакет почти любой новой или старой версии или обновление до следующей версии. В большинстве случаев, в любом случае рекомендуется ставить полную версию.
И так имеем:
а) Windows XP, 2000, 2003, Vista. Вряд ли у Вас нормально будет работать СГДС на других версиях Windows, т.е. Вы сможете работать с ИСИД на Windows 95, 98, но не сможете работать с СГДС–3, не сможете отправить формы или сохранить их подписанными для передачи в НК;
б) вы являетесь администратором компьютера или у Вас есть все права для установки таких программ, как ИСИД (если нет, то ничего не получится);
в) возможно установлена ИСИД (в случае, если у Вас нет на компьютере ИСИД, Вам всё равно полезно прочитать данную информацию), если ИСИД у Вас установлена, но не работает (проблемная), то алгоритм установки может быть изменен в зависимости от проблемы;
г) дистрибутив ИСИД, который Вы хотите поставить, желательно полная версия. Если у Вас пакет обновления, то нужно убедиться, что у Вас была установлена предыдущая версия ИСИД;
д) вы знаете, где у Вас находится Ваш профайл (или профайлы), который Вы используйте при работе с ИСИД, если Вы используйте profile.xml, который находится в той папке где установлена ИСИД, то нужно сделать его копию;
е) зайти на этот сайт, чтобы проверить есть ли в новой версии проблемы, замечания и т.п.;
ж) хотя бы небольшое знание и навыки работы с файлами.
Итак приступим к установке, обновлению:
а) закройте ИСИД;
б) нужно узнать, где уже установлена, Ваш ИСИД (скорее всего это путь "C:\Program Files\ISID\"). Если Вы этого не знаете, тогда находим иконку на рабочем столе, которая запускает ИСИД , щелкаем правой кнопкой по ней и в контекстном меню выбираем пункт "Свойства". В появившемся окне находим строку, озаглавленную "Рабочая папка". Там и установлена ИСИД;
в) далее запустите дистрибутив, который Вы хотите поставить и просто поставьте всё, следуйте по инструкции (в принципе проблем не должно возникнуть), когда инсталлятор спросит куда установить ИСИД, убедитесь что он совпадает с тем путем, где была установлена ИСИД ранее. Если этот путь отличается, то необходимо указать свой. Это можно сделать и нажав кнопку выбора пути, находите папку где установлена ИСИД и выбираете ее. В этом случае дистрибутив может предложить установить ее не в ту папку, а во вложенную папку с именем "ЭФНО", т.е. если указали "C:\Program Files\ISID\", то она может предложить "C:\Program Files\ISID\ИСИД". Тогда нужно вручную поменять путь, удалить подстрочку ""ИСИД\";
г) по окончанию установки запустите ИСИД (рисунок 1);
Рисунок 1. Запуск приложения
д) когда спросит какой профайл использовать, выберите Ваш профайл, если попросит ввести реквизиты, введите их (рисунок 2);
Рисунок 2. Ввод профайла
е) если предложит установить BDE, а также MSXML (появится окно на английском с предложением их установки, там необходимо следовать предложениям и все просто установится);
ж) далее если предложит выбрать формы с которыми Вы хотели работать, выберите их, установив соответствующие галочки;
и) зайдите в меню "Файл" – "Исходящие", необходимо убедится, что сохранен список исходящих документов;
к) если все в порядке, можете проверить те формы, с которыми Вам необходимо работать (соответственно если они были в ней выпущены). Открыв форму Вы можете ввести в ней свой отчетный год и нажать на клавиатуре "Enter". Если нет сообщения вроде: "Максимальное значение – 2007", тогда всё в порядке, если нет то Вы очевидно выбрали не ту версию формы. Если в меню "Файл" – "Создать" нужной версии нет, то Вам нужно найти в меню "Опции" – "Работа со списком документов", найти нужный вид формы и нужный год, выбрать нужную форму, а ненужные отключить.
Формы формируемые и отправляемые в налоговый комитет находятся в формате XML и имеют расширение .isd.
1.2.3 XML–формат
Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет. Словари, основанные на XML (например, RDF, RSS, MathML, XHTML, SVG), сами по себе формально описаны, что позволяет программно изменять и проверять документы на основе этих словарей, не зная их семантики, то есть не зная смыслового значения элементов. Важной особенностью XML также является применение так называемых пространств имён (англ. namespace) [6].
Стандартом определены два уровня правильности документа XML:
а) правильно построенный (Well–formed). Правильно построенный документ соответствует всем общим правилам синтаксиса XML, применимым к любому XML–документу. И если, например, начальный тег не имеет соответствующего ему конечного тега, то это неправильно построенный документ XML. Документ, который неправильно построен, не может считаться документом XML; XML–процессор (парсер) не должен обрабатывать его обычным образом и обязан классифицировать ситуацию как фатальная ошибка;
б) действительный (Valid). Действительный документ дополнительно соответствует некоторым семантическим правилам. Это более строгая дополнительная проверка корректности документа на соответствие заранее определённым, но уже внешним правилам, в целях минимизации количества ошибок, например, структуры и состава данного, конкретного документа или семейства документов. Эти правила могут быть разработаны как самим пользователем, так и сторонними разработчиками, например, разработчиками словарей или стандартов обмена данными. Обычно такие правила хранятся в специальных файлах – схемах, где самым подробным образом описана структура документа, все допустимые названия элементов, атрибутов и многое другое. И если документ, например, содержит не определённое заранее в схемах название элемента, то XML–документ считается недействительным; проверяющий XML–процессор (валидатор) при проверке на соответствие правилам и схемам обязан (по выбору пользователя) сообщить об ошибке.
Данные два понятия не имеют достаточно устоявшегося стандартизированного перевода на русский язык, особенно понятие valid, которое можно также перевести, как имеющий силу, правомерный, надёжный, годный, или даже проверенный на соответствие правилам, стандартам, законам. Некоторые программисты применяют в обиходе устоявшуюся кальку «Валидный».
XML – это иерархическая структура, предназначенная для хранения любых данных, визуально структура может быть представлена как дерево. Важнейшее обязательное синтаксическое требование – то, что документ имеет только один корневой элемент (англ. root element) (альтернативно называемый элементом документа (англ. document element)). Это означает, что текст или другие данные всего документа должны быть расположены между единственным начальным корневым тегом и соответствующим ему конечным тегом.
Следующий простейший пример – правильно построенный документ XML:
<book>Это книга: "Книжечка"</book>
Первая строка XML–документа называется объявлением XML (англ. XML declaration) – это необязательная строка, указывающая версию стандарта XML (обычно это 1.0), также здесь может быть указана кодировка символов и внешние зависимости.
<?xml version="1.0" encoding="UTF–8"?>
Спецификация требует, чтобы процессоры XML обязательно поддерживали Юникод–кодировки UTF–8 и UTF–16 (UTF–32 не обязателен). Признаются допустимыми, поддерживаются и широко используются (но не обязательны) другие кодировки, основанные на стандарте ISO/IEC 8859, также допустимы другие кодировки, например, русские Windows–1251, KOI–8.
Комментарий может быть размещен в любом месте дерева. XML комментарии размещаются внутри пары тегов <!– и ––>. Два знака дефис (–) не могут быть применены ни в какой части внутри комментария.
<!– Это комментарий. –>.
Ниже приведён пример простого кулинарного рецепта, размеченного с помощью XML:
<?xml version="1.0" encoding="UTF–8"?>
<recipe name="хлеб" preptime="5" cooktime="180">
<title>Простой хлеб</title>
<ingredient amount="3" unit="стакан">Мука</ingredient>
<ingredient amount="0.25" unit="грамм">Дрожжи</ingredient>
<ingredient amount="1.5" unit="стакан">Тёплая вода</ingredient>
<ingredient amount="1" unit="чайная ложка">Соль</ingredient>
<Instructions>
<step>Смешать все ингредиенты и тщательно замесить.</step>
<step>Закрыть тканью и оставить на один час в тёплом помещении.</step>
<step>Замесить ещё раз, положить на противень и поставить в духовку.</step>
</Instructions>
</recipe>.
Остальная часть этого XML–документа состоит из вложенных элементов, некоторые из которых имеют атрибуты и содержимое. Элемент обычно состоит из открывающего и закрывающего тегов, обрамляющих текст и другие элементы. Открывающий тег состоит из имени элемента в угловых скобках, например, «<step>»; закрывающий тег состоит из того же имени в угловых скобках, но перед именем ещё добавляется косая черта, например, «</step>». Содержимым элемента (англ. content) называется всё, что расположено между открывающим и закрывающим тегами, включая текст и другие (вложенные) элементы. Ниже приведён пример XML–элемента, который содержит открывающий тег, закрывающий тег и содержимое элемента:
<step>Замесить ещё раз, положить на противень и поставить в духовку.</step>.
Кроме содержания у элемента могут быть атрибуты – пары имя–значение, добавляемые в открывающий тег после названия элемента. Значения атрибутов всегда заключаются в кавычки (одинарные или двойные), одно и то же имя атрибута не может встречаться дважды в одном элементе. Не рекомендуется использовать разные типы кавычек для значений атрибутов одного тега.
<ingredient amount="3" unit="стакан">Мука</ingredient>.
В приведённом примере у элемента «ingredient» есть два атрибута: «amount», имеющий значение «3», и «unit», имеющий значение «стакан». С точки зрения XML–разметки, приведённые атрибуты не несут никакого смысла, а являются просто набором символов.
Кроме текста, элемент может содержать другие элементы:
<Instructions>
<step>Смешать все ингредиенты и тщательно замесить.</step>
<step>Закрыть тканью и оставить на один час в тёплом помещении.</step>
<step>Замесить ещё раз, положить на противень и поставить в духовку.</step>
</Instructions>.
В данном случае элемент «Instructions» содержит три элемента «step». XML не допускает перекрывающихся элементов. Например, приведённый ниже фрагмент некорректен, так как элементы «em» и «strong» перекрываются.
<!– ВНИМАНИЕ! Некорректный XML! –>
<p>Обычный <em>акцентированный <strong>выделенный и акцентированный</em> выделенный</strong></p>.
Каждый XML–документ должен содержать в точности один корневой элемент (англ. root element или document element), таким образом, следующий фрагмент не может считаться корректным XML–документом.
<!– ВНИМАНИЕ! Некорректный XML! –>
<thing>Сущность №1</thing>
<thing>Сущность №2</thing>.
Для обозначения элемента без содержания, называемого пустым элементом, необходимо применять особую форму записи, состоящую из одного тега, в котором после имени элемента ставится косая черта. Если в DTD элемент не объявлен пустым, но в документе он не имеет содержания, для него допускается применять такую форму записи. Например:
<foo></foo>
<foo />
<foo/>.
В XML определены два метода записи специальных символов: ссылка на сущность и ссылка по номеру символа. Сущностью (англ. entity) в XML называются именованные данные, обычно текстовые, в частности спецсимволы. Ссылка на сущность (англ. entity references) указывается в том месте, где должна быть сущность и состоит из амперсанда («&»), имени сущности и точки с запятой («;»). В XML есть несколько предопределённых сущностей, таких как «lt» (ссылаться на неё можно написав «<») для левой угловой скобки и «amp» (ссылка – «&») для амперсанда, возможно также определять собственные сущности. Помимо записи с помощью сущностей отдельных символов, их можно использовать для записи часто встречающихся текстовых блоков. Ниже приведён пример использования предопределённой сущности для избежания использования знака амперсанда в названии:
<company–name>AT&T</company–name>.
Полный список предопределённых сущностей состоит из & («&»), < («<»), > («>»), ' («'»), и " («"») – последние две полезны для записи разделителей внутри значений атрибутов. Определить свои сущности можно в DTD–документе.
Иногда бывает необходимо определить неразрывный пробел, который очень часто используется в HTML и обозначается как в XML такой предопределённой сущности нет, его записывают  , а использование вызывает ошибку. Отсутствие этой весьма распространённой сущности у множества программистов, зачастую, вызывает удивление, и это создаёт некоторые трудности при миграции своих HTML–разработок в XML.
Ссылка по номеру символа (англ. numeric character reference) выглядит как ссылка на сущность, но вместо имени сущности указывается символ # и число (в десятичной или шестнадцатеричной записи), являющееся номером символа в кодовой таблице Юникод. Это обычно символы, которые невозможно закодировать напрямую, например буква арабского алфавита в ASCII–кодированном документе. Амперсанд может быть представлен следующим образом:
<company–name>AT&T</company–name>.
Существует ещё множество правил, касающихся составления корректного XML–документа, но целью данного краткого обзора было лишь показать основы, необходимые для понимания структуры XML–документа.
Достоинства:
а) XML – язык разметки, позволяющий отобразить двоичные данные в текст, читаемый человеком и анализируемый компьютером;
б) XML поддерживает Юникод;
в) в формате XML могут быть описаны такие структуры данных как записи, списки и деревья;
г) XML – это самодокументируемый формат, который описывает структуру и имена полей также как и значения полей;
д) XML имеет строго определённый синтаксис и требования к анализу, что позволяет ему оставаться простым, эффективным и непротиворечивым. Одновременно с этим, разные разработчики не ограничены в выборе экспрессивных методов (Например, можно моделировать данные помещая значения в параметры тегов или в тело тегов, можно использовать различные языки и нотации для именования тэгов и т. д.);
е) XML – формат, основанный на международных стандартах;
ж) иерархическая структура XML подходит для описания практически любых типов документов, кроме аудио и видео мультимедийных потоков, растровых изображений, сетевых структур данных и двоичных данных;
и) XML представляет собой простой текст, свободный от лицензирования и каких–либо ограничений;
к) XML не зависит от платформы;
л) XML является подмножеством SGML (который используется с 1986 года). Уже накоплен большой опыт работы с языком и созданы специализированные приложения;
м) XML не накладывает требований на расположение символов в строке;
н) в отличие от бинарных форматов, XML содержит метаданные о именах, типах и классах описываемых объектов, по которым приложение может обработать документ неизвестной структуры (например, для динамического построения интерфейсов);
п) XML имеет реализации парсеров для всех современных языков программирования;
р) XML поддерживается на низком аппаратном, микропрограммном и программном уровнях в современных аппаратных решениях.
Недостатки:
а) синтаксис XML избыточен. Размер XML документа существенно больше бинарного представления тех же данных. В грубых оценках величину этого фактора принимают за 1 порядок (в 10 раз). Размер XML документа существенно больше, чем документа в альтернативных текстовых форматах передачи данных (например JSON, YAML) и особенно в форматах данных, оптимизированных для конкретного случая использования. Избыточность XML может повлиять на эффективность приложения. Возрастает стоимость хранения, обработки и передачи данных;
б) XML содержит мета–данные (об именах полей, классов, вложенности структур), и одновременно XML позиционируется как язык взаимодействия открытых систем. При передаче между системами большого количества объектов одного типа (одной структуры), передавать метаданные повторно нет смысла, хотя они содержатся в каждом экземпляре XML описания. Для большого количества задач не нужна вся мощь синтаксиса XML и можно использовать значительно более простые и производительные решения;
в) неоднозначность моделирования. Нет общепринятой методологии для моделирования данных в XML, в то время как для реляционной модели и объектно–ориентированной такие средства разработаны и базируются на реляционной алгебре, системном подходе и системном анализе. В природе есть множество объектов и явлений, для описания которых разные структуры данных (сетевая, реляционная, иерархическая) являются естественными, и отображение объекта в неестественную для него модель, является болезненным для его сути. В случае с реляционной и иерархической моделями определены процедуры декомпозиции, обеспечивающие относительную однозначность, чего нельзя сказать о сетевой модели. В результате большой гибкости языка и отсутствия строгих ограничений, одна и та же структура может быть представлена множеством способов (различными разработчиками), например, значение может быть записано как атрибут тега или как тело тега и т. д. Например: <a b="1" c="1"/> или <a b="1" c="1"></a> или <a><b>1</b><c>1</c></a> или <a><c value="1"/></a> или <a><fields b="1" c="1"/></a> и т. д.
Поддержка многих языков в именовании тегов дает возможность назвать, например вес русским словом, в таком случае компьютер никак не сможет установить соответствия этого поля с полем weight в англоязычной версии программы и с полями в версиях модели объекта на множестве других языков.
XML не содержит встроенной в язык поддержки типов данных. В нём нет строгой типизации, то есть понятий «целых чисел», «строк», «дат», «булевых значений» и т. д.
Иерархическая модель данных, предлагаемая XML, ограничена по сравнению с реляционной моделью и объектно–ориентированными графами и сетевой моделью данных.
Выражение неиерархических данных (например графов) требует дополнительных усилий.
Кристофер Дейт, специалист в области реляционных баз данных, автор классического учебника «An Introduction to Database Systems», отмечал, что «…XML является попыткой заново изобрести иерархические базы данных…» [7] (в 1980–е года иерархические базы данных были вытеснены реляционными базами данных).
Пространства имён XML сложно использовать и их сложно реализовывать в XML парсерах.
Существуют другие, обладающие сходными с XML возможностями, текстовые форматы данных, которые обладают более высоким удобством чтения человеком (YAML, JSON, SweetXML, XF).
Теперь рассмотрим шаблон XML, который формирует программа ISID. На рисунке мы видим структуру шаблона. Она является древовидной. Корнем является тег document, внутри которого находится множество тегов form, каждый из которых является самостоятельной формой, в свою очередь состоящей из страниц (тег page). В одной форме может быть несколько страниц (рисунок 3).
Рисунок 3. Вид XML–документа
Приведем пример одной такой страницы:
<?xml version="1.0" encoding="utf–8" standalone="no" ?>
<document type="d201.01" version="6" cvsid="$: formlist.xml,v 1.2 2007/06/06
<form_201010100009 cvsid="$: form.xml,v 1.1 2007/05/07
<page_201010100009 cvsid="$: structure.xml,v 1.3 2007/06/06
<rnn>600400560580</rnn>
<np_quarter>1</np_quarter>
<np_year>2007</np_year>
<fio1>ТОО " Векстрой 2 "</fio1>
<fio2/>
<fio3/>
<oked1>40767604</oked1>
<oked2>0</oked2>
<oked3>0</oked3>
<unit_weight1>100</unit_weight1>
<unit_weight2>0</unit_weight2>
<unit_weight3>0</unit_weight3>
<vd_p>1</vd_p>
<vd_o>0</vd_o>
<vd_d>0</vd_d>
<vd_u>0</vd_u>
<vd_l>0</vd_l>
<number_uved/>
<date_uved/>
<code_currency>389</code_currency>
<a_s_8/>
<b_s_8/>
<c_s_8/>
<a_s_9/>
<b_s_9/>
<c_s_9/>
<a_s_201.01.001/>
<b_s_201.01.001>0</b_s_201.01.001>
<c_s_201.01.001>7252170</c_s_201.01.001>
<a_s_201.01.002>0</a_s_201.01.002>
<c_s_201.01.002>31907358</c_s_201.01.002>
<b_s_201.01.002>11789483</b_s_201.01.002>
<d_s_201.01.002>43696841</d_s_201.01.002>
<a_s_201.01.003/>
<c_s_201.01.003>3190736</c_s_201.01.003>
<b_s_201.01.003>1178958</b_s_201.01.003>
<d_s_201.01.003>4369694</d_s_201.01.003>
</page_201010100009>
<page_201010200006 cvsid="$: structure.xml,v 1.2 2007/06/06
<rnn>600400560580</rnn>
<np_quarter>1</np_quarter>
<np_year>2007</np_year>
<a_s_201.01.004/>
<c_s_201.01.004>1978678</c_s_201.01.004>
<b_s_201.01.004>3358355</b_s_201.01.004>
<d_s_201.01.004>5337033</d_s_201.01.004>
<a_s_201.01.005>0</a_s_201.01.005>
<c_s_201.01.005>211444</c_s_201.01.005>
<b_s_201.01.005>286291</b_s_201.01.005>
<d_s_201.01.005>497735</d_s_201.01.005>
<a_s_201.01.006/>
<c_s_201.01.006/>
<b_s_201.01.006/>
<d_s_201.01.006/>
<fio_head>Тян Юрий Владимирович</fio_head>
<d_p>07.08.08</d_p>
<fio_count>Марковская Ольга Валериевна</fio_count>
<fio_dl>Абди Мехмет</fio_dl>
<fio_pr/>
<d_pr/>
<nvh/>
<kno>1323</kno>
<d_post/>
</page_201010200006>
</form_201010100009>.
Следующая форма не может быть открыта, пока не закрыта предыдущая. Иначе не будет соблюден принцип вложенности и упорядоченности.
1.2.4 Расчет подоходного налога по удельному весу
Закон РК «О труде в Республике Казахстан» от 10.12.1999 г. за № 493–1 (далее – закон) регулирует отношения, возникающие между работодателем и работником по поводу осуществления работниками определенной трудовой деятельности. При заключении договора имущественного найма (аренды) юридического лица с физическим лицом в обязанность по исчислению и удержанию индивидуального подоходного налога в соответствии с пп. 20) пункта 1 ст. 10 Налогового кодекса возлагается на налогового агента, т.е. на юридическое лицо, выплачивающее доход. Таким образом, при наличии трудовых отношений между работодателем и работником необходимо обязательное заключение индивидуального трудового договора. Сумма произведенных разовых выплат отражается в Расчете по индивидуальному подоходному налогу по выплаченным доходам, облагаемым у источника выплаты (Форма 201.00) [9].
С 1 января 2007 года введена фиксированная ставка индивидуального подоходного налога в размере 10 процентов Исчисление и удержание индивидуального подоходного налога производится с дохода работника, уменьшенного на сумму в размере минимальной заработной платы (в 2009 году МЗП составила 13 470 тенге), а также на сумму обязательных пенсионных взносов. Разберем расчет индивидуального подоходного налога на примере. Допустим работнику начисляется оклад в сумме 50 000 тенге. Обязательные пенсионные взносы удерживаются в размере 10 процентов с дохода, выплачиваемого работнику и составят 5 000 тенге. Индивидуальный подоходный налог в данной ситуации будет рассчитан следующим образом: (50 000 – 5 000 – 13 470) х 10%(ИПН) = 3 153 Таким образом, в рассматриваемом примере с начисляемого оклада работника в 50000 тенге необходимо удержать и перечислить: 5 000 тенге – сумму обязательных пенсионных взносов в накопительный пенсионный фонд; 3 153 тенге – сумму индивидуального подоходного налога в бюджет. Заработная плата сотрудника «на руки» составит 41 747 тенге. Касательно суммы пени по обязательным пенсионным взносам. Согласно Налоговому кодексу с 1 января 2007 года пени, начисленные работодателем за несвоевременное удержание (начисление) и (или) перечисление обязательных пенсионных взносов в накопительные пенсионные фонды не подлежат обложению индивидуальным подоходным налогом (пп. 41) статьи 144). Налоговым кодексом установлено, что расходы относятся на вычеты в том налоговом периоде, в котором они были фактически произведены, при наличии документов, подтверждающих осуществление расходов, а также документов, подтверждающих, что данные расходы осуществлены в целях получения совокупного годового дохода (ст. 92 НК). Таким образом, на вычеты при определении облагаемого корпоративным подоходным налогом дохода относятся фактически уплаченные суммы пени по обязательным пенсионным взносам.
Согласно пункту 2 ст. 147 Кодекса «О налогах и других обязательных платежах в бюджет» (Налоговый кодекс) и пункту 3–1 постановления за № 245 налоговые агенты осуществляют перечисление индивидуального подоходного налога и ОПВ по выплаченным доходам до 5 числа месяца, следующего за месяцем выплаты, по месту своего нахождения, если иное не предусмотрено настоящей статьей. Таким образом, налогоплательщик самостоятельно исчисляет суммы ИПН и ОПВ по выплаченным доходам, где ему дано право принимать решение о том, какая сумма из общего начисленного ИПН и ОПВ относится к выплаченным доходам. Расчет сумм ИПН и ОПВ, подлежащих к выплате, можно производить, в том числе с использованием привычного удельного веса. Для этого необходимо определить основные данные по невыплаченным и выплаченным доходам работникам, т.е. за основу берутся данные по доходам, подлежащим выплате работникам на руки. Пример Задолженность по невыплаченным доходам на начало месяца составила 50,0 тыс. тенге; Доходы к выплате за отчетный месяц (стр. 201.00.001– стр. 201.00.003 – ОПВ – ДПВ) составили 100,0 тыс. тенге; Таким образом, доходы к выплате с учетом задолженности (50,0 тыс. тенге.) составляют 150,0 тыс. тенге. Выплачено доходов в месяце (стр. 2001.00.005) 120,0 тыс. тенге. Задолженность по невыплаченным доходам на конец месяца составила 30,0 тыс. тенге (150,0 – 120,0); Удельный вес выплаченных доходов составит 80%, т.е. (120 : 150) х 100%, что и будет являться основой для определения объема сумм ИПН и ОПВ, подлежащих перечислению по доходам, выплаченным в отчетном периоде. При этом в соответствии с правилами составления расчета 201.00 в строке 201.00.005 (выплачено доходов) командировочные суммы не указываются. Таким образом, при определении сумм ИПН и ОПВ, подлежащих перечислению по выплаченных доходам, удельный вес будет рассчитываться без учета сумм командировочных.
1.2.5 Описание возможностей «1С:Предприятие 7.7»
Конфигурация «1С:Предприятие 7.7» в которой ведет бухгалтерский учет фирма – это специализированное отраслевое решение содержащее различные документы, отчеты, справочники и решающее прикладные задачи пользователя. Конфигурации написаны на внутреннем языке «1C» – v7script (по своим функциональным возможностям он похож на Visual Basic). Некоторые конфигурации используют какую либо одну компоненту платформы «1C», некоторые несколько. Основные конфигурации:
а) «Бухгалтерский учет»;
б) «Торговля и Склад»;
в) «Зарплата и Кадры»;
г) «Производство + Услуги +Бухгалтерия»;
д) «Комплексная конфигурация».
Основные конфигурации написаны непосредственно в фирме «1C» (г.Москва), многие другие (на данный день сертифицированное около 300 различных конфигураций) написаны партнерами фирмы «1C» (обычно фирмами–франчайзи). Код конфигураций является открытым и свободным для любого изменения и адаптации под специфику предприятия, как партнерами, так и конечными пользователями. Конфигурация фирмы, для которой производится разработка данного дипломного проекта, является типовой и содержит одну компоненту «Бухгалтерский учет» [8].
Само 1С:Предприятие, помимо информационной базы, поставляется как ядро и дополнение к ядру – компоненты. Для ведения учета предоставляется три компоненты: "Бухгалтерский учет", "Оперативный учет", "Расчет". Основное ядро реализует возможности работы с документами, справочниками, журналам документов, отчетами и некоторыми другими "базовыми" объектами. Каждая из компонент, которая может быть установлена как в отдельности, так и в совокупности с другой или же все вместе, предоставляет доступ к специфическим объектам. Компоненты рассчитаны на ведение разнопланового учета, в зависимости от условий ведения учета. Если организация имеет относительно небольшой оборот документов по продажам, сотрудники имеют фиксированный оклад и не требуется учета рабочего времени по дням, тогда возможностей компоненты "Бухгалтерия" будет достаточно. Если организация имеет торговые точки, находящиеся достаточно близко – в пределах сотни метров, идет большой оборот документов реализации, тогда просто необходима компонента "Оперативный учет"; если торговые точки удалены друг от друга, можно использовать компоненту УРБД (Управление Распределенными Базами Данных). И наконец, если необходимо вести учет рабочего времени по дням, имеется графики сменной работы, отпуска, больничные и т.д. – необходима компонента "Расчет". Так же "1С:Предприятие" может поставляться в трех реализациях: Однопользовательская, Сетевая и SQL–версия.
Компонента "Бухгалтерия" позволяет вести учет по "классической", схеме двойной записи. Компонента позволяет использование 2 дополнительных объектов: планы счетов и субконто. Ведение учета может осуществляться как документами, так и операциями сформированными вручную. Документ может сформировать операцию, в которой могут быть сформированы проводки этого документа. Таким образом, каждая отдельная бухгалтерская, которая может записываться несколькими проводками, операция содержится в одной операции программы. Если необходимо просмотреть весь список проводок одновременно, тогда необходимо воспользоваться "Журналом проводок" (рисунок 4).
Рисунок 4. Журнал проводок
Ведение на счетах субконто позволяет в любой момент времени получить сведения в разрезе каких–либо объектов. К примеру, возьмем счет 222 "товары приобретенные".
При ведение учета товаров с использованием таких субконто, всегда можно узнать, какой товар и когда пришел на какой склад и по какому документу. Так же можно получить аналогичные сведения только по одному товару или складу. Все эти действия могут быть предусмотрены в "стандартных" отчетах.
Так же существуют ограничения, накладываемые "типами" компонент. Программа может поставляться как "1С:Бухгалтерия Базовая", "1С:Бухгалтерия Стандартная", "1С:Бухгалтерия ПРОФ". Версия "ПРОФ" не имеет ниже перечисленных ограничений. Версия "Стандартная" может работать только с одним планов счетов, максимальное количество субконто (разрезов аналитики) не больше 3х, не поддерживается разделитель учета (возможность ведения учета по нескольким фирмам в одной базе, например несколько филиалов одной фирмы), не поддерживаются сложные проводки, уровень иерархии (вложенности) справочников не больше 4х (в ПРОФ – 10). Версия "Базовая" имеет все ограничения для "Стандартной версии, плюс к этому нельзя вносить изменения в конфигурацию.
Достоинствами компоненты является простота понимания, надежность, возможность ручной корректировки итогов. К недостаткам можно отнести замедление работы при большом документообороте, и ограничение количества проводок в одной операции – 9,999 (но такое количество встречается не часто).
Компонента "Оперативный учет" позволяет вести учет в специфических объектах – регистрах. Регистры используются для накопления информации о наличии и движении как денежных, так и товарных средств. Вся информация о хозяйственных операциях, которая вводится с использованием документов или формируется при помощи расчетов, должна быть накоплена в регистрах. Именно регистры являются основным источником информации для анализа и формирования отчетов. Как правило, факт проведения документа означает изменение содержимого регистров (одного или нескольких) на основе данных документа.
Регистры являются внутренним компонентом конфигурации, т.е. они недоступны для непосредственного заполнения, нет стандартных средств его просмотра, как для других объектов (документов, справочников, констант и т.д.). Однако средствами встроенного языка можно записывать в регистры информацию, и в последующем извлекать ее.
Доступ к ним можно получить только через документы. Т.е. нельзя изменить состояние регистров вручную. Сами регистры представляют систематизированную таблицу с данными. По структуре, регистры похожи план счетов, но система ведения учета на регистрах отличается от ведения учета на счетах. Основное преимущество работы с регистрами, это скорость. Регистры являются самыми быстрыми объектами обработки информации. Поэтому применение регистров для ведения учета целесообразно при больших оборотах, т.е. это могут быть розничные магазины, где гораздо важнее скорость обработки информации, нежели ее наглядность. Все итоги и обороты по регистрам можно получить, сформировав отчетность.
Подводя итог всему вышесказанному, можно сделать следующий вывод: наиболее важным преимуществом использования регистров является то, что они служат для хранения информации, к которой необходимо получать оперативный доступ. "Уровень оперативности" и, соответственно, целесообразность использования регистров должен определять специалист, выполняющий конфигурирование системы 1С:Предприятие, в соответствии с требованиями пользовательской системы.
Кроме того, необходимо отметить, что регистры позволяют получать наиболее достоверную информацию о состоянии оперативного учета и именно запись изменений в регистры служит подтверждением того, что хозяйственная операция совершена [9].
К возможным неудобствам использования регистров при конфигурировании системы 1С:Предприятие невозможность внесения, по понятным причинам, информации напрямую непосредственно в регистры.
Компонента "Расчет" предоставляет 5 основных объектов для работы: журнал расчетов, вид расчета, группа расчетов, календарь и праздники. Изначально компонента "Расчет" была предназначена для работы связанной с сложным расчетом зарплаты, но так же как и остальные компоненты, она может применяться для решения других задач. Работа в этой компоненте является самой наглядной из всех, так как в журнале расчетов практически по дням можно увидеть, сколько начислено и удержано с конкретного сотрудника. Начиная новый месяц можно сразу начислить оклад, и какие–то дополнительные начисления. По прошествии 9 дней, сотрудник может взять больничный на 5 дней. Причем без вмешательства бухгалтера по исправлению начислению оклада, при внесении документа "больничный лист" программа "разрежет" расчет начисление на две части: до ухода на больничный и после выхода с него. Тут все проще, нежели кажется, программисту только нужно указать, что вид расчета больничный "вытесняет" собой вид расчета "начисление". С помощью календарей можно организовать вахтовый метод практически любой структуры: день через день, или неделя через неделю, или обычную пятидневку. Для этого всего один раз заполняется количество отработанных часов в день за какой–то повторяющийся период, а далее нужно только "спрашивать" у календаря, сколько было проработано дней или часов с 5 по 23 мая. В случае невыходов, необходимо внести документ, который запишет в журнал расчетов "невыход" (дату прогула), и машина опять разрежет начисление на две части в дате прогула. В конце месяца можно получить достаточно сложную структуру начислений и удержаний, которая наглядно отображает весь процесс расчета заработной платы сотрудников (рисунок 5).
Рисунок 5. Ведомость по зарплате
Из данного рисунка видно, что оклад разбит на 3 части: с начала месяца по дату больничного, от даты выхода с больничного до ухода в отпуск, и с возврата из отпуска до конца месяца. Все это сформировано 4–мя документами: начало месяца (формирующий записи по начальному сальдо с прошлого месяца, начислению оклада, основным удержаниям), больничный лист (вводит расчет оплата больничного, который "вытесняет" расчет оклада на период больничного листа), очередной отпуск (расчет которого так же "вытесняет" расчет оклада на время отпуска), закрытие месяца (Который рассчитывает все записи).
Достоинствами системы является наглядность, ведение расчетов любой сложности и легко управляемость, недостатками – медленная скорость формирования отчетов из–за большого количества записей, и невозможность ведения "вытеснения" в пределах одного дня, т.е. нельзя отобразить, что сотрудник проболел до обеда, а после обеда вышел на работу.
Так же существует несколько дополнительных компонент для оптимизации ведения учета. Например "управление распределенными информационными базами". Эта компонента позволяет вести автообмен информацией между информационными базами удаленными территориально. Данная компонента незаменима, когда предприятие представляет собой раздробленную систему филиалов находящихся в разных районах города, разных городах, или если желаете в разных странах. Она позволяет отслеживать изменения в объектах учета и передавать измененную информацию между информационными базами. Все это решается настройкой "свойств миграции" объектов при установке данной компоненты. Например, установив, что документ приходная накладная будет мигрировать во все информационные базы, можно уже не думать о том, что новый документ созданный днем на одном конце страны, завтра утром уже может быть доступен на другом конце.
Другой компонентой является WEB–расширение, благодаря которому можно организовать WEB–магазин для продажи продукции или товаров через сеть Internet. Создав свой виртуальный магазин, появляется возможность формировать прайс–листы с публикацией их на страницах магазина, оформлять заказы, контролируя остаток того или иного товара на складе и соответственно сообщать, если заказано количество большее, чем имеется в наличии. Принципиально, компонента предназначена для обмена информацией между информационной базой и сайтом, реализующим Интернет магазин, а уж какая информация и в каком виде будет представлена на страницах магазина, это дело каждого в отдельности.
Ну и на последок можно рассказать о связи 1С:Предприятие с другими приложениями. 1С:Бухгалтерия включает готовые режимы для обмена бухгалтерской информацией с другими программами системы 1С:Предприятие и содержит разнообразные средства для связи с другими программами:
а) возможность импорта и экспорта информации через текстовые файлы позволит обмениваться данными практически с любой программой;
б) встроенный язык содержит средства работы с файлами формата DBF.
1С:Бухгалтерия поддерживает современные средства интеграции приложений: OLE, OLE Automation и DDE. Использование этих средств позволяет:
а) управлять работой других программ, используя встроенный язык, – например, формировать отчеты и графики в Microsoft Excel;
б) получать доступ к данным 1С:Бухгалтерии из других программ;
в) вставлять в документы и отчеты 1С:Бухгалтерии объекты, созданные другими программами – например, помещать в первичные документы логотип фирмы;
г) размещать в документах и отчетах рисунки и графики.
Помимо возможностей использования данных других программ, постоянно выходят новые внешние компоненты для 1С:Предприятие (сторонних производителей), которые расширяют функционал данного ПО. Примером этому может быть загрузка курсов валют из сети Интернет, отправка почты или отправка платежек в банк.
Все выше сказанное позволяет сказать, что 1С:Предприятие является достаточно мощным инструментом в руках бухгалтера, позволяющий сильно облегчить ведение учета любой сложности и упорядочить информацию для своевременного получения актуальной отчетности.
Система программ «1С:Предприятие 7.7» включает в себя платформу и прикладные решения, разработанные на ее основе, для автоматизации деятельности организаций и частных лиц. Сама платформа не является программным продуктом для использования конечными пользователями, которые обычно работают с одним из многих прикладных решений (конфигураций), разработанных на данной платформе. Такой подход позволяет автоматизировать различные виды деятельности, используя единую технологическую платформу.
Так же существует несколько дополнительных компонент для оптимизации ведения учета. Например "управление распределенными информационными базами". Эта компонента позволяет вести автообмен информацией между информационными базами удаленными территориально. Данная компонента незаменима, когда предприятие представляет собой раздробленную систему филиалов находящихся в разных районах города, разных городах, или если желаете в разных странах. Она позволяет отслеживать изменения в объектах учета и передавать измененную информацию между информационными базами. Все это решается настройкой "свойств миграции" объектов при установке данной компоненты. Например, установив, что документ приходная накладная будет мигрировать во все информационные базы, можно уже не думать о том, что новый документ созданный днем на одном конце страны, завтра утром уже может быть доступен на другом конце.
Фирма "1С" выпускает тиражные прикладные решения, предназначенные для автоматизации типовых задач учета и управления в коммерческих предприятиях реального сектора и бюджетных организациях. В каждом программном продукте сочетается использование стандартных решений (общих для всех или нескольких программ) и максимальный учет специфики задачи конкретной отрасли или рода деятельности предприятия.
1.3 Определения, термины и сокращения
В таблице 1 указан список определений, терминов и сокращений, используемых в данной работе.
Таблица 1
Список определений
Наименование термина | Описание |
1С:Предприятие 7.7 | Система предназначеная для комплексной автоматизации организаций различных форм собственности и направлений деятельности. Позволяет организовать бухгалтерский, управленческий, кадровый, торговый учет, учет производства и реализации услуг, а также расчет заработной платы. |
Баланс | Способ группировки активов и пассивов организации в денежном выражении, призванный характеризовать её финансовое положение на определённую дату, элемент бухгалтерской отчетности |
Бухгалтерский счет | Учетные регистры, по которым будет выполняться группировка средств при работе с системой 1С:Предприятие |
Вид субконто | Множество однотипных объектов аналитического учета. |
Забалансовый счет | Счет, который не может корреспондировать с балансовыми счетами в проводкахи служит для накопления данных, не участвующих в формировании баланса. |
Интерфейс пользователя | (UI – англ. user interface) – совокупность средств, при помощи которых пользователь общается с различными устройствами, чаще всего – с компьютером или бытовой техникой, либо иным сложным инструментарием (системой). |
КСБУ | Международные стандарты финансовой отчётности (от англ. International Financial Reporting Standards) – набор документов (стандартов и интерпретаций), регламентирующих правила составления финансовой отчетности, необходимой внешним пользователям для принятия ими экономических решений в отношении предприятия. |
План счетов | Совокупность синтетических счетов, предназначеных для группировки информации о хозяйственной деятельности предприятия. Благодаря ему, формируется оборотно-сальдовая ведомость. |
Продолжение таблицы 1 | |
Наименование термина | Описание |
ППО | Продукт программного обеспечения. |
Субконото | Объект аналитического учета: основные средства, нематериальные активы, предметы, материалы, организации,подотчетные лица, договоры, сотрудники. |
GUI | Графи́ческий интерфе́йс по́льзователя ( GUI – Graphical User Interface) в вычислительной технике – система средств для взаимодействия пользователя с компьютером, основанная на представлении всех доступных пользователю системных объектов и функций в виде графических компонентов экрана (окон, значков, меню, кнопок, списков и т. п.). При этом, в отличие от интерфейса командной строки, пользователь имеет произвольный доступ (с помощью клавиатуры или устройства координатного ввода типа «мышь») ко всем видимым экранным объектам. |
ISID | Программное обеспечение для налогоплательщиков по заполнению и передаче реестра по выплаченным доходам, облагаемым у источника выплаты |
UML | Унифицированный язык моделирования (сокр. от англ. Unified Modeling Language) – язык графического описания для объектного моделирования в области разработки программного обеспечения. |
UTF8 | Формат преобразования Юникода (от англ. Unicode Transformation Format) – в настоящее время распространённая кодировка, реализующая представление Юникода совместимое с 8–битным кодированием текста. |
XML | Текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями. |
2 Требования к внешнему интерфейсу
2.1 Пользовательские интерфейсы
Интерфейс разработанного ППО должен быть интуитивно понятен пользователю и удобен в использовании. Эскиз интерфейса и Диаграмма состояний интерфейса очень просты и понятны по структуре.
Интерфейс пользователя компьютерного приложения включает:
а) средства отображения информации, отображаемую информацию, форматы и коды;
б) командные режимы, язык «пользователь – интерфейс»;
в) устройства и технологии ввода данных;
г) диалоги, взаимодействие и транзакции между пользователем и компьютером, обратную связь с пользователем;
д) поддержку принятия решений в конкретной предметной области;
е) порядок использования программы и документацию на неё.
Пользовательский интерфейс часто понимают только как внешний вид программы. Однако на деле пользователь воспринимает через него всю программу в целом, а значит, такое понимание является слишком узким.
В действительности ПИ объединяет в себе все элементы и компоненты программы, которые способны оказывать влияние на взаимодействие пользователя с программным обеспечением (ПО). Это не только экран, который видит пользователь.
К этим элементам относятся:
а) набор задач пользователя, которые он решает при помощи системы;
б) используемая системой метафора (например, рабочий стол в MS Windows);
в) элементы управления системой;
г) навигация между блоками системы;
д) визуальный (и не только) дизайн экранов программы;
е) средства отображения информации, отображаемая информация и форматы;
ж) устройства и технологии ввода данных;
и) диалоги, взаимодействие и транзакции между пользователем и компьютером;
к) обратная связь с пользователем;
л) поддержка принятия решений в конкретной предметной области;
м) порядок использования программы и документация на нее.
Одним из требований к хорошему графическому интерфейсу пользователя программной системы является концепция «делай то, что я имею ввиду» или DWIM (сокращение от английского «Do What I Mean»). DWIM требует, чтобы система работала предсказуемо, чтобы пользователь заранее интуитивно понимал, какое действие выполнит программа после получения его команды.
Назначение интерфейсных механизмов платформы 1С:Предприятие заключается в том, чтобы обеспечить взаимодействие пользователя с прикладным решением. В 1С:Предприятии реализована собственная оконная система, учитывающая особенности автоматизации экономической и управленческой деятельности предприятий и ориентированная на обеспечение высокой эргономичности и эффективности работы с бизнес–приложениями.
В числе возможностей оконной системы – поддержка прикрепленных, плавающих и прячущихся окон, выборочного режима максимизации окон (не предусмотренного в классической Windows–модели), соединяемых MDI–окон и др. Важной особенностью является поддержка модальности, допускающей открытие немодальных форм.
Оконная система, используемая в 1С:Предприятии 8, ориентирована на обеспечение высокой эргономичности при работе с прикладными решениями и содержит специальные возможности, не поддерживаемые классической Windows–моделью. Окна, используемые в прикладных решениях, могут иметь несколько разных состояний, которые определяют поведение этих окон (рисунок 6).
Рисунок 6. Виды окон
Пользователь может изменять состояние окна в соответствии со своими предпочтениями и восстанавливать исходное положение окна, определенное в системе.
Окно, находящееся в обычном состоянии может перемещаться только в пределах главного окна прикладного решения. Например, окно списка справочника Контрагенты может перемещаться только в пределах главного окна. Окно, находящееся в свободном состоянии, может располагаться в любом месте экрана. Например, окно элемента справочника Контрагенты может перемещаться по всему экрану. Окно, находящееся в прикрепленном состоянии, может закрепляться на одной из сторон главного окна прикладного решения и перемещается по экрану вместе с ним. Например, окно списка справочника Контрагенты прикреплено к левой стороне главного окна. Окно, находящееся в прячущемся состоянии, тоже может закрепляться на одной из сторон главного окна, но вдобавок, принимает минимальные размеры, когда не используется. Например, окно списка справочника Контрагенты минимизировано на левой стороне главного окна. Окна могут быть "склеены" друг с другом, при этом они объединяются в одно окно, в котором располагаются горизонтально или вертикально. Например, окна списка справочника и элемента справочника Контрагенты "склеены". Окна могут быть сложены в одно окно с закладками. Выбирая ту или иную закладку можно активизировать нужное окно. Например, окна списка справочника и элемента справочника Контрагенты сложены с закладками, которые расположены внизу окна. Оконная система 1С:Предприятия предлагает собственную схему максимизации обычных окон, которая заменяет собой стандартную для Windows–приложений схему. Теперь максимизация одного окна не влечет за собой максимизацию всех обычных окон. Например, окно списка справочника Контрагенты максимизировано, в то время как окно элемента справочника Контрагенты имеет обычные размеры. Платформа 1С:Предприяитя поддерживает возможность программного управления способом отображения открываемых окон. Новые окна могут быть отображены одним из трех способов:
а) максимизированное;
б) нормальное;
в) имизированное.
Наряду с этим существует возможность программно запретить изменять способ отображения окна. В этом случае кнопки изменения состояния окна будут недоступны для пользователя.
Оконная система 1С:Предприятия поддерживает специальный режим отображения окна – режим рабочего стола. В этом режиме открытое окно занимает все свободное пространство главного окна приложения, не имеет заголовка окна и не отображается в списке открытых окон.
При открытии такого окна в модальном режиме оно занимает все пространство экрана, перекрывая панели 1С:Предприятия и панели Windows.
Такой режим может быть использован для создания специализированных рабочих мест (например, рабочего места кассира).
Формы в 1С:Предприятии служат для отображения и редактирования информации, содержащейся в базе данных. Формы могут генерироваться системой автоматически или создаваться разработчиком. Для выполнения стандартных действий с данными могут быть назначены формы для всех объектов прикладного решения.
Формы в 1С:Предприятии предназначены для отображения и редактирования информации, содержащейся в базе данных. Формы могут принадлежать конкретным объектам прикладного решения или существовать отдельно от них и использоваться всем прикладным решением в целом. Например, справочник Контрагенты может иметь несколько форм, которые будут использоваться для определенных целей – редактирования элемента справочника, отображения списка и т.д. (рисунок 7).
Рисунок 7. Окно редактирования
Наряду с этим, могут существовать общие формы, не принадлежащие конкретным объектам прикладного решения (рисунок 8).
Рисунок 8. Общие формы
Каждый объект прикладного решения может использоваться для выполнения некоторых стандартных действий. Например, для любого справочника может потребоваться отображать список его элементов, отображать отдельные элементы справочника, отображать группу справочника, выбирать элементы и группы элементов из справочника. Для любого документа список таких действий будет гораздо меньше: просмотр списка документов, выбор из списка документов и просмотр отдельного документа.
Чтобы обеспечить выполнение таких стандартных действий с данными объектов прикладного решения, для каждого из них существует набор основных форм, которые будут использоваться при выполнении соответствующих действий. Основной может быть назначена любая из форм, подчиненных этому объекту.
Важной особенностью системы 1С:Предприятие является механизм форм по умолчанию. Этот механизм освобождает разработчика от необходимости создания всех возможных форм для каждого из объектов прикладного решения. Разработчику достаточно создать новый объект прикладного решения, а система сама сгенерирует в нужные моменты работы пользователя необходимые формы по умолчанию для отображения информации, содержащейся в этом объекте. Таким образом, разработчику нужно создавать собственные формы объектов прикладного решения лишь в том случае, если они должны иметь отличия (другой дизайн или специфическое поведение) от форм, генерируемых системой по умолчанию.
Принадлежность формы тому или иному объекту прикладного решения не определяет состав данных, которые отображаются в форме. То, что форма принадлежит, например, справочнику Контрагенты, позволяет назначить ее одной из основных форм для этого справочника, но никак не определяет, какие же именно данные будет отображать эта форма, и каково будет ее поведение.
Для того чтобы связать форму с данными, используются реквизиты формы, в которых указывается перечень данных, отображаемых формой. Все формы, сами по себе, имеют одинаковое поведение, независимо от того, какие данные они отображают.
Для создания и изменения форм разработчик может использовать специальный редактор, обладающий удобными средствами графического конструирования форм различной сложности.
Для отображения и редактирования данных в форме используются разнообразные элементы управления, размещенные в форме. Система содержит специализированный набор элементов управления, ориентированный на выполнение бизнес–задач, обладающий характерными особенностями:
а) поля ввода с функциональными кнопками (выбор, очистка, открытие значений);
б) редактирование в одном элементе любых типов данных;
в) эффективные и удобные динамические списки для просмотра информации из базы данных, с поддержкой различных вариантов фильтрации;
г) современный эргономичный дизайн элементов управления.
Элементы управления предназначены для отображения и редактирования данных в форме. Также как и сама форма, элементы управления связаны с данными при помощи реквизитов формы (рисунок 9).
Чтобы обеспечить выполнение таких стандартных действий с данными объектов прикладного решения, для каждого из них существует набор основных форм, которые будут использоваться при выполнении соответствующих действий. Основной может быть назначена любая из форм, подчиненных этому объекту.
Рисунок 9. Связь элементов управления с данными
Благодаря этой связи у пользователя появляется возможность изменять данные, описанные в реквизитах формы. Кроме этого, связь элементов управления с данными определяет и поведение самих элементов управления.
Например, если элемент управления поле ввода, связать с данными, имеющими тип Строка, то оно будет иметь вид (рисунок 10).
Рисунок 10. Поле ввода
Если же поле ввода связать с данными, имеющими тип Дата, то внешний вид поля ввода изменится: появятся символы разделителей даты и дополнительная кнопка выбора (рисунок 11).
Рисунок 11. Поле ввода для даты
При нажатии на кнопку выбора будет открываться окно календаря, позволяющее выбирать нужную дату нажатием мыши (рисунок 12).
Рисунок 12. Выбор даты
Если же поле ввода связать с каким–либо объектом прикладного решения, то у него появятся две дополнительные кнопки: кнопка очистки и кнопка выбора, имеющая уже другую пиктограмму, т.к. предназначена для выбора нужного объекта прикладного решения из формы списка (рисунок 13).
Рисунок 13. Форма списка
Элементы управления, используемые в формах 1С:Предприятия, ориентированы на выполнение бизнес–задач. Например, поле ввода может иметь ряд дополнительных кнопок: выбора из списка, выбора, очистки, регулирования и открытия. Кроме этого, у поля ввода существует режим автоотметки незаполненного (подчеркивание красным пунктиром), который позволяет выделять поля, обязательные для заполнения пользователем (рисунок 14).
Рисунок 14. Поле ввода с дополнительными кнопками
Действия, выполняемые при нажатии дополнительных кнопок поля ввода, могут быть различными, в зависимости от типа данных, которые отображаются в этом поле; при этом кнопка выбора будет иметь разные пиктограммы (рисунок 15).
Рисунок 15. Виды поля вывода
Например, для поля ввода, содержащего число, нажатие на кнопку выбора будет приводить к открытию калькулятора (рисунок 16).
Рисунок 16. Поле ввода для числа
А для поля ввода, содержащего дату, нажатие той же самой кнопки будет приводить к открытию календаря (рисунок 17).
Рисунок 17. Ввод даты
Поскольку платформа 1С:Предприятия допускает хранение в полях базы данных различного типа, элементы управления также обеспечивают ввод и редактирование различных типов данных в одном элементе. Например, поле ввода, в которое могут быть введены данные различных типов, будет иметь следующий вид (рисунок 18).
Рисунок 18. Поля для ввода неопределенного типа
Специальная пиктограмма в кнопке выбора (Т) говорит о том, что для этого поля ввода еще не определен тип вводимых данных. При нажатии на эту кнопку система откроет специальное окно для выбора типа данных, которые будут содержаться в этом поле.
Командный интерфейс форм, используемых в прикладном решении, может формироваться автоматически на основе того, какие данные отображаются в форме и ее элементах управления.
Наполнение командных панелей реализовано таким образом, чтобы пользователь мог легко найти любые действия, доступные в конкретном режиме без ознакомления с документацией.
Табличный документ является мощным средством презентации любой информации и вывода ее на печать. Он обеспечивает не только эффективную подготовку печатных документов, но и просмотр их на экране в удобном для пользователя виде. Основные возможности табличного документа:
а) разнообразные возможности оформления отчета, включая тип и размер шрифта, цвет текста и фона, тип и цвет рамки, рисунки и многое другое;
б) в табличном документе могут быть группировки (как вертикальные, так и горизонтальные), с помощью которых можно отражать промежуточные итоги, например, объем продаж по каждому отделу. Пользователь может самостоятельно показывать и скрывать группы с помощью специальных маркеров. Есть возможность автоматически сдвигать текст в ячейке в соответствии с уровнем группировки;
в) поддерживается механизм расшифровок, когда при щелчке на строке или ячейке отчета формируется более детальный отчет или открывается объект базы данных;
г) у ячеек табличного документа могут быть примечания, содержащие дополнительную информацию. Ячейка с примечанием имеет маленький треугольник в правом верхнем углу. При наведении курсора мыши на ячейку примечание показывается во всплывающем окне;
д) в табличном документе может быть расположена сводная таблица, которая позволяет отобразить многомерные данные в виде плоской таблицы с вложенными заголовками;
е) в табличном документе могут быть расположены диаграммы различного вида для наглядного представления экономической информации в графическом виде;
ж) табличный документ может быть легко сохранен в файл MXL, а также в другие форматы, например, лист Excel, MXL7 и др.
В прикладных решениях 1С:Предприятия 8 наряду с табличными документами могут использоваться и текстовые документы для представления выходной информации пользователю. Система позволяет формировать их программно, на основании макетов, созданных разработчиком.
Важным преимуществом интерфейсного механизма 1С:Предприятия является возможность использования в формах разнообразных диаграмм для представления числовых данных в графическом виде. Использование диаграмм позволяет представлять итоговые данные в удобном для восприятия виде. Диаграммы акцентируют внимание пользователя на динамике изменения данных и помогают быстро производить относительное сравнение данных. Кроме этого, специализированные виды диаграмм могут отражать закономерности, обычно скрытые за большими объемами данных.
Встроенным языком поддерживается ряд процедур и функций, с помощью которых разработчик может обеспечить интерактивное взаимодействие с пользователем. Например, он может выводить на экран сообщения, предупреждения и информацию о ходе выполнения алгоритмов прикладного решения.
Разработчик может использовать сообщения для того, чтобы информировать пользователя о каких–либо событиях, произошедших в процессе выполнения алгоритмов прикладного решения (рисунок 19).
Рисунок 19. Окно сообщения
Сообщения выводятся в отдельное окно, расположенное по умолчанию в нижней области экрана. Каждое сообщение может иметь пиктограмму, обозначающую степень его важности. Текст, выводимый в окно сообщений, может быть скопирован и сохранен в текстовом документе на диске.
Предупреждения могут быть использованы для информирования пользователя о завершении выполнения длительных процедур или в других целях, требующих реакции со стороны пользователя (рисунок 20).
Рисунок 20. Окно предупреждения
Предупреждения выводятся в виде отдельного модального окна. Существует возможность задать тайм–аут, в течение которого система будет ожидать реакции со стороны пользователя.
В процессе выполнения длительных алгоритмов разработчик может выводить справочную информацию в панель состояния, расположенную по умолчанию в нижней части экрана (рисунок 21).
Рисунок 21. Панель состояния
Прикладное решение может содержать в себе несколько стилей, описывающих оформление форм. Любая форма может быть показана в каком–либо стиле. Это позволяет разработчику создавать и быстро изменять внешний вид одинаковых, по своему смыслу, форм, или всего прикладного решения в целом.
Платформа 1С:Предприятия 8 позволяет создавать пользовательские интерфейсы, которые облегчают работу пользователя. Каждый интерфейс содержит пункты меню и кнопки, с помощью которых пользователь вызывает те или иные функции прикладного решения. В процессе работы он может переключаться с одного интерфейса на другой, не покидая прикладного решения.
2.2 Аппаратные интерфейсы
Аппаратный интерфейс – устройство, преобразующее сигналы и передающее их от одного компонента оборудования к другому. Аппаратный интерфейс определяется набором электрических связей и характеристиками сигналов.
В компьютерной системе два участника – программное и аппаратное обеспечение. Программное обеспечение – это все программы, установленные на компьютере, а аппаратное обеспечение – узлы и оборудование, которые находятся внутри системного блока или подключены снаружи.
Взаимосвязь между участниками компьютерной системы называют интерфейсом. Взаимодействие между различными узлами – это аппаратный интерфейс, взаимодействие между программами – программный интерфейс, а взаимодействие между аппаратурой и программами – аппаратно–программный интерфейс.
В компьютере аппаратный интерфейс обеспечивают изготовители оборудования. Они следят за тем, чтобы все узлы имели одинаковые разъемы и работали с одинаковыми напряжениями. Согласование между программным и аппаратным обеспечением выполняет операционная система.
Используемый компьютер должен иметь следующие характеристики:
а) процессор – частота не менее 1Ггц;
б) оперативная память – не менее 512Мб;
в) жесткий диск – не менее 40Гб;
г) мышь;
д) клавиатура.
2.3 Программные интерфейсы
Программный интерфейс – система унифицированных связей, предназначенных для обмена информацией между компонентами вычислительной системы. Программный интерфейс задает набор необходимых процедур, их параметров и способов обращения.
Программный интерфейс – функциональность, которую некоторый программный компонент предоставляет другим программным компонентам. Можно различать два вида такой функциональности: та, что используется при создании прикладных программ, и та, что используется при создании системных компонентов. Первая обычно называется интерфейсом программирования приложений, вторая может называться интерфейсом программирования компонентов операционной системы или интерфейсом системного программирования. Кроме того, программные интерфейсы могут быть разно уровневыми, относясь либо к уровню программного кода, либо к уровню кода машинного.
Интерфейс прикладного программирования англ. Application Programming Interface, API – набор готовых констант, структур и функций, используемых при программировании пользовательских приложений и обеспечивающих правильное взаимодействие между пользовательским приложением и операционной системой.
Приложение вызывается из среды 1С:Предприятие 7.7. Выгруженный файл в формате XML с расширением .isd открывается из программы ISID (версия 1.6.1.23 от 23.05.2008г).
Программные компоненты, необходимые для функционирования приложения:
а) операционная система – Windows98 и выше;
б) «1С:Предприятие 7.7»;
в) программа для выгрузки форм налоговой отчетности ISID;
г) аппаратный ключ HASP.
HASP – это мультиплатформенная аппаратно–программная система защиты программ и данных от нелегального использования и несанкционированного распространения разработанная компанией Aladdin Knowledge Systems Ltd. По утверждению www.softkey.info на 2005 год являлся одним из самых широкоприменяемых аппаратных средств для защиты ПО.
Защита HASP включает в себя:
а) электронный ключ HASP;
б) специальное программное обеспечение для «привязки» к электронному ключу, защиты приложений и для кодирования данных;
в) схемы и методы защиты программ и данных, обнаружения и борьбы с отладчиками, контроля целостности программного кода и данных.
HASP поддерживает большинство платформ, операционных систем и обеспечивает разработчикам широкий набор средств для защиты программного обеспечения.
Электронные ключи HASP выпускаются в различных исполнениях:
а) USB–брелок;
б) LPT–ключ с возможностью «прозрачного» подключения других ключей и устройств;
в) PCMCIA–карта;
г) внутренняя плата стандарта PCI и ISA.
Существуют средства обхода аппаратной защиты – битхак (например Sable) или программное эмулирование как самого ключа, так и, например, USB–шины с виртуальным ключом, их используют не только нелегальные пользователи, но и легальные – в ситуации, когда использование аппаратной защиты невозможно или нежелательно. В любом случае использование методов обхода защиты нелегально с точки зрения лицензионных соглашений и карается уголовной отвественностью в соответствии с местным законодательством.
Электронный ключ (также аппаратный ключ, иногда донгл от англ. dongle) – аппаратное средство, предназначенное для защиты программного обеспечения (ПО) и данных от копирования, нелегального использования и несанкционированного распространения.
Электронный ключ – небольшое по размерам аппаратное устройство.
Основой данной технологии является специализированная микросхема ASIC, либо специализированный защищённый микроконтроллер, имеющие уникальные для каждого ключа алгоритмы работы. Донглы также имеют защищённую энергонезависимую память небольшого объёма, более сложные устройства могут иметь встроенный криптопроцессор (для аппаратной реализации шифрующих алгоритмов), часы реального времени. Аппаратные ключи могут иметь различные форм–факторы, но чаще всего они подключаются к компьютеру через USB–, LPT– или PCMCIA–интерфейсы.
Принцип действия электронных ключей таков. Ключ присоединяется к определённому интерфейсу компьютера. Далее защищённая программа через специальный драйвер отправляет ему информацию, которая обрабатывается в соответствии с заданным алгоритмом и возвращается обратно. Если ответ ключа правильный, то программа продолжает свою работу. В противном случае она может выполнять любые действия, заданные разработчиками – например, переключаться в демонстрационный режим, блокируя доступ к определённым функциям.
Для обеспечения безопасности сетевого ПО служат специальные электронные ключи. Для защиты и лицензирования (ограничения числа работающих в сети копий программы) сетевого продукта достаточно одного ключа на всю локальную сеть. Ключ устанавливается на любой рабочей станции или сервере сети.
Многие компании, работающие в области защиты информации, предлагают свой взгляд на то, каким должен быть электронный ключ. На российском рынке наиболее известны следующие линейки продуктов (в алфавитном порядке): Guardant от компании «Актив», HASP от Aladdin, LOCK от Astroma Ltd., Rockey от Feitian, SenseLock от Seculab, Sentinel от SafeNet и др.
Технология защиты от несанкционированного использования ПО построена на реализации запросов из исполняемого файла или динамической библиотеки к ключу с последующим получением ответа (и, если предусмотрено, анализом этого ответа). Вот некоторые характерные запросы:
а) проверка наличия подключения ключа;
б) считывание с ключа необходимых программе данных в качестве параметра запуска;
в) запрос на расшифрование данных или исполняемого кода, необходимых для работы программы (предварительно разработчик защиты шифрует часть кода программы и, понятно, непосредственное выполнение такого зашифрованного кода приводит к ошибке);
г) проверка целостности исполняемого кода путём сравнения его текущей контрольной суммы с оригинальной контрольной суммой, считываемой с ключа;
д) запрос к встроенным в ключ часам реального времени (при их наличии) и т. д.
Стоит отметить, что некоторые современные ключи (ключи Senselock от Seculab, Rockey6 Smart от Feitian) позволяют разработчику хранить отдельные части кода приложения (например, недетерминированные специфические алгоритмы разработчика, получающие на вход большое число параметров) и исполнять их в самом ключе на его собственном микропроцессоре. Помимо защиты ПО от нелегального использования такой подход позволяет защитить используемый в программе алгоритм от изучения и клонирования конкурентами.
Как следует из вышесказанного, «сердцем» электронного ключа является шифрующий алгоритм. Тенденция состоит в том, чтобы реализовывать его аппаратно – это затрудняет создание полного эмулятора ключа, так как ключ шифрования никогда не передается на выход донгла, что исключает возможность его перехвата.
Алгоритм шифрования может быть секретным или публичным. Секретные алгоритмы разрабатываются самим производителем средств защиты, в том числе и индивидуально для каждого заказчика. Главным недостатком использования таких алгоритмов является невозможность оценки криптографической стойкости. С уверенностью сказать, насколько надёжен алгоритм, можно было лишь постфактум: взломали или нет. Публичный алгоритм, или «открытый исходник», обладает криптостойкостью несравнимо большей. Такие алгоритмы проверяются не случайными людьми, а рядом экспертов, специализирующихся на анализе криптографии. Примерами таких алгоритмов могут служить широко используемые ГОСТ 28147–89, AES, RSA, Elgamal и др.
Также существует технология создания «Внешних компонент», которые могут быть разработаны сторонними разработчиками для расширений функций «1С:Предприятие». Первоначально эта технология была создана для работы с многочисленным торговым оборудованием. В настоящее время, в связи с гибкостью данной технологии, внешние компоненты создаются для решения практически любых задач из числа тех, для решения которых «1С:Предприятие» изначально не способна. Так же внешние компоненты активно применяются для выделения «ключевого» функционала конфигураций в закрытый модуль, в качестве борьбы с несанкционированным копированием и модификацией.
Для большинства семейств аппаратных ключей разработаны автоматические инструменты (входящие в SDK), позволяющие защитить программу «за несколько кликов мыши». При этом файл приложения «оборачивается» в собственный код разработчика. Реализуемая этим кодом функциональность варьируется в зависимости от производителя, но чаще всего код осуществляет проверку наличия ключа, контроль лицензионной политики (заданной поставщиком ПО), внедряет механизм защиты исполняемого файла от отладки и декомпиляции (например, сжатие исполняемого файла) и др.
Важно то, что для использования автоматического инструмента защиты не требуется доступ к исходному коду приложения. Например, при локализации зарубежных продуктов (когда отсутствует возможность вмешательства в исходный код ПО) такой механизм защиты незаменим, однако он не позволяет реализовать надёжную, гибкую и индивидуальную защиту.
Помимо использования автоматической защиты, разработчику ПО предоставляется возможность самостоятельно разработать защиту, интегрируя систему защиты в приложения на уровне исходного кода. Для этого в SDK включены библиотеки для различных языков программирования, содержащие описание функциональности API для данного ключа. API представляет собой набор функций, предназначенных для обмена данными между приложением, системным драйвером (и сервером в случае сетевых ключей) и самим ключом. Функции API обеспечивают выполнение различных операций с ключом: поиска, чтения и записи памяти, шифрования и расшифрования данных при помощи аппаратных алгоритмов, лицензирования сетевого ПО и т. д.
Умелое применение данного метода обеспечивает достаточно высокий уровень защищённости приложений. Нейтрализовать защиту, встроенную в приложение, достаточно трудно вследствие её «размытости» в теле программы.
2.4 Детальные требования
2.4.1 Функциональные требования (по выбору)
Модуль должен быть предназначен для выполнения следующих основных технологических операций:
а) конфигурация не должна быть изменена;
б) данные нужно получать из бухгалтерских итогов за требуемый период;
в) данные должны обрабатываться корректно и сохраняться во внешний файл с расширением isd;
г) выгружаемый файл должен соответствовать шаблону документов налоговой отчетности и должен быть в формате XML;
д) при формировании операции на забалансовые счета за выбранный период(квартал) она должна быть только одна;
е) если пользователь формирует дважды и более выгрузку за один и тот же период в одну и ту же папку, отчеты должны перекрывать друг друга. А имеющаяся за этот период операция не должна учитываться при расчете и должна быть удалена;
ж) подоходный налог должен рассчитываться по удельному весу;
и) из струдников должны выбираться только нерезиденты;
к) процент подоходного налога за месяц не должен превышать 100% от расчетного;
л) шаблон создаваемой таблицы должен быть переформирован в текст и перекодирован в кодировке UTF8;
м) в системе должно быть 2 бухгалтерских запроса;
н) т.к. компания работает по старому плану счетов (КСБУ), основной бухгалтерский запрос должен быть сформирован по 681–му счету с корреспондирующими ему счетами;
п) второй бухгалтерский запрос должен быть сформирован по новому забалансовом счетам НЕ, для корректного расчета подоходного налога;
р) состояние отчета, последний период за который формировался отчет, должно сохраняться. Для этого создадим текстовый файл, в котором будет храниться последний квартал, за который пользователь формирует отчет. Файл будет называться 1.txt;
с) благодаря наличию текстового файла 1.txt, будет производиться проверка на доступность периода, за который формируется выгрузка. Пользователь не сможет сформировать выгрузку за первый квартал, а потом сразу за третий или четвертый. Система позволит сформировать отчет только последовательно т.е. сначала за первый квартал, затем за второй, затем за третий и т.д. При этом пользователь всегда свободно может выбрать более ранний период. Но последующие придется опять считать последовательно. Это сделано для корректной выгрузки данных.
2.4.2 Нефункциональные требования
Чтобы исключить некорректную обработку данных, в системе предусмотрена блокировка выбираемого периода. Расчет будет производиться последовательно, т.е. с начала года и до конца, поквартально. Для пользователя будет предусмотрен ввод следующего периода только если сформирована выгрузка за предыдущий, но пользователь может в любой момент может выбрать более ранний период. Т.к. информация должна быть сформирована либо правильно, либо никак, в системе предусмотрено использование транзакции, если система дает сбой или происходит вылет из программы, система производит откат. Что способствует предотвратить аварийное завершение работы и последующую переиндексацию базы.
Т.к. модуль должен разрабатываться для 1С Предприятия, то возникает ограничение по платформе Windows: это платформа Windows 2000, Windows XP, Windows Vista и др. версии платформы выше Windows 98.
Приложение формирует список сотрудников, отталкиваясь от того являются ли они нерезидентами или нет, т.е. система не выбирает сотрудников, которые являются гражданами РК. Для этого существует другая форма налоговой отчетности (Форма 201). Также программа подсчитывает подоходный налог, начисляемый исключительно по удельному весу, а не прямолинейно.
3 Специальная часть
3.1 Моделирование предметной области
Моделирование предметной области – один из начальных этапов проектирования системы, необходимый для выявления, классификации и формализации сведений обо всех аспектах предметной области, определяющих свойства разрабатываемой системы (Приложение А).
Предметной областью разрабатываемой системы является процесс учета начисления и выплаты заработной платы сотрудникам и начисление налогов.
Актуальность учета денежных средств на предприятии очевидна в нынешних условиях казахстанской действительности. Связано это, прежде всего, с переходом от командной модели экономики, при которой бухгалтерский учет денежных средств осуществлялся централизованно, к рыночным отношениям. Современный рынок предъявляет серьезные требования к предприятию. Сложность и высокая подвижность происходящих на нем процессов создают новые предпосылки для более серьезного применения учета денежных средств.
Своевременная сдача налоговой отчетности и верность предоставляемых данных, являются основными в ведении бухгалтерского учета на предприятии.
3.2 Спецификация вариантов использования
3.2.1 Распределение требований по субъектам и вариантам использования
Прецедент (Use case) представляет собой некий целостный набор функций, имеющих определенную ценность для субъекта. Субъект, который не общается с прецедентом, не имеет смысла, однако обратное утверждение не всегда верно (т.е. прецедент, который не общается с субъектом – вещь допустимая). Могут существовать некоторые прецеденты, которые обобщают или уточняют основной прецедент и не взаимодействуют непосредственно с субъектами. Они используются как внутренние в модели прецедентов и помогают основному прецеденту выработать результат, предоставляемый субъекту.
Прецеденты можно вывести в результате идентификации задач для субъекта. Для этого стоит задаться вопросом : «Каковы обязанности субъекта по отношению к системе и чего он ожидает от системы?». Прецеденты также можно определить в результате непосредственного анализа функциональных требований. Во многих случаях функциональное требование отображается непосредственно в прецедент.
Построим таблицу, которая распределяет функциональные требования по субъектам и прецедентам. Некоторые потенциальные бизнес–функции могут выходить за рамки приложения – они не подлежат преобразованию в прецеденты.
В таблице 2 функциональные требования распределены по субъектам и прецедентам [10].
Таблица 2
Функциональные требования распределены по субъектам и прецедентам
Требования | Субъект | Прецедент |
Пользователь выбирает период, за который будет производиться расчет остатков. Система производит расчет остатков и сохраняет их в таблицу значений. | Пользователь | Получение остатков и сохранение |
Данные из таблицы значений обрабатываются и изменяются. Результат изменений выводится на экран пользователя в виде таблицы. Затем измененные данные снова сохраняются в таблицу значений. | Пользователь | Обработка данных |
Система создает шаблон XML–документа, заполняет его из таблицы значений, перекодирует текст и выгружает его во внешний XML–файл. | Пользователь | Получение выходных данных |
3.2.2. Описательная спецификация варианта использования
Каждый прецедент должен быть описан с помощью документально зафиксированного потока событий (flow of events). Описание должно содержать следующие разделы:
а) краткое описание;
б) участвующие субъекты;
в) предусловия, необходимые для инициирования прецедентов;
г) детализированное описание потока событий, которое включает:
1) основной поток, который можно разбить для того, чтобы показать подчиненные потоки событий;
2) альтернативные потоки для определения исключительных ситуаций.
Решение представлено в таблицах 3 – 5, в которых находится описательная спецификация всех прецедентов.
Таблица 3
Описательная спецификация прецедента «Получение остатков и сохранение»
Прецедент | Получение остатков и сохранение |
Краткое описание | Прецедент дает возможность пользователю выбрать период расчета остатков. Остатки выбираются из системы и сохраняются в ней в виде таблицы значений. |
Субъекты | Пользователь |
Предусловия | Пользователь выбирает нужный отчет из списка регламентированной отчетности. В открывшемся окне отчета пользователь заполняет поля бухгалтера, ответственного лица, код налогового органа и выбирает метод расчета и каталог сохранения документа. После этого пользователь устанавливает период, за который будут выбираться остатки. |
Основной поток | Начало прецедента совпадает с желанием пользователя сформировать налоговый отчет. Система просит ввести Ф.И.О. бухгалтера, ответственного лица, код налогового органа, метод расчета, а также период, за который будут выбираться остатки. Клиент выбирает функцию «Сформировать», после чего система перебирает данные и выгружает остатки за выбранный период в таблицу значений. |
Альтернативные потоки | Пользователь инициирует функцию «Сформировать» до того, как введет всю необходимую информацию. Система отображает на экране сообщение об ошибке и просит ввести пропущенную информацию. |
Постусловия | Если прецедент был успешным, данные сохраняются в системе в виде таблицы данных, иначе состояние системы остается неизменным. |
Таблица 4
Описательная спецификация прецедента «Обработка данных»
Прецедент | Обработка данных |
Краткое описание | Прецедент обрабатывает и изменяет данные в таблице значений, и сохраняет изменения. |
Субъекты | Пользователь |
Предусловия | В базе данных 1С:Предприятия должны быть остатки на заданный период, которые должны находиться в таблице значений. |
Основной поток | Начало прецедента совпадает с окончанием прецедента «Получение остатков и сохранение». Система перебирает строки из таблицы значений и соответственно алгоритму изменят их, а затем снова записывает в таблицу значений. После обработки на экран выводится измененная таблица. |
Альтернативные потоки | Если данных в системе не было или же они были некорректны, система не записывает в таблицу ничего и выводит на экран пустую таблицу. |
Постусловия | Если прецедент был успешным, измененные данные сохраняются в системе в виде таблицы данных и выводятся на экран в виде таблицы, иначе состояние системы остается неизменным и на экране появляется пустая таблица. |
Таблица 5
Описательная спецификация прецедента «Получение выходных данных»
Прецедент | Получение выходных данных |
Краткое описание | Прецедент сохраняет данные из таблицы значений во внешний файл. |
Субъекты | Пользователь |
Основной поток | Начало прецедента совпадает с выводом на экран таблицы. После нажатия пользователем кнопки «ОК» система перебирает строки из таблицы значений и заполняет шаблон XML–документа. Затем шаблон преобразуется в текст, перекодируется в кодировку UTF–8 и выгружается во внешний файл в фориате XML и с расширением .isd. |
Альтернативные потоки | Если документ с таким именем уже есть по указанному адресу, система предлагает заменить имеющийся на новый. Если пользователь нажимает кнопку «ОК», система перезаписывает имеющийся файл. В противном случае, система оставляет файл без изменения. |
Продолжение таблицы 5 | |
Прецедент | Получение выходных данных |
Постусловия | Если прецедент был успешным, создается или же перезаписывается внешний XML–документ. |
3.2.3 Соответствие функциональных требований и классов–сущностей
Систему образует системное состояние. Состояние является функцией содержимого системной информации в заданный момент времени – это функция системного текущего набора объектов–экземпляров.
Определение внутреннего состояния системы дается в модели классов (class model). К элементам, принимающим участие в моделировании классов, относятся сами классы, атрибуты и операции классов, ассоциации, агрегации и композиции, а также обобщения. Диаграмма классов (class diagram) дает обобщенное визуальное представление обо всех этих элементах модели.
Классы–сущности определяют существо любой информационной системы. Анализ требований направлен преимущественно на выявление классов–сущностей.
Следуя подходу, принятому при установлении субъектов и прецедентов, построим таблицу 6, которая поможет выявить классы в результате анализа функциональных требований. В таблице функциональным требованиям поставлены в соответствие классы–сущности.
Таблица 6
Описательная спецификация прецедента «Соответствие функциональных требований и классов–сущностей»
Требование | Класс–сущность |
Для формирования отчета нужна информация, содержащаяся в базе данных | БД |
Чтобы получить информацию нужно обратиться к базе данных, выполнить запрос и получить требуемые данные из базы данных | Бухгалтерские итоги |
После получения данных их нужно откорректировать и модернизировать в соответствии с требованиями заказчика | Обработка |
Конечные данные нужно выгрузить и сохранить во внешнем файле | Выгрузка данных |
3.3 Моделирование динамических аспектов системы
3.3.1 Диаграммы последовательности и кооперации
Диаграмма последовательности, Sequence diagram – диаграмма, на которой изображено упорядоченное во времени взаимодействие объектов. В частности, на ней изображаются участвующие во взаимодействии объекты и последовательность сообщений, которыми они обмениваются (рисунок 22).
Рисунок 22. Диаграмма последовательностей
Пользователь открывает отчет и запускает его. Система выполняет запрос к хранящимся данным благодаря классу «Бухгалтерские итоги», выбирает итоги и получает результат. После данные заполняются и модернизируются. На последнем этапе происходит создание внешнего файла, в который выгружаются полученные данные.
3.4 Статический вид системы
3.4.1 Диаграммы вариантов использования
Диаграмма прецедентов приписывает прецеденты к субъектам. Она также позволяет пользователю установить отношения между прецедентами, если они существуют.
Диаграммы прецедентов – основной метод визуализации для модели поведения системы. Воспользовавшись предыдущей информацией составим диаграмму прецедентов (рисунок 23).
Рисунок 23. Диаграмма прецедентов.
Из диаграммы прецедентов мы видим, что пользователь связан с прецедентом «Получение данных и их обработка», который в свою очередь связан с тремя основными этапами обработки данных, т.е. с 3 прецедентами. Пользователь не может напрямую обращаться к этим трем прецедентам.
3.4.2 Диаграмма классов
Диаграмма классов, Class diagram – статическая структурная диаграмма, описывающая структуру системы, она демонстрирует классы системы, их атрибуты, методы и зависимости между классами.
Подставив в соответствие функциональные требования и классы–сущности составим диаграмму классов (рисунок 24).
Рисунок 24. Диаграмма классов
Из диаграммы классов видно, что у нас имеется 4 класса. Класс «Обработка» обращается к классу «Бухгалтерские итоги», которые в свою очередь обращаются к классу «БД». Это значит, что при выполнении обработки поднимаются бухгалтерские итоги из системы за выбранный период. Также класс «Обработка» обращается к классу «Выгрузка данных», что соответствует упорядочиванию данных и формированию внешнего файла.
Класс «Бухгалтерские итоги» имеет три атрибута и три метода. Атрибут «Период» задает временной отрезок, за который будут подняты бухгалтерские итоги из базы. Атрибут «Субконто» задает аналитику из списка предопределенных субконто в программе, например субконто сотрудники. Атрибут «Счет» показывает счет начисления заработной платы из плана счетов, по которому будет сформирован запрос. Метод «Выполнить запрос» обращается к системе при помощи атрибутов и запрашивает нужную информацию. При помощи методов «Выбрать результат» и «Получить результат» осуществляется перебор полученных данных.
Класс «Обработка» имеет один атрибут и 2 метода. Атрибут «Таблица» служит для заполнения данных, которое происходит при применении метода «Заполнение таблицы в результате выполнения запроса». Потом при использовании метода «Корректировка и дополнение данных в таблице» данные в таблице систематизируются и упорядочиваются.
Класс «Выгрузка данных» имеет 2 атрибута и 4 метода. После корректировки данных в таблицы создается шаблон, в который подставляются данные из таблицы методом «Заполнение данных из таблицы в шаблон». Так как выходной файл должен быть в формате XML, полученный шаблон преобразуется в текст и перекодируется в кодировке UTF8 при помощи методов «Преобразование шаблона в текст» и «Перекодировка текста». Завершающим этапом является сохранение перекодированного текста во внешний файл при помощи метода «Создание внешнего файла».
3.5 Проектирование пользовательского интерфейса
3.5.1 Принципы проектирования GUI–интерфейса, ориентированного на пользователя
Интерфейс разработанного ППО должен быть интуитивно понятен пользователю и удобен в использовании. Эскиз интерфейса (рисунок 25) очень прост и понятен по структуре.
Рисунок 25. Эскиз интерфейса
На рисунке видно, что после инициализации приложения, пользователю нужно ввести данные для корректного и полного отображения выходного потока данных. После заполнения всех необходимых полей пользователь нажимает кнопку сформировать и тем самым запускает обработку. После ее завершения система сообщает пользователю об успешном завершении работы и просит сохранить выходной файл. Если пользователь заполнил не все поля или же заполнил их неверно, система выдает сообщение об ошибке и предоставляет возможность ввести данные повторно. Более точно весь алгоритм описан в диаграмме состояний интерфейса.
Диаграмма состояний интерфейса:
а) запуск приложения/ инициализация исходного состояния;
б) нажатие на кнопку «Сформировать»[если значение периода допустимо]/ формирование таблицы значений;
в) нажатие кнопки «ОК»/ формирование выходного файла;
г) нажатие кнопки «Очистить»/ восстановление исходного состояния;
д) нажатие на кнопку «Сформировать»[если значение периода недопустимо]/ Обработка ошибки;
е) нажатие на кнопку «ОК»/ Возврат в состояние ввода;
ж) нажатие на кнопку «Отмена»/ Завершение работы приложения.
3.5.2 Диалоговые GUI–окна: главное и вторичные
При создании приложения для диалога с пользователем был использован оконный интерфейс (Рисунок). Окно имеет прямоугольную форму.
Интерфейс предоставляет пользователю возможность выбрать основные настройки, которые будут заполняться по умолчанию в выгружаемом файле (например, тип реестра, ответственное лицо и код налогового органа). Также пользователь сможет выбрать период, за который будет осуществляться выгрузка и каталог, в который будет сохраняться выгруженный файл. Эти возможности реализуются с помощью простых элементов интерфейса, таких как поле для ввода, переключатель, реквизит диалога и текст (рисунок 26). Цвета, выбираемые при разработке интерфейса, являются стандартными: светло–серый фон, черный и синий текст, поля для ввода белого цвета.
Рисунок 26. Экранная форма приложения
3.6 Тестирование
Для тестирования откроем отчет, который находится на закладке отчеты/регламентированные (рисунок 27).
Откроется окно со списком отчетов, в котором выберем нужный нам (рисунок 28).
Далее заполним все необходимые поля, а именно поле тип реестра, поля каталог сохранения, код налогового органа и ответственное лицо. Выберем период, за который будет сформирован отчет (рисунок 29).
В результате выгрузки, по указанному адресу создается документ. Откроем программу ISID и в меню открыть, укажем путь к нашему файлу (рисунок 30).
После открытия, мы видим окно налоговой формы (рисунок 31).
Слева представлена структура документа, откроем дополнительную форму и посмотрим заполнение (рисунок 32).
Вывод: т.к. выгрузка и заполнение формы было задачей данного проекта, на основании всего выше описанного можно сказать, что тестирование прошло успешно. Код программы представлен ниже (Приложение Б).
Рисунок 27. Закладка отчеты
Рисунок 28. Список регламентированных отчетов
Рисунок 29. Электронная форма выгрузки
Рисунок 30. Открытие файла
Рисунок 31. Открытая форма налоговой отчетности в программе ISID
Рисунок 32. Дополнительная форма с разверткой по сотрудникам
4 Экономическая часть
4.1 Технико–экономическое обоснование создания ПО
Наверное, уже трудно найти бухгалтера в странах СНГ, который бы не слышал о продукте фирмы 1С предназначенным изначально для автоматизации бухгалтерского учета. Мнения об этом продукте складывались у каждого как от своих впечатлений при самостоятельной работы с программным продуктом, так и от слухов и рассказов знакомых. Как я заметила, мнения разделяются на мнения людей занимающихся разработкой внедрением решений на платформе 1С:Предприятие и мнения людей занимающихся ведением бухгалтерского учета в 1С:Предприятие. Это две группы людей, которые в общем случае имеют противоречивые суждения о программе.
Налоги – один из главных инструментов государства в осуществлении экономической и социальной политики. Решение этих задач прямо зависит от объемов поступлений налогов.
Анализ поступлений налогов, тенденций развития налогооблагаемой базы и составляющих ее элементов и на этой основе прогнозирование объемов поступлений платежей в бюджет на определенный период являются важнейшей задачей экономических ведомств, финансовых органов на всех уровнях управления.
Целью разработки является создание приложения, которое бы автоматизировало заполнение форм налоговой отчетности из программы 1С:Предприятие в программу налоговой отчетности ИСИД.
Строительная компания ведет строительство больших жилых комплексов. По специфике работы, в компании работают много иностранных специалистов(около 600 человек). На фирме ведется бухгалтерский учет в программе 1С:Предприятие и налоговый учет в программах Эфно, Исид, НДС. Бухгалтерский и налоговый учеты ведутся раздельно. Для налоговой отчетности по нерезидентам нужно заполнять форму налоговой отчетности 201.01. Для облегчения заполнения этой формы налоговой отчетности нужно организовать механизм получения, обработки данных из программы 1С:Предприятие и выгрузку и сохранение данных в формате документов программ налоговой отчетности.
Разработанный программный модуль сокращает время работы при формировании форм налоговой отчетности и позволяет избежать ошибок, связанных с «человеческим фактором», тем самым, увеличивая эффективность работы бухгалтеров.
Модуль полностью интегрирован в систему, что означает взаимосвязь с главными объектами в 1С:Предприятии.
Данный программный модуль дает:
а) сопряжение с программой «ISID»;
б) автоматизация процесса получения требуемых данных из системы и формирования XML–файла;
в) анализ в разрезе данных;
г) контроль над данными.
Благодаря разработанной подсистеме, предприятие, кроме вышесказанного, получает:
а) сокращение времени и людских ресурсов на сбор необходимых данных, их форматирования, контроля и т.д;
б) снижение вероятности возникновения ошибок, связанных с человеческим фактором (ручной сбор данных);
в) сокращение затрат на электроэнергию, транспорт, печать и т.д.
В этой главе выполняется организационно–экономический расчет затрат на разработку подсистемы. На основе данных расчетов можно будет сделать вывод о целесообразности внедрения данного проекта. В таблице 7 указаны этапы работ в проекте [11].
Таблица 7
Этапы работ
Стадии разработки | Этапы работ | Содержание работ | Виды затрат |
1 Техническое задание | Научно–исследовательские работы | Определение структуры входных и выходных данных. Предварительный выбор методов решения задач. Определение требований к техническим средствам. | Затраты по подбору и изучению научно–технической литературы, проведению исследований аналогов, составлению методики выполнения работ |
| Разработка и утверждение технического задания | Определение требований к программе. Определение стадий, этапов и сроков разработки программы и документации на нее. Выбор языков программирования. Определение | Затраты на разработку технико–экономического обоснования, технического задания и плановой документации по теме. Другие прямые затраты, |
Продолжение таблицы 7 | |||
Стадии разработки | Этапы работ | Содержание работ | Виды затрат |
| | необходимости проведения научно–исследовательских работ на последующих стадиях. Согласование и утверждение | связанные с выполнение работ по разработке ПС, включая затраты на машинное время |
2 Технический проект | Разработка технического проекта | Уточнение структуры входных и выходных данных. Разработка алгоритма решения задачи. Определение формы представления входных и выходных данных. Определение семантики и синтаксиса языка. Разработка структуры программы. Окончательное определение конфигурации технических средств | Затраты по подбору и изучению научно–технической литературы, составлению методики выполнения работ |
| Утверждение технического проекта | Разработка плана мероприятий по разработке программ. Разработка пояснительной записки. Согласование и утверждение технического проекта | Затраты на разработку документации по теме. Другие прямые затраты, работ по разработке ПС, включая затраты на машинное время |
3 Рабочий проект | Разработка программы | Программирование и отладка программы. Разработка программных документов в соответствии с | Затраты по подбору и изучению научно–технической литературы Затраты на программирование |
Продолжение таблицы 7 | |||
Стадии разработки | Этапы работ | Содержание работ | Виды затрат |
| | требованиями ГОСТ 19.101–77 | и отладку ПС Затраты на разработку рабочей документации |
| Испытания программы | Разработка, согласование и утверждение программы и методики испытаний. Корректировка программы и программой доку–ментации по результатам испытаний | Затраты на опытную эксплуатацию и испытания, тестирование ПС, обобщение и анализ результатов разработки ПС. Другие прямые затраты, связанные с выполнением работ по разработке ПС, включая затраты на машинное время |
4 Внедрение | Подготовка и передача программы | Подготовка и передача программы и программной документации для сопровождения и (или) изготовления. Оформление и утверждение акта о передаче программы на сопровождение и изготовление. Передача программы в фонд алгоритмов и программ. | Затраты по передаче предприятиям опытных образцов ПС в целях их опытной эксплуатации и оказании помощи во внедрении в использовании опыта организации–разработчика ПС. Другие прямые затраты, связанные с выполнением работ по разработке ПС, включая затраты на машинное время. |
Данная таблица позволяет наглядно оценить виды затрат на каждой из стадий разработок, сопоставить их с определенными этапами и содержанием работ.
4.2 Расчет сметной стоимости разработки программных средств
4.2.1 Определение сметной стоимости разработки ПС
Затраты на разработку и внедрение системы рассчитываются по формуле:
C = Стз + Спр + Ср + Ст + Свн + Сктс, | (1) |
| |
где Cтз – затраты на разработку технического задания;
Спр – затраты на проектирование программного обеспечения;
Ср – затраты на программную реализацию;
Ст – затраты на тестирование подсистемы;
Свн – затраты на внедрение подсистемы;
Сктс – затраты на приобретение комплекса технических средств.
Расчет затрат на заработную плату персонала организации–разработчика ПС, непосредственно занятого разработкой ПС, осуществляется по формуле (2).
Определим фонд заработной платы по формуле:
Фонд заработной платы программиста (ФЗП) рассчитывается:
ФЗП = ЗП * N * M, | (2) |
где ЗП – соответствует 45 тыс. тенге/мес,;
N – соответствует 1 чел.;
M – соответствует 12 месяцам.
ФЗП = 45 * 1 * 12 = 540 (тыс. тенге).
Определим среднюю тарифную ставку специалиста–разработчика К3 по
формуле (3):
К3 = ФЗП / N * ФРВ = 540 / (1 * 250) = 2.16 (тыс. тенге/чел. дн.). | (3) |
где ФРВ – фонд рабочего времени.
Трудоемкость Т разработки ПС, чел. дн., определяется в соответствии с
нормами времени на разработку ПС, утвержденными в установленном порядке.
Основными факторами, влияющими на трудоемкость разработки программных средств вычислительной техники (ПС ВТ), являются:
а) объем ПС ВТ в тыс. условных машинных команд;
б) сложность разрабатываемого ПС ВТ;
в) степень новизны разрабатываемого ПС ВТ;
г) степень использования в разработке стандартных модулей, типовых программ и ПС ВТ.
Объем ПС ВТ определяется методом структурной аналогии по соответствующим каталогам аналогов ПС ВТ.
Сложность разрабатываемого ПС ВТ по 11 основным и 4 дополнительным характеристикам, отражающим сложность следующих компонентов ПС ВТ: языковый интерфейс, ввод–вывод, организация данных, режимы работы, операционная и техническая среда.
Степень новизны ПС ВТ определяется значением поправочного коэффициента:
а) А – принципиально новые ПС ВТ, в том числе разработанные на новом типе ЭВМ и (или) с использованием новой (для разработчика) операционной системы;
б) Б – ПС ВТ, являющиеся развитием определенного параметрического ряда ПС ВТ, разработанные на новом типе ЭВМ и (или) с использованием новой операционной системы;
в) В – ПС ВТ, являющиеся развитием определенного параметрического ряда ПС ВТ, разработанные на ранее освоенных типах ЭВМ и операционных системах.
По степени использования в разработке ПС ВТ типовых (стандартных) программ и охвата ими реализуемых функций разрабатываемого ПС ВТ выделены пять групп (таблица 8).
Затраты труда на разработку ПС ВТ (ТР) определяются по таблице 3 в зависимости от объема ПСВТ (тыс. условных машинных команд) с учетом сложности разрабатываемого ПС ВТ. Если значение объема той или иной функции не уточняется в зависимости от типа ПС ВТ, то это значение остается принятым в соответствии с Каталогом функций ПС ВТ. Общий объем разрабатываемого ПС ВТ определяется суммой объемов всех функций (таблица 9).
На основании значения (ТР), определенного из нормативной таблицы по значению объема для соответствующей группы сложности ПС ВТ и с учетом поправочного коэффициента сложности ПС ВТ (К сл) для данной группы, рассчитывается общая трудоемкость (Т0) разработки ПС ВТ по формуле Т0 = Ксл * ТР (таблица 9).
Объем ПС ВТ определяется методом структурной аналогии по соответствующим каталогам аналогов ПС ВТ.
Сложность разрабатываемого ПС ВТ по 11 основным и 4 дополнительным характеристикам, отражающим сложность следующих компонентов ПС ВТ: языковый интерфейс, ввод–вывод, организация данных, режимы работы, операционная и техническая среда.
Таблица 8
Характеристика программных средств
Название ПС ВТ | Степень новизны | Коэффициент использования ПС ВТ, Кт | Группа сложно–сти | Тип каталога аналогов | ||
Код | Особенности | КН | ||||
"Выгрузка форм налоговой отчетности" | В | 1) не новая ОС 2)не новая ЭВМ | 0,7 | 0,8 | 2 | ПС ВТ общего назначе–ния |
Характеристики ПС ВТ | Коэффициент сложности | |||||
1. Функционирование ПС ВТ в расширенной операционной среде (связь с другими) ПС ВТ | 0,08 | |||||
2. Интерактивный доступ | 0,06 | |||||
3. Наличие у ПС ВТ одновременно нескольких характеристик по таблице 1.1 (три): • режим работы в реальном времени; • обеспечение настройки ПС ВТ на изменение структурных входных и выходных данных; • оптимизационные расчеты. | 0,18 | |||||
Итого: | 0,32 |
Таблица 9
Основные функции программных средств
Наименование (содержание) функции | Номер функции по каталогу | Объем функций | |
по каталогу функций | уточненный | ||
1. Организация ввода информации | 101 | 600 | 600 |
2. Контроль, предварительная обработка и ввод информации | 102 | 1810 | 1900 |
3. Обработка входного заказа и формирование таблиц 3. Обработка входного заказа и формирование таблиц | 105 | 3675 | 9650 |
Продолжение таблицы 9 | |||
Наименование (содержание) функции | Номер | Объем функций | |
по каталогу | уточненный | ||
4. Обработка наборов записей базы данных | 204 | 7900 | 8230 |
5. Манипулирование данными | 207 | 26300 | 3560 |
6. Формирование файла | 309 | 7400 | 4800 |
Общий уточненный объем ПС ВТ | 28740 | ||
Затраты труда на разработку ПС ВТ (ТР), чел. дн. (норма 19 в таблице 3.1Кяз) | 3276 | ||
Общая трудоемкость, чел. дн. Т0 = Ксл * Tp = 0,32 * 3276 | 1048 |
Расчет трудоемкости каждой стадии (Т) разработки ПС ВТ производится по следующим формулам:
Т1 = L1 * К н * Т0 = 0,11 * 1048= 204 (тыс. тенге), где Т1, – трудоемкость стадии ТЗ. T3 = L3 * Кн * Т0 = 0,11 * 1048= 204 (тыс. тенге), где T3 – трудоемкость стадии ТП. Т4 =L4 * KH * Кт * Т0 =0,55 * 0,9 *1048= 916 (тыс. тенге), где Т4 – трудоемкость стадии РП; | (4) |
Li – удельный вес трудоемкости i–ой стадии разработки, причем сумма Li по i равна единице;
Кн – поправочный коэффициент, учитывающий степень новизны ПС ВТ;
Кт – поправочный коэффициент, учитывающий степень использования в разработке типовых (стандартных) программ и ПС ВТ (таблица 10).
Таблица 10
Поправочный коэффициент
Характеристика ПС ВТ | Стадии | |||||
ТЗ | ТП | РП | ВН | Итого | ||
1. Коэффициенты уд. весов трудоемкости стадии | 0,09 | 0,07 | 0,61 | 0,16 | | |
2. Трудоемкость Т (чел. дн) | 94 | 73 | 639 | 168 | 975 | |
3. Численность разработчиков по стадиям | 1 | 1 | 1 | 1 | | |
| ||||||
4. Срок реализации (лет) | 0,11 | 0,11 | 0,52 | 0,15 | 0,89 |
Соотношение трудоемкостей каждой стадии представлено на рисунке 33.
Рисунок 33. Соотношение трудоемкостей разработки ПС
Итак, затраты на заработную плату С3 в соответствии со значениями тарифной ставки и трудоемкости разработки ПС ВТ составляют:
С3 = К3 х Т = 2,16 * 975= 2 106 (тыс. тенге).
Затраты на статью "Отчисления на социальные нужды" составляют 30% от затрат на заработную плату – 632 тыс. тенге.
Расходы на статью "Материалы". К ним относят все затраты на магнитные носители данных (НМД), бумагу для печатающих устройств и другие материалы, необходимые для разработки ПС:
а) норма расхода НМД составляет 10 шт. в год или Снмд = 0,6 тыс. тенге;
б) средний расход бумаги в день составляет 10–11 листов. За период реализации разработки (1 год) понадобится 2500 листов (5 пачек по 500 листов стоимостью 550 тенге за пачку). Итого, затраты на бумагу для печатающих устройств Сбум составляют 2,75 тыс. тенге;
в) стоимость картриджа на лазерный принтер LaserJet 5L Спрн составляет 14 тыс. тенге в год.
Итого, расходы на статью "Материалы" составляют 17,35 тыс. тенге.
Расходы на статью "Спецоборудование для научных работ". К ним относят затраты на приобретение типовых и изготовление вспомогательных, специального назначения, технических и программных средств, необходимых для разработки конкретного ПС, включая расходы на их проектирование, изготовление, отладку, установку и эксплуатацию.
Технические средства:
а) затраты на приобретение и установку компьютера P4–2400/1024Mb/250,0Gb/128MbAGP/ SB/ CD/ SPK/K/M/P составляют 62 108 тенге;
б) затраты на приобретение и установку компьютерной сети на базе WinXP составляют 7 тыс. тенге.
Итого, при разработке ПС ВТ используются компьютер (по 92 000), компьютерная сеть.
При установленной норме амортизации на ПК На =12,5% амортизационные отчисления за год составляет:
А0= (0,125 * 62 108) + (0,125 * 7 000) = 7764 + 875 = 8,639 (тыс. тенге.) | (5) |
Затраты на приобретение, установку и эксплуатацию технических средств СТЕХ составляют:
СТЕХ = 62108 + 7000 + 8639 = 77,747 (тыс.тенге). | (6) |
Программные средства:
а) затраты на приобретение и установку операционной системы Windows
XP составляют 11,4 тыс. тенге;
б) затраты на приобретение и установку 1С:Предприятие 7.7 на 5 пользователей составляют 105 тыс. тенге;
в) затраты на приобретение и установку программных средств СПР0Г составляют:
Спрог = 116400 = 116,4 (тыс. тенге). | (7) |
Итого, расходы по статье "Спецоборудование для научных работ" Сснр составляют:
Сснр = СТЕХ + СПР0Г = 77,747 + 116,4 = 194,147 (тыс. тенге). | (8) |
Расчет затрат в статье "Прочие расходы". Написание программного продукта у программиста заняло 1 месяц. Оклад программиста составляет 45000 тенге в месяц. Отчисление на социальные нужды 30%.
Фонд заработной платы программиста Фз/п р рассчитывается:
Фз/п р = kм * ЗПразр + Отз/п (тенге), | (9) |
| |
где kм – количество месяцев, потраченных на разработку;
ЗПразр – оклад программиста (тенге/месяц);
ОТз/п – отчисления на социальные нужды (20%).
Стоимость машинного времени Кр, затраченного на реализацию программы, определяется по формуле:
Кр = k * d * q (тенге), | (10) |
| |
где k – время работы на ПК в день;
d – количество дней работы на ПК;
q – стоимость часа машинного времени (тенге/час).
Отз п = 45 000 * 1 * 0,3 = 13 500 (тенге),
ФЗ/Потл = 45 000 * 1 + 13 500 = 58 500 (тенге).
Время работы на ПК в день к =8 часов, количество дней работы на ЭВМ = 31 дней.
Ниже приводится расчет одного часа машинного времени.
Стоимость часа машинного времени определяется следующим образом:
q=S/T (тенге/час), | (11) |
| |
где S– годовые издержки использования ЭВМ, тенге;
Т– количество часов использования ЭВМ в год, ч.
Годовые издержки использования ЭВМ:
S = Upeм + UAм + UЗ/П + Uэлек (тенге), | (12) |
| |
где Upeм– затраты на ремонт оборудования, тенге;
UAм – амортизационные расходы, тенге;
UЗ/П – заработная плата программиста, тенге;
Uэлек – стоимость потребляемой электроэнергии, тенге.
Затраты на ремонт берутся в размере 10% в год от стоимости оборудования (стоимость оборудования составляет 62 108 тенге) и составляет:
Upeм = 62 108 * 0,1= 6210,8 (тенге).
Амортизационные отчисления отчисляются из расчета 25% в год от стоимости оборудования и составляют:
UAм = 62 108 * 0,25 = 15 527 (тенге).
Заработная плата программиста =45 000 тенге в месяц, тогда заработная плата программиста в год будет составлять:
UЗ/П = (45 000 * 12) + 162 000 = 702 000 (тенге).
Стоимость потребляемой электроэнергии рассчитывается исходя из потребляемой мощности компьютера и стоимости киловатта. Потребляемая электроэнергия в час равна 0,35 кВт, стоимость 1 кВт равна 8,84 тенге, следовательно, стоимость 0,35 кВт равна 3,094 тенге. Учитывая, что количество часов использования ЭВМ в месяц составляет 208 часов (при 8 часовом нормированном рабочем дне и 26 рабочих днях в месяц), стоимость потребляемой электроэнергии в год будет составлять:
Uэлек= 3,094 * 208 * 12 = 7 722,624 (тенге).
По формуле (12) вычисляем общие затраты:
S = 6210,8 + 15 527 + 702 000 + 7 722,624 = 730 460,424 (тенге).
Количество часов использования ЭВМ в год составляет Т=208 * 12 = 2496 часа. Тогда стоимость одного часа машинного времени будет составлять формула (11):
q= 809 460,424 /2496= 324,3 (тенге/час).
Таким образом, стоимость машинного времени, затраченного на отладку программы, по формуле (10)составляет:
Кр = 8 * 26 * 324,3 =67 455,035 (тенге).
Следовательно общие затраты на написание и отладку программ:
С отл = 67 455,035+ 58 500 = 125 955,035 (тенге).
Затраты:
а) на машинное время осуществляется по формуле (13):
СМ = КМ * ЗМ = 324,3 * 208 = 67,454 (тыс. тенге), | (13) |
| |
где Км – тарифная стоимость одного часа машинного времени, принимается J по плановой себестоимости часа машинного времени в организации–разработчике 324,3 тенге/час;
Зм – используемое машинное время на разработку ПС, час, соответствует 208 час.
б) на приобретение и подготовку материалов специальной научно– технической информации, необходимой для разработки ПС;
в) затраты на приобретение специальной учебной литературы по программированию – нет;
г) расходы за пользование средствами связи по передаче информации (Internet): затраты на пользование средствами связи по передаче информации (Internet) – нет.
Итого, затраты по статье "Прочие расходы" составляют:
СПР = CM+CKH+Clnt = 67454 + 0 + 0= 67,454 (тыс. тенге).
На статью ''Haклaдные расходы" относят расходы, связанные с выполнением нескольких тем по управлению и организации научно–исследовательских и опытно–конструкторских работ. Список затрат указан в таблице 11.
Таблица 11
Сметная стоимость разработки ПС
Наименование статей затрат | Всего по теме (тыс. тенге) |
1. Заработная плата | 2 106,000 |
2. Отчисления на социальные нужды | 632,000 |
3. Материалы | 17,350 |
4. Спецоборудование для научных работ | 194,147 |
5. Прочие расходы | 67,454 |
6. Накладные расходы | 4500,000 |
Итого сметная стоимость | 3017,000 |
4.2.2 Оценка эффективности внедрения программных средств
Основными показателями технико–экономической эффективности внедрения ПС являются:
а) годовая экономия, получаемая пользователем в результате использования ПС для решения конкретной задачи;
б) годовой экономический эффект, позволяющий сопоставить затраты на разработку и внедрение ПС с результатами, полученными при эксплуатации программных средств;
в) коэффициент эффективности и срок окупаемости инвестиций, необходимых для создания и внедрения программных средств.
Затраты до внедрения программных средств определяются по формуле (14):
ЗД.В = FЗ.П. +Здоп = 7 020 + 13,2 (бумага)+ 56 (картридж) + +300 (закупка новых книг) + 62,108 (компьютер) + 116,4 (ПО) + + 25 (ремонт техники) = 7 592,708 (тыс. тенге), | (14) |
| |
где FЗ.П. _ фонд заработной платы исполнителей за год, тенге/год;
Здоп. – дополнительные затраты, тенге/год.
Фонд заработной платы рассчитывается:
FЗП=Q * 12 * 10+ ОCH = 45000 * 12 * 10= 540 тыс.тг + 30% = = 7 020 000 (тенге), | (15) |
| |
где Q – месячный оклад исполнителя, тенге;
1 – численность исполнителей, чел.;
Ос.н. – отчисления на социальные нужды, (30% к фонду заработной платы).
Затраты на решение данной задачи с учетом использования программных средств определяется по формуле (16):
ЗП.В. =CM.В.+CП+FЗ.П. + ОCH = 809453 + 810 + 702000= = 1512263 (тенге), | (16) |
| |
где СМ.В. – затраты по использованию машинного времени для решения задачи, тенге/год;
СП – затраты на печать выходных документов, тенге/год;
F3.П. – фонд заработной платы исполнителей, тенге/год;
ОС.Н. – отчисления на социальные нужды, тенге/год.
Затраты на использование машинного времени определяются:
CМ.В. = KМ * 12 * ZM = 208 * 12 * 324,3 = 809453 (тенге), | (17) |
| |
где Км – количество часов использования ПЭВМ в месяц, час; ZM – стоимость одного часа машинного времени, тенге.
Затраты на печать выходных документов определяются по формуле (18):
CП = BП * KЭ * ZM = 0,001 * 2500 * 324,3 = 810 (тенге), | (18) |
| |
где ВП – время на печать одного экземпляра выходных документов, час;
КЭ – количество экземпляров в год, шт.;
ZM – стоимость одного часа машинного времени, тенге.
Фонд заработной платы исполнителей, решающих данную задачу с применением программных средств, определяется по формуле (3).
Годовая экономия, получаемая пользователем программных средств, определяется:
ЭГОД =3ДВ – ЗПВ = 7 592 708 – 1 512 263= 6080445 (тенге), | (19) |
| |
где ЗД.В. – затраты на решение задачи до внедрения ПС, тенге/год;
ЗП.В.. – затраты на решение этой же задачи с применением ПС, тенге/год.
Годовой экономический эффект составит:
ЭЭГОД=ЭГ0Д – ЕН х СП.С. = 6 080 445–0,35 *3 017 000= = 5 024 495 (тенге), | (20) |
| |
где ЭГОД – годовая экономия, тенге/год;
ЕН – нормативный коэффициент эффективности (для ПС ЕН=0,35); СП.С. – затраты на разработку и внедрение ПС, тенге.
Срок окупаемости затрат определяется по формуле:
Ток = С/Э, | (21) |
| |
где С – затраты на разработку и внедрения программного обеспечения, тенге;
Э – экономия затрат от внедрения системы, тенге/год.
Ток = 3 017 000/6080445= 0,5 (года).
Для подтверждения эффективности разработанных программных средств необходимо выполнение условия
Ток1 <Ток2, | (22) |
| |
где Ток1 – расчетный срок окупаемости, лет;
Ток2 нормативный срок окупаемости, лет (для ПС Ток2 = 2,5 года).
0,5 2,5
Вывод. На основе проведенных выше вычислений можно сказать о том, что внедрение ПО «Выгрузка форм налоговой отчетности» для 1С:Предприятие позволит получить годовой экономический эффект, определяемый 5 024 495 тенге при сроке окупаемости в 0,5 года и годовой экономии в 6 080 445 тенге, что говорит о целесообразности внедрения подсистемы.
5 Охрана труда
5.1 Анализ опасных и вредных производственных факторов в ВЦ
Данный раздел написан в соответствии с Законами РК об охране труда [12].
В вычислительном центре существуют следующие факторы, влияющие на здоровье работников:
а) микроклиматические условия – климат внутренней среды помещений, действующий на организм человека сочетаниями температуры, влажности и скорости движения воздуха, а также температурой окружающих поверхностей [13];
б) освещение помещений (естественное и искусственное) – качественные и количественные показатели, к которым относятся: сила света, световой поток, освещенность, яркость, спектральный состав, постоянство освещенности и яркости [14];
в) защита от шума и вибрации – совокупность звуков и механических колебаний различной частоты и интенсивности, беспорядочно изменяющихся во времени [15];
г) защита от ЭМИ (электромагнитное излучение) – интенсивное электромагнитное поле промышленной частоты;
д) пожаробезопасность – состояние объекта, при котором исключается возможность пожара, а в случаях его возникновения предотвращается воздействие на людей опасных факторов пожара и обеспечивается защита материальных ценностей [16];
е) электробезопасность – состояние объекта, при котором исключается возможность возникновения электрического и статического напряжения на корпусах устройств, токоведущих частях оборудования, водопроводных трубах и батареях отопления [17].
ж) уровень аэроионов – повышенное содержание в воздухе лёгких отрицательно заряженных аэроионов способствует нормализации обмена веществ в организме человека, снижению утомляемости, нормализации кровяного давления, повышению сопротивляемости организма различным инфекциям, более полному отдыху и оздоровлению организма человека, облегчает дыхание [18].
5.2 Защитные мероприятия
5.2.1 Микроклимат производственного помещения
Под оптимальными микроклиматическими параметрами принято понимать такие, которые при длительном и систематическом воздействии на человека обеспечивают сохранение нормального функционального и теплового состояния организма без напряжения реакций терморегуляции, создают ощущение теплового комфорта и являются предпосылкой высокого уровня работоспособности. Для создания оптимальных микроклиматических условий следует учитывать значения температуры, относительной влажности и скорости движения воздуха, применительно к условиям проекта.
В таблице 12 перечислены согласно СНиП РК 4.02–05–2003 «Отопление, вентиляция и кондиционирование» величины параметров микроклимата, которые создают комфортные условия для работы [19].
Таблица 12
Параметры микроклимата для помещений, где установлены компьютеры
Период года | Параметр микроклимата | Величина |
Холодный | Температура воздуха в помещении | 22…24 °С |
Относительная влажность | 40…60 % | |
Скорость движения воздуха | до 0,1 м/с | |
Теплый | Температура воздуха в помещении | 23…25 °С |
Относительная влажность | 40…60 % | |
Скорость движения воздуха | 0,1…0,2 м/с |
Объем помещений, в которых размещены работники вычислительных центров, не должен быть меньше 19,5м3/человека с учетом максимального числа одновременно работающих в смену. Нормы подачи свежего воздуха в помещения, где расположены компьютеры, приведены в таблице 13.
Таблица 13
Нормы подачи свежего воздуха в помещения, где расположены компьютеры [19]
Характеристика помещения | Объемный расход подаваемого в помещение свежего воздуха на одного человека, м3/ч |
Объем до | Не менее 30 |
Объем 20…40 м3 на человека | Не менее 20 |
Объем более | Естественная вентиляция |
Воздух, поступающий в помещения, должен быть очищен от загрязнений, в том числе от пыли и микроорганизмов. Общее количество колоний в
Вычислительная техника является источником существенных тепловыделений, что может привести к повышению температуры и снижению относительной влажности в помещении. Для обеспечения комфортных условий используются как организационные методы (рациональная организация проведения работ в зависимости от времени года и суток, чередование труда и отдыха), так и технические средства (вентиляция, кондиционирование воздуха, отопительная система).
Расчет системы кондиционирования вычислительного центра.
Исходные данные:
а) вычислительный центр со следующими размерами: длина =
б) в помещении имеется 4 окон с двойным остеклением каждое со следующими размерами: ширина =
г) температура наружного воздуха tвнеш = 20 0С;
д) влажность воздуха = 40 %;
е) количество работающих в вычислительном центре ЭВМ равно 82 единиц;
ж) количество работников, находящихся в вычислительном центре равно 84 человек.
Основной задачей расчета кондиционирования помещения является определение максимумов избытка тепла и влаги в помещении при расчетных наружных параметрах теплого периода года.
При составлении баланса по теплу и влаге в помещении учитываются:
а) поступления тепла за счет работы производственного оборудования;
б) поступления тепла от системы искусственного освещения;
в) выделение тепла и влаги людьми;
г) поступление тепла от солнечной радиации через остекленные поверхности.
На основе полученных избытков тепла и влаги в помещении определяют следующие параметры системы кондиционирования:
а) модели кондиционеров;
б) их количество.
Поступления тепла за счет работы производственного оборудования, в нашем случае ЭВМ, определяются по формуле (23):
Qэвм = Pу * N * Кзагр * Код, | (23) |
где Pу – номинальная мощность одной единицы оборудования (ЭВМ);
N – общее количество оборудования (ЭВМ) в помещении;
Кзагр – коэффициент загрузки электродвигателя;
Код – коэффициент одновременности работы электродвигателей.
Так как рассчитывается максимальное значение тепловыделения, принимаем Кзагр = 1 и Код = 1. В расчетном помещении ВЦ установлены ЭВМ с номинальной мощностью блока питания 250 Вт и номинальной мощностью видеотерминала 50 Вт, таким образом, общая номинальная мощность одной единицы ЭВМ составляет 300 Вт.
Получаем, что величина поступающего тепла за счет работы производственного оборудования равна:
Qэвм = 300 Вт * 82 = 24 600 (Вт).
Количество тепла, поступающего в помещение от солнечной радиации, рассчитывают по формуле (24):
Qсол = Fост *qост * Aост * N, | (24) |
где Fост – поверхность светового проема;
qост – величина радиации через
Aост – коэффициент, определяющих характер остекления, A = 1,15;
N – количество световых проемов.
Рассчитываем:
Qсол = 20 * (260 + 109) *4 * 1,15 = 33 948 (Вт).
Выделение тепла людьми зависит от их физической нагрузки и температуры воздуха в помещении. В нашем случае [19] равно 125 Вт для одного человека. Тогда:
Qраб = 125 * 84 = 10 500 (Вт).
При известных параметрах системы освещения (использование люминесцентных ламп, светлая окраска помещения) тепловыделения от системы освещения могут быть рассчитаны по следующей формуле (25):
Qосв =N* Nосв* S (Вт), | (25) |
где N – коэффициент перехода электрической энергии в тепловую (для люминесцентных ламп равно от 0,5 до 0,6) ;
Nосв – установленная мощность ламп. При предварительных расчетах для хорошо освещенных помещений можно принимать Nосв = 50 – 100 Вт/м2.
В нашем случае:
Qосв = 0,5 * 50 * 33 * 21 = 17 325 (Вт).
Таким образом, общим объем тепловыделения в помещении ВЦ составит:
Qобщ = 10 500 + 5 980 + 17 325 + 24 600 = 58 405 Вт = 210 300 (кДж/ч).
Затем рассчитывают влаговыделения в помещении. Для наших данных основным источником влаговыделений являются работники. Согласно нормативным данным [19] выделяемое количество влаги для одного человека равно 115 г/ч.
Тогда общее количество выделяющейся работниками влаги равно:
Gвл = 115 * 84 = 9,6 (кг/ч).
Расчет воздухообмена производится по I–d диаграмме [19]. Для этого сначала определяем тепловлажное отношение по следующей формуле:
E = Q / Gвл (кДж/кг), | (26) |
где Q – избытки полного тепла в помещении;
Gвл – количество выделяющейся влаги.
Получаем:
E = 210 300/ 9,6 = 21 906,25 (кДж/кг).
Из точки П, выражающей начальное состояние приточного воздуха (20 0С, 40 %), поступающего в помещение, на I–d диаграмме проводится линия I=const (d = 6,5 г/кг). Задаваясь произвольным значением d [19] (для нашего случая 0,1 г/кг), определяем теплосодержание (энтальпию) приточного воздуха: Iп = 35 кДж/кг и воздуха в рабочей зоне – Iр [19].
Для нашего случая имеем следующее:
∆I= E * ∆d / 103 (кДж/кг), | (27) |
∆I= 21 906,25 * 0,1 / 1000 = 2,19 (ккал/кг) ~ 9,17 (кДж/кг).
Находим по графику Iр = 41,34 ккал/кг.
Необходимое количество воздуха для вентиляции в помещении с одновременным выделением тепла и влаги определяется по формуле (28):
G = m*Q / (Iр – Iп) (кг/ч), | 28 |
где m – коэффициент, учитывающий долю тепла, поступающего в рабочую зону; при отсутствии опытных измерений принимают m = 1 [19];
Q – количество избыточного тепла подлежащего удалению;
Iп и Iр – теплосодержание приточного воздуха и воздуха в рабочей зоне, определяемое по I–d диаграмме.
Для наших данных получаем:
G = 1 * 210 300/ 41,34 – 35 = 33 123 (кг/ч).
5.2.2 Освещение помещения
Освещение в помещениях должно быть смешанным (естественным и искусственным).
Естественное освещение в помещениях осуществляется в виде бокового освещения.
Величина коэффициента естественной освещенности (КЕО) должна соответствовать нормативным уровням по СНиП РК 2–04–05–2002 «Естественное и искусственное освещение»[14]. При выполнении работы категории высокой зрительной точности Кео не ниже 1,5 %, при зрительной работе средней точности – не ниже 10 %. Ориентация световых проемов для помещений с ЭВМ и видеотерминалами северная.
Искусственное освещение в помещениях осуществляется в виде комбинированной системы освещения с использованием люминесцентных источников света в светильниках общего освещения. В качестве источников общего освещения использоваться люминесцентные лампы типа ЛБ и ДРЛ с индексом цветопередачи не менее 70 (R ³ 70) размещенные на потолке в два ряда через каждые
Произведем расчет естественного освещения для данного вычислительного центра.
Исходными данными для расчета естественного освещения являются: размер помещения: длина Д =
Так как город Алматы находится в 4 световом поясе, то расчетный КЕО определяется по формуле (29):
, | (29) |
где Ен – нормированное значение КЕО;
к – коэффициент светового климата;
с – коэффициент солнечности.
Согласно табличным данным выбираем Ен = 2,5, к = 0,9, с = 0,75, тогда:
Ер=2,5*0,9*0,75=1,7 (%).
Рассчитаем отношение длины комнаты к её глубине Д/Г = 33/21 = 1,57, а отношение глубины к высоте равно Г/Н = 21/3,3 = 6,36, где Н – возвышение верхнего края окна над горизонтальной плоскостью.
Значение световой характеристики (Р0) световых проемов при боковом освещении согласно выше рассчитанных отношений выбираем из таблице Р0=15.
Т0 – общий коэффициент светопропускания, определяемый по формуле (30):
Т0 = Т1*Т2*Т3. | (30) |
В качестве светопропускающего материала используем стекло оконное листовое двойное. Вид несущих поверхностей железобетонные арки: Т1 = 0,8, Т2 =0,75, Т3 =0,8.
Тогда:
Т0 = 0,8*0,75*0,8 = 0,48.
Так как потолок в вычислительном центре побеленный, то Впот = 0,7, стены свежепобеленные Вст = 0,5. Пол окрашен в коричневый цвет, значит Впол = 0,23.
Средневзвешенный коэффициент отражения рассчитывается по формуле (31):
, | (31) |
| |
где Ппот, Пст, Ппол – соответственно площади потолка, стен и пола;
Впот, Вст, Впол – соответственно коэффициент отражения потолка, стен и пола.
Таким образом:
Вср = (693*0,7+356,4*0,5+693*0,23)/(693+356,4+693) = 0,47.
Из таблиц находим значение коэффициента (r), учитывающего повышение К.Е.О. [14]. Оно будет равно: r = 2.2. Теперь произведем расчет площади всех окон в данном помещении по формуле (32):
. | (32) |
Таким образом:
П р = (1,7*15*693)/(100*0,47*2,2) = 80 (м2).
Мы произвели расчет естественного освещения для данного вычислительного центра.
Так как в помещении находится 4 окна, то площадь каждого из них равна: 80/4 =
5.2.3 Молниезащита
Ожидаемое количество поражений молнией в год зданий, сооружений рассчитывают по формуле (33) [20]:
где А, Б, Н – длина, ширина, высота здания, сооружения,м;
n – среднегодовое число ударов молнии в 1 км2 земной поверхности в месте расположения здания, сооружения (таблица 14).
Таблица 14
Среднегодовое число ударов молнии в 1 км2 земной поверхности
Интенсивность грозовой деятельности, ч в год | n |
10–20 | 1 |
Продолжение таблицы 14 | |
Интенсивность грозовой деятельности, ч в год | n |
20–40 | 3 |
40–60 | 6 |
60–80 | 9 |
80 и более | 12 |
Последствиями воздействия молнии являются взрывы, пожары, разрушения зданий, сооружений, оборудования, поражение людей и животных.
Мероприятия по защите от молнии определяются Указаниями по проектированию и устройству молниезащиты зданий и сооружений (СН 305–77) [21].
Рекомендуется применять стальные молниеприемники сечением 50–100 мм2 для стержневых и однопроволочных тросовых молниеотводов, не менее 35 мм2 – для стальных многопроволочных тросов.
Несущая конструкция несет на себе молниеприемник и токоотвод, объединяет все элементы молниеотвода в единую механически прочную конструкцию.
Токоотвод соединяет молниепремник с заземлителем и предназначен для пропускания тока молнии. Минимальные сечения токоотводов в зависимости от их местоположения и с учетом коррозии приведены в таблице
Минимальные сечения стальных токоотводов представлены в таблице (15) [20].
Таблица 15
Минимальные сечения стальных токоотводов
Место рас–положения токоотвода | Минимальные сечения стальных токоотводов для различных профилей | ||||||
круглый: диаметр, мм | прямоугольный | угловая сталь | трубы: толщина стенок, мм | ||||
сечение, мм | толщина, мм | сечение, мм | толщина, мм | ||||
внутри сооружения | 5 | 24 | 3 | 24 | 2 | 1,5 | |
снаружи | 6 | 48 | 4 | 48 | 2,5 | 2,5 | |
сооружения в земле | 8 | 48 | 4 | 48 | 4 | 3,5 | |
Согласно СН 305–77, здания и сооружения, подлежащие молниезащите, подразделяют на три категории.
Нужно рассчитать молниезащиту здания. Высота здания Н=3,3 м, длина А=33 м, ширина Б=21 м. Категория по взрывопожароопасности – Б.
Категория здания по молниезащите – II.
Интенсивность грозовой деятельности в г. Алмате i = 10–20 ч/год. В расчетах принимаем 20 ч/год.
Среднегодовое число поражений молниепей 1 км2 земной поверхности n=1 (таблица 12).
Ожиданемое число ударов молнией в год в здание:
Поскольку N<1, то зону защиты молниеотвода принимаем Б.
Предусматриваем молниезащиту в виде отдельно стоящего стержневого молниеотвода. Расстояние от молниеотвода до ближайшей наружной стены здания l=4 м.
Радиус защиты, м:
Принимаем высоту молниеотвода h=
Высота вершины конуса зоны молниезащиты, м:
h0 = 0.92*h = 0.92*35 = 32.2 (м).
Радиус границы зоны молниезащиты на уровне высоты здания, м:
r0=1.5*h=1.5*35=52.5 (м).
Вывод: поскольку h0>Rx, r0>H, следовательно, отдельно стоящий стержневой молниеотвод высотой
ЗАКЛЮЧЕНИЕ
В данном дипломном проекте был представлен процесс проектирования и разработки отчета, предназначенного для автоматизации работ, связанных с формированием налоговой отчетности.
Разработка предназначена прежде всего для автоматического формирования налоговых отчетов в формате XML. Также система позволяет получить корректные данные из базы и сокращает время формирования налоговой отчетности. Пользователями подсистемы являются бухгалтера.
Учитывая трудности, с которыми сталкивались работники, проводившие все эти операции вручную без должной автоматизации, можно сказать, что отчет будет являться главной ступенью в повышении эффективности данных работ, а также улучшения качества сдачи налоговой отчетности.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1 Радченко М.К. 1С:Предприятие 7.7. Практическое пособие разработчика. Примеры и типовые приемы. – М.: Фирма «1С», 2001. – С. 35–48.
2 Михайлов А.В. 1С:Предприятие 7.7. Системное программирование. – СПб.: БХВ–Петербург, 2007. – С. 117–125.
3 Алексеев А.Н., Егоров В.П. 1С:Предприятие. Описание встроенного языка. – М.: Фирма «1С», 1999. – С. 15–32.
4 Харитонов С.А. Бухгалтерский и налоговый учет в программе "1С:Бухгалтерия 7/7". – М.: Фирма «1С», 2007. – С. 47–62.
5 Кодекс Республики Казахстан «О налогах и других обязательных платежах в бюджет». – Алматы: Бико, 2009. – С. 47–64.
6 Валиков А.М. Технология XML. – М.: Лорри, 2001. – С. 49–57.
7 О труде в Республике Казахстан: Закон Республики Казахстан от 10 декабря
8 1С:Предприятие 7.7. Конвертация данных: обмен данными между прикладными решениями. – Электронное издание. – СПб.: ПРОМТ, 2007. – CD–ROM+дискета+документация. – 123 с.
9 Донской М.А. Пользовательский интерфейс. – СПб.: БХВ–Петербург, 1999. – С. 25–42.
10 Фаулер М.П. Основы Uml. – СПб.: Питер, 2007. – С. 76–82.
11 Хавронская А.М. Оценка технико–экономической эффективности программных средств // Методические указания по выполнению экономического раздела дипломных проектов и работ (для студентов специальности 050704). – Алматы: КазНТУ, 2000. – 7 с.
12 О введении в действие трудового кодекса Республики Казахстан: Закон Республики Казахстан от 15 мая
13 Гигиенические требования к микроклимату производственных помещений. ГН 3.01.066–02 – М.: Изд. стандартов, 2005.
14 Естественное и искусственное освещение. – СНиП РК 2–04–05–2002 – Астана, 2002.
15 Санитарные нормы допустимых уровней шума. – СанПиН 1.02.007–05 – М.: Изд. стандартов, 2005.
16 Пожарная безопасность зданий и сооружений. – СНиП РК 2.02–05–
2002 − Астана, 2002.
17 Санитарные нормы электробезопасности. − СН 3.01.003–06. – М.: Изд. стандартов, 2005.
18 Гигиенические требования к микроклимату производственных помещений. – ГН 3.01.066–07 – М.: Изд. стандартов, 2006.
19 Отопление, вентиляция и кондиционирование. − СНиП РК 4.02–05–2003 – Астана, 2003.
20 Русак О.Н. Безопасность жизнедеятельности в техносфере. – Алматы, 2001.
21 Указания по проектированию и устройству молниезащиты зданий и сооружений. – СН 305–77 – 03 – М.: Изд. стандартов, 2003.
Приложение А
(обязательное)
Техническое задание по дипломному проектированию
А.1 Введение
А.1.1 Цель разработки и назначение разработки
Целью разработки является создание приложения, которое бы автоматизировало, сокращало время и не допускало бы ошибок, связанных с человеческим фактором при сборе сведений и заполнении форм налоговой отчетности из программы 1С:Предприятие в программу налоговой отчетности Исид.
Крупная строительная компания ведет строительство больших жилых комплексов. По специфике работы, в компании работают много иностранных специалистов(около 600 человек). На фирме ведется бухгалтерский учет в программе 1С:Предприятие и налоговый учет в программах Эфно, Исид, НДС. Бухгалтерский и налоговый учеты ведутся раздельно. Для налоговой отчетности по нерезидентам нужно заполнять форму налоговой отчетности 201.01. Для облегчения заполнения этой формы налоговой отчетности нужно организовать механизм получения, обработки данных из программы 1С:Предприятие и выгрузку и сохранение данных в формате документов программ налоговой отчетности. Конфигурация является типовой (Версия 7.7 релиз 257) и не должна быть изменена, для возможности дальнейшего обновления.
А.1.2 Область применения
Область применения – ведение налогового и бухгалтерского учета на предприятиях. Автоматизация процесса конвертации данных из одного вида учета в другой, а именно из бухгалтерии в налоговый учет.
А.1.3 Определения, термины и сокращения
ПО – Программное обеспечение.
ПЭВМ – Персональная электронно-вычислительная машина.
Продолжение приложения А
А.2 Общее описание
А.2.1 Пользовательские интерфейсы
Пользовательский интерфейс представлен приложением с графическим оконным интерфейсом.
А.2.2 Аппаратные интерфейсы
Используемый компьютер должен иметь следующие характеристики:
а) процессор – частота не менее 1Ггц;
б) оперативная память – не менее 512Мб;
в) жесткий диск – не менее 40Гб;
г) мышь;
д) клавиатура.
А.2.3 Программные интерфейсы
Программные компоненты, необходимые для функционирования приложения:
а) операционная система – Windows98 и выше;
б) «1С:Предприятие 7.7»;
в) программа для выгрузки форм налоговой отчетности ISID;
г) аппаратный ключ HASP.
А.3 Требования к разработке
А.3.1 Функциональные требования
А.3.1.1 Функциональные характеристики
Программа должна обеспечивать выполнение перечисленных ниже функций:
а) конфигурация не должна быть изменена;
Продолжение приложения А
б) данные нужно получать из бухгалтерских итогов за требуемый период;
в) данные должны обрабатываться корректно и сохраняться во внешний файл с расширением isd;
г) выгружаемый файл должен соответствовать шаблону документов налоговой отчетности и должен быть в формате XML;
д) при формировании операции на забалансовые счета за выбранный период(квартал) она должна быть только одна;
е) если пользователь формирует дважды и более выгрузку за один и тот же период в одну и ту же папку, отчеты должны перекрывать друг друга. А имеющаяся за этот период операция не должна учитываться при расчете и должна быть удалена;
ж) подоходный налог должен рассчитываться по удельному весу;
и) из сотрудников должны выбираться только нерезиденты;
к) процент подоходного налога за месяц не должен превышать 100% от расчетного;
л) шаблон создаваемой таблицы должен быть переформирован в текст и перекодирован в кодировке UTF8;
м) в системе должно быть 2 бухгалтерских запроса;
н) т.к. компания работает по старому плану счетов (КСБУ), основной бухгалтерский запрос должен быть сформирован по 681–му счету с корреспондирующими ему счетами;
п) второй бухгалтерский запрос должен быть сформирован по новому забалансовом счетам НЕ, для корректного расчета подоходного налога;
р) состояние отчета, последний период за который формировался отчет, должно сохраняться. Для этого создадим текстовый файл, в котором будет храниться последний квартал, за который пользователь формирует отчет. Файл будет называться 1.txt;
с) благодаря наличию текстового файла 1.txt, будет производиться проверка на доступность периода, за который формируется выгрузка. Пользователь не сможет сформировать выгрузку за первый квартал, а потом сразу за третий или четвертый. Система позволит сформировать отчет только последовательно.
А.3.1.2 Входные данные
Входными данными программы являются период выполнения отчета, фамилия ответственного лица, вид реестра заполнения отчета, код налогового органа и адрес, по которому сохраняется выгружаемый файл.
Продолжение приложения А
А.3.1.3 Выходные данные
Выходные данные программы – внешний файл с расширением .isd.
А.3.2 Нефункциональные требования
А.3.2.1 Надежность и доступность
Надежное функционирование осуществляется перечнем мероприятий приведенных ниже:
а) бесперебойная подача электричества;
б) использование лицензионного ПО;
в) регулярное проведение мер по защите компьютеров от вредоносных программ;
г) соблюдение мер предосторожности и рекомендаций по выполнению превентивных мер и работ по техническому обслуживанию ПЭВМ и оргтехники, сопровождению программных средств.
А.3.2.3 Обработка ошибок
Необходимо реализовать оповещение о недопустимых действиях пользователя (некорректный ввод информации, недопустимые действия).
А.3.2.4 Интерфейсные требования
Интерфейс должен быть интуитивно понятен неподготовленному пользователю.
А.3.2.5 Ограничения
Интерфейс должен соответствовать стандартному программному интерфейсу среды.
Приложение Б
(обязательное)
Текст основной программы
Перем Плюс, РННФирмы, Квартал, Год, Мес_1, Мес_2, Мес_3, ВидДохода, ТаблицаЗнач, Успешно, Пер;
Процедура ПриОткрытии()
КодНалОрг="6009";
Если ПустоеЗначение(Дата1)=1 Тогда
Дата1 = НачКвартала(ТекущаяДата());
КонецЕсли;
Если ПустоеЗначение(Дата2)=1 Тогда
Дата2 = КонКвартала(ТекущаяДата());
КонецЕсли;
Если ПустаяСТрока(КаталогСохранения)=1 Тогда
КаталогСохранения=КаталогИБ()+"ISID\201\";
Конецесли;
Форма.НомерУвд.Доступность(0);
Форма.ДатаУвд.Доступность(0);
Пер='';
Пер=ЗначениеИзФайла(КаталогИБ()+"ISID\201\1\2.txt",Дата1,);
Если ПустоеЗначение(Пер)=1 Тогда
Дата1=НачКвартала('01.01.07');
Иначе
Дата1=НачКвартала(Пер);
КонецЕсли;
Дата2=КонКвартала(Дата1);
Успешно=0;
Плюс=0;
КонецПроцедуры
Процедура ПриНачалеВыбораЗначения(ИдЭлДиал)
Если ИдЭлДиал="КаталогСохранения" Тогда
ПутьРаб=КаталогСохранения;
Если ФС.ВыбратьКаталог(ПутьРаб,"Выбор каталога для файла XML")>0 Тогда
Если ФС.СуществуетФайл(ПутьРаб)<>0 Тогда
КаталогСохранения=ПутьРаб;
КонецЕсли;
КонецЕсли;
ИначеЕсли ИдЭлДиал="Бухгалтер" Тогда
КонецЕсли;
КонецПроцедуры
Продолжение приложения Б
Процедура Проверка(Чел)
Спр=СоздатьОбъект("Справочник.Сотрудники");
Если Спр.НайтиЭлемент(Чел)=1 Тогда
Если Спр.ЭтоГруппа()=1 Тогда
Сообщить("Вы не выбрали человека");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПриИзмененииТР()
Если ТипРеестра=5 Тогда
Форма.НомерУвд.Доступность(1);
Форма.ДатаУвд.Доступность(1);
Иначе
Форма.НомерУвд.Доступность(0);
Форма.ДатаУвд.Доступность(0);
Конецесли;
КонецПроцедуры
Функция СформироватьТекст(Ш)
Текст=СоздатьОбъект("Текст");
Высота=Ш.ВысотаТаблицы();
Для i=1 По Высота Цикл
ПризнТега=СокрЛП(Ш.Область("R"+i+"C1").Текст);
НазвТега=СокрЛП(Ш.Область("R"+i+"C2").Текст);
ЗначТега=СокрЛП(Ш.Область("R"+i+"C3").Текст);
Если ПризнТега="t" Тогда
Если СокрЛП(ЗначТега)="" Тогда
Тег="<"+НазвТега+"/>";
ИначеЕсли СокрЛП(ЗначТега)=". ." Тогда
Тег="<"+НазвТега+"/>";
Иначе
Тег="<"+НазвТега+">"+ЗначТега+"</"+НазвТега+">";
КонецЕсли;
Иначе
Тег=НазвТега;
КонецЕсли;
Текст.ДобавитьСтроку(Тег);
КонецЦикла;
Возврат Текст;
КонецФункции
//-----------------------------------
Функция ВыгрузитьВКодировкеUTF8(Ткст)
Продолжение приложения Б
ТекстВыгрузки = СоздатьОбъект("Текст");
XmlcUtf = СоздатьОбъект("Текст");
XmlcWin = СоздатьОбъект("Текст");
// Представление списка - символ в кодировке win1251, значение элемента
// списка представление символа в кодировке utf-8
СписокСимволов = СоздатьОбъект("СписокЗначений");
XmlcWin.Открыть(КаталогИБ()+"ISID\xmlc.win");
XmlcUtf.Открыть(КаталогИБ()+"ISID\xmlc.utf");
Если ПустоеЗначение(XmlcWin) + ПустоеЗначение(XmlcUtf) > 0 Тогда
Предупреждение("Невозможно загрузить файлы кодировки. Выгрузка прекращена!");
Возврат "";
КонецЕсли;
Если (XmlcWin.КоличествоСтрок() > 0) и (XmlcUtf.КоличествоСтрок() > 0) Тогда
СтрокаWin = XmlcWin.ПолучитьСтроку(1); СтрокаUtf = XmlcUtf.ПолучитьСтроку(1);
Для i = 0 по СтрДлина(СтрокаWin) - 1 Цикл
СписокСимволов.ДобавитьЗначение(Сред(СтрокаUtf,(i*2)+1,2), Сред(СтрокаWin,i+1,1));
КонецЦикла;
КонецЕсли;
Для i = 1 по Ткст.КоличествоСтрок() Цикл
СтрокаТекстВыгрузки = "";
СтрокаТекст = Ткст.ПолучитьСтроку(i);
Для j = 1 по СтрДлина(СтрокаТекст) Цикл
СимволСтроки = Сред(СтрокаТекст, j, 1);
СимволСпискаКодировки = СписокСимволов.Получить(СимволСтроки);
Если ПустоеЗначение(СимволСпискаКодировки) = 0 Тогда
СтрокаТекстВыгрузки = СтрокаТекстВыгрузки + СимволСпискаКодировки;
Иначе
СтрокаТекстВыгрузки = СтрокаТекстВыгрузки + СимволСтроки;
КонецЕсли;
КонецЦикла;
ТекстВыгрузки.ДобавитьСтроку(СтрокаТекстВыгрузки);
КонецЦикла;
Возврат ТекстВыгрузки;
КонецФункции
Функция ПолучитьСписокСотрудников()//список нерезидентов
Сотр=СоздатьОбъект("Справочник.Сотрудники");
СписСотр=СоздатьОбъект("СписокЗначений");
СписСотр.УдалитьВсе();
Продолжение приложения Б
Сотр.ИспользоватьДату(Дата2);
Сотр.ВыбратьЭлементы();
Пока Сотр.ПолучитьЭлемент()=1 Цикл
Если Сотр.ЭтоГруппа()=1 Тогда
Продолжить;
КонецЕсли;
Если Сотр.Нерезидент=0 Тогда
Продолжить;
КонецЕсли;
СписСотр.ДобавитьЗначение(Сотр.ТекущийЭлемент());
КонецЦикла;
Возврат СписСотр;
КонецФункции
Функция ВычЗнДок(Докум) //тип документа
Если Докум=Перечисление.ВидыДокументов.Паспорт Тогда
Докум=СокрЛП("01");
ИначеЕсли Докум=Перечисление.ВидыДокументов.Удостоверение Тогда
Докум=СокрЛП("02");
ИначеЕсли Докум=Перечисление.ВидыДокументов.ПаспортМоряка Тогда
Докум=СокрЛП("03");
Иначе
Докум="";
КонецЕсли;
Возврат Докум;
КонецФункции
Процедура УдалитьСтрокиТабл(ТаблЗнач)
СписокУдСтрок=СоздатьОбъект("СписокЗначений");
ТаблЗнач.ВыбратьСтроки();
Пока ТаблЗнач.ПолучитьСтроку()=1 Цикл
//определим строки с нулевыми значениями и удалим их
Ноль=0;
Если ТаблЗнач.ВсегоДоходов=0 Тогда //1
Ноль=Ноль+1;
КонецЕсли;
Если ТаблЗнач.Подоходный=0 Тогда //2
Ноль=Ноль+1;
КонецЕсли;
Если ТаблЗнач.ВыплаченоДоходов = 0 Тогда //3
Ноль=Ноль+1;
КонецЕсли;
Если Ноль=3 Тогда
Если СписокУдСтрок.Принадлежит(ТаблЗнач.НомерСтроки)=0 Тогда
Продолжение приложения Б
СписокУдСтрок.ДобавитьЗначение(ТаблЗнач.НомерСтроки);
КонецЕсли;
КонецЕсли;
КонецЦикла;
СписокУдСтрок.Сортировать(1);
Для i=1 По СписокУдСтрок.РазмерСписка() Цикл
ТаблЗнач.УдалитьСтроку(СписокУдСтрок.ПолучитьЗначение(i));
КонецЦикла;
КонецПроцедуры
Процедура ВыгрузитьВХМЛ(Тб,Таб)
ВидДохода="1130";
НомПериода=0;
Таб2=СоздатьОбъект("ТаблицаЗначений");
Таб3=СоздатьОбъект("ТаблицаЗначений");
Таб4=СоздатьОбъект("ТаблицаЗначений");
Таб5=СоздатьОбъект("ТаблицаЗначений");
Таб6=СоздатьОбъект("ТаблицаЗначений");
Таб7=СоздатьОбъект("ТаблицаЗначений");
Таб8=СоздатьОбъект("ТаблицаЗначений");
Таб9=СоздатьОбъект("ТаблицаЗначений");
Таб10=СоздатьОбъект("ТаблицаЗначений");
Таб11=СоздатьОбъект("ТаблицаЗначений");
Таб12=СоздатьОбъект("ТаблицаЗначений");
Таб13=СоздатьОбъект("ТаблицаЗначений");
Таб14=СоздатьОбъект("ТаблицаЗначений");
Кол1=0;
Кол2=0;
Кол3=0;
Тб.ВыбратьСтроки();
Пока Тб.ПолучитьСтроку()=1 Цикл
Если Тб.Период>=Дата1 Тогда
НомПериода = НомПериода+1;
Если Тб.Период<НачМесяца(ДобавитьМесяц(Дата1,1)) Тогда
Тб.ном=1;
Кол1=Кол1+1;
ИначеЕсли Тб.Период<НачМесяца(ДобавитьМесяц(Дата1,2)) Тогда
Тб.ном=2;
Кол2=Кол2+1;
ИначеЕсли Тб.Период<НачМесяца(ДобавитьМесяц(Дата1,3)) Тогда
Тб.ном=3;
Кол3=Кол3+1;
КонецЕсли;
Продолжение приложения Б
КонецЕсли;
КонецЦикла;
СписокУдСтрок0=СоздатьОбъект("СписокЗначений");
СписокУдСтрок=СоздатьОбъект("СписокЗначений");
СписокУдСтрок2=СоздатьОбъект("СписокЗначений");
Таб2.Загрузить(Тб);
Таб2.ВыбратьСтроки();
Пока Таб2.ПолучитьСтроку()=1 Цикл
Если Таб2.ном=2 Тогда
СписокУдСтрок0.ДобавитьЗначение(Таб2.НомерСтроки);
КонецЕсли;
Если Таб2.ном=3 Тогда
СписокУдСтрок0.ДобавитьЗначение(Таб2.НомерСтроки);
КонецЕсли;
КонецЦикла;
СписокУдСтрок0.Сортировать(1);
Для i=1 По СписокУдСтрок0.РазмерСписка() Цикл
Таб2.УдалитьСтроку(СписокУдСтрок0.ПолучитьЗначение(i));
КонецЦикла;
Таб3.Загрузить(Таб2);
Таб4.Загрузить(Таб2);
Таб5.Загрузить(Таб2);
Таб6.Загрузить(Таб2);
Таб7.Загрузить(Тб);
Таб7.ВыбратьСтроки();
Пока Таб7.ПолучитьСтроку()=1 Цикл
Если Таб7.ном=1 Тогда
СписокУдСтрок.ДобавитьЗначение(Таб7.НомерСтроки);
КонецЕсли;
Если Таб7.ном=3 Тогда
СписокУдСтрок.ДобавитьЗначение(Таб7.НомерСтроки);
КонецЕсли;
КонецЦикла;
СписокУдСтрок.Сортировать(1);
Для i=1 По СписокУдСтрок.РазмерСписка() Цикл
Таб7.УдалитьСтроку(СписокУдСтрок.ПолучитьЗначение(i));
КонецЦикла;
Таб8.Загрузить(Таб7);
Таб9.Загрузить(Таб7);
Таб10.Загрузить(Таб7);
Таб11.Загрузить(Тб);
Таб11.ВыбратьСтроки();
Продолжение приложения Б
Пока Таб11.ПолучитьСтроку()=1 Цикл
Если Таб11.ном=1 Тогда
СписокУдСтрок2.ДобавитьЗначение(Таб11.НомерСтроки);
КонецЕсли;
Если Таб11.ном=2 Тогда
СписокУдСтрок2.ДобавитьЗначение(Таб11.НомерСтроки);
КонецЕсли;
КонецЦикла;
СписокУдСтрок2.Сортировать(1);
Для i=1 По СписокУдСтрок2.РазмерСписка() Цикл
Таб11.УдалитьСтроку(СписокУдСтрок2.ПолучитьЗначение(i));
КонецЦикла;
Таб12.Загрузить(Таб11);
Таб13.Загрузить(Таб11);
Таб14.Загрузить(Таб11);
Таб2.Свернуть("Период,ном","ВсегоДоходов,ПНПоУдВесу,ВыплаченоДоходов");
КолЛ1=Кол1/10;
Если (КолЛ1-Цел(КолЛ1))>0 Тогда
КолЛистов1=Цел(Кол1/10)+1;
ИначеЕсли(КолЛ1-Цел(КолЛ1))=0 Тогда
КолЛистов1=Цел(Кол1/10);
КонецЕсли;
КолЛ2=Кол2/10;
Если (КолЛ2-Цел(КолЛ2))>0 Тогда
КолЛистов2=Цел(Кол2/10)+1;
ИначеЕсли(КолЛ2-Цел(КолЛ2))=0 Тогда
КолЛистов2=Цел(Кол2/10);
КонецЕсли;
КолЛ3=Кол3/10;
Если (КолЛ3-Цел(КолЛ3))>0 Тогда
КолЛистов3=Цел(Кол3/10)+1;
ИначеЕсли(КолЛ3-Цел(КолЛ3))=0 Тогда
КолЛистов3=Цел(Кол3/10);
КонецЕсли;
Таб.ВывестиСекцию("Доп_Форма");
Таб3.ВыбратьСтроки();
Таб4.ВыбратьСтроки();
Таб5.ВыбратьСтроки();
Таб6.ВыбратьСтроки();
Для к=1 По КолЛистов1 Цикл
НомерСтраницы=100000+к;
Продолжение приложения Б
НомерСтраницы=Прав(Строка(НомерСтраницы),3);
Мес_1=1;
Таб.ВывестиСекцию("Лист");
Таб.ВывестиСекцию("Номер_Стр");
Таб.ВывестиСекцию("РНН_Стр");
Таб.ВывестиСекцию("Табл");
Для а=1 По 10 Цикл
Если Таб3.ПолучитьСтроку()=1 Тогда
ТН=Таб3.НомерСтроки;
Состояние("Заполняется ХМЛ "+ТН);
НомерСтроки=СокрЛП(ТН+1);
Сотрудник=Таб3.Сотрудник;
КодСтран=Лев(СокрЛП(Таб3.КодСтраны)+"000",3);
ВидДок=ВычЗнДок(Таб3.ВидДокум);
НомерДока=Таб3.НомДокум;
ДатаВыдач=Таб3.ДатаДокум;
Иначе
НомерСтроки=0;
Сотрудник="";
КодСтран=0;
ВидДок="";
НомерДока="";
ДатаВыдач='';
КонецЕсли;
Таб.ВывестиСекцию("Строка_1");
КонецЦикла;
Таб.ВывестиСекцию("Подв_1");
Таб.ВывестиСекцию("Номер_Стр");
Таб.ВывестиСекцию("РНН_Стр");
СуммаДолга=0;
СуммаПодлВыпл=0;
Если к=1 Тогда
СуммаПодлВыпл=Таб3.Итог("ВсегоДоходов");
СуммаДолга=Таб3.Итог("ЗадолжностьПоНевыплаченномуДоходу");
КонецЕсли;
Таб.ВывестиСекцию("Итого_0");
Таб.ВывестиСекцию("Табл");
Для а=1 По 10 Цикл
Если Таб4.ПолучитьСтроку()=1 Тогда
ТН=Таб4.НомерСтроки;
НомерСтроки=ТН+1;
СумД=Таб4.ЗадолжностьПоНевыплаченномуДоходу;
Продолжение приложения Б
ПодлВыпл=Таб4.ВсегоДоходов;
Иначе
НомерСтроки=0;
ВидДохода="";
СумД=0;
ПодлВыпл=0;
КонецЕсли;
Таб.ВывестиСекцию("Строка_2");
КонецЦикла;
Таб.ВывестиСекцию("Подв_2");
Таб.ВывестиСекцию("Номер_Стр");
Таб.ВывестиСекцию("РНН_Стр");
СуммаИПНсВыпл=0;
Если к=1 Тогда
СуммаИПНсВыпл=Таб3.Итог("Подоходный")
КонецЕсли;
Таб.ВывестиСекцию("Итого_1");
Таб.ВывестиСекцию("Табл");
Для а=1 По 10 Цикл
Если Таб5.ПолучитьСтроку()=1 Тогда
ТН=Таб5.НомерСтроки;
НомерСтроки=ТН+1;
ИПНСВыпл=Таб5.Подоходный;
Иначе
НомерСтроки=0;
ИПНСВыпл=0;
КонецЕсли;
Таб.ВывестиСекцию("Строка_3");
КонецЦикла;
Таб.ВывестиСекцию("Подв_3");
Таб.ВывестиСекцию("Номер_Стр");
Таб.ВывестиСекцию("РНН_Стр");
СуммаВыпл=0;
СуммаИПНсВып=0;
Если к=1 Тогда
СуммаИПНсВып=Таб3.Итог("Подоходный");
СуммаВыпл=Таб3.Итог("ВыплаченоДоходов");
КонецЕсли;
Таб.ВывестиСекцию("Итого_2");
Таб.ВывестиСекцию("Табл");
Для а=1 По 10 Цикл
Если Таб6.ПолучитьСтроку()=1 Тогда
Продолжение приложения Б
ТН=Таб6.НомерСтроки;
НомерСтроки=ТН+1;
Выпл=Таб6.ВыплаченоДоходов;
ИПНСВып=Таб6.Подоходный;
Иначе
НомерСтроки=0;
Выпл=0;
ИПНСВып=0;
КонецЕсли;
Таб.ВывестиСекцию("Строка_4");
КонецЦикла;
Таб.ВывестиСекцию("1месяц_кон");
КонецЦикла;
Таб.ВывестиСекцию("2мес");
Мес_1=0;
НомерСтраницы=0;
Таб7.ВыбратьСтроки();
Таб8.ВыбратьСтроки();
Таб9.ВыбратьСтроки();
Таб10.ВыбратьСтроки();
Таб.ВывестиСекцию("2месяц_начало");
Для р=1 По КолЛистов2 Цикл
НомерСтраницы=100000+р;
НомерСтраницы=Прав(Строка(НомерСтраницы),3);
Мес_2=1;
Таб.ВывестиСекцию("2месяц_Нач");
Таб.ВывестиСекцию("Номер_Стр");
Таб.ВывестиСекцию("РНН_Стр");
Таб.ВывестиСекцию("Табл");
Для б=1 По 10 Цикл
Если Таб7.ПолучитьСтроку()=1 Тогда
ТН=Таб7.НомерСтроки;
Состояние("Заполняется ХМЛ "+ТН);
Сотрудник=Таб7.Сотрудник;
КодСтран=Лев(СокрЛП(Таб7.КодСтраны)+"000",3);
ВидДок=ВычЗнДок(Таб7.ВидДокум);
НомерДока=Таб7.НомДокум;
ДатаВыдач=Таб7.ДатаДокум;
НомерСтроки=ТН+1;
Иначе
НомерСтроки=0;
Сотрудник="";
Продолжение приложения Б
КодСтран=0;
ВидДок="";
НомерДока="";
ДатаВыдач='';
КонецЕсли;
Таб.ВывестиСекцию("Строка_1");
КонецЦикла;
Таб.ВывестиСекцию("2месяц_1");
Таб.ВывестиСекцию("Номер_Стр");
Таб.ВывестиСекцию("РНН_Стр");
СуммаДолга=0;
СуммаПодлВыпл=0;
Если р=1 Тогда
СуммаДолга=Таб7.Итог("ЗадолжностьПоНевыплаченномуДоходу");
СуммаПодлВыпл=Таб7.Итог("ВсегоДоходов");
КонецЕсли;
Таб.ВывестиСекцию("Итого_0");
Таб.ВывестиСекцию("Табл");
Для б=1 По 10 Цикл
Если Таб8.ПолучитьСтроку()=1 Тогда
ТН=Таб8.НомерСтроки;
НомерСтроки=ТН+1;
ПодлВыпл=Таб8.ВсегоДоходов;
ВидДохода="1130";
СумД=Таб8.ЗадолжностьПоНевыплаченномуДоходу;
Иначе
НомерСтроки=0;
ВидДохода="";
СумД=0;
ПодлВыпл=0;
КонецЕсли;
Таб.ВывестиСекцию("Строка_2");
КонецЦикла;
Таб.ВывестиСекцию("2месяц_2");
Таб.ВывестиСекцию("Номер_Стр");
Таб.ВывестиСекцию("РНН_Стр");
СуммаИПНсВыпл=0;
Если р=1 Тогда
СуммаИПНсВыпл=Таб7.Итог("Подоходный");
КонецЕсли;
Таб.ВывестиСекцию("Итого_1");
Таб.ВывестиСекцию("Табл");
Продолжение приложения Б
Для б=1 По 10 Цикл
Если Таб9.ПолучитьСтроку()=1 Тогда
ТН=Таб9.НомерСтроки;
НомерСтроки=ТН+1;
ИПНСВыпл=Таб9.Подоходный;
Иначе
НомерСтроки=0;
ИПНСВыпл=0;
КонецЕсли;
Таб.ВывестиСекцию("Строка_3");
КонецЦикла;
Таб.ВывестиСекцию("2Месяц_3");
Таб.ВывестиСекцию("Номер_Стр");
Таб.ВывестиСекцию("РНН_Стр");
СуммаВыпл=0;
СуммаИПНсВып=0;
Если р=1 Тогда
СуммаИПНсВып=Таб7.Итог("Подоходный");
СуммаВыпл=Таб7.Итог("ВыплаченоДоходов");
КонецЕсли;
Таб.ВывестиСекцию("Итого_2");
Таб.ВывестиСекцию("Табл");
Для б=1 По 10 Цикл
Если Таб10.ПолучитьСтроку()=1 Тогда
ТН=Таб10.НомерСтроки;
НомерСтроки=ТН+1;
Выпл=Таб10.ВыплаченоДоходов;
ИПНСВып=Таб10.Подоходный;
Иначе
НомерСтроки=0;
Выпл=0;
ИПНСВып=0;
КонецЕсли;
Таб.ВывестиСекцию("Строка_4");
КонецЦикла;
Таб.ВывестиСекцию("2месяц_кон");
КонецЦикла;
Таб.ВывестиСекцию("3мес");
Таб11.ВыбратьСтроки();
Таб12.ВыбратьСтроки();
Таб13.ВыбратьСтроки();
Таб14.ВыбратьСтроки();
Продолжение приложения Б
Мес_1=0;
Мес_2=0;
Таб.ВывестиСекцию("3месяц_нач");
Для м=1 По КолЛистов3 Цикл
НомерСтраницы=100000+м;
НомерСтраницы=Прав(Строка(НомерСтраницы),3);
Мес_3=1;
Таб.ВывестиСекцию("3месяц_начало");
Таб.ВывестиСекцию("Номер_Стр");
Таб.ВывестиСекцию("РНН_Стр");
Таб.ВывестиСекцию("Табл");
Для в=1 По 10 Цикл
Если Таб11.ПолучитьСтроку()=1 Тогда
ТН=Таб11.НомерСтроки;
Состояние("Заполняется ХМЛ "+ТН);
НомерСтроки=ТН+1;
Сотрудник=Таб11.Сотрудник;
КодСтран=Лев(СокрЛП(Таб11.КодСтраны)+"000",3);
ВидДок=ВычЗнДок(Таб11.ВидДокум);
НомерДока=Таб11.НомДокум;
ДатаВыдач=Таб11.ДатаДокум;
Иначе
НомерСтроки=0;
Сотрудник="";
КодСтран=0;
ВидДок="";
НомерДока="";
ДатаВыдач='';
КонецЕсли;
Таб.ВывестиСекцию("Строка_1");
КонецЦикла;
Таб.ВывестиСекцию("3месяц_1");
Таб.ВывестиСекцию("Номер_Стр");
Таб.ВывестиСекцию("РНН_Стр");
СуммаПодлВыпл=0;
СуммаДолга=0;
Если м=1 Тогда
СуммаПодлВыпл=Таб11.Итог("ВсегоДоходов");
СуммаДолга=Таб11.Итог("ЗадолжностьПоНевыплаченномуДоходу");
КонецЕсли;
Таб.ВывестиСекцию("Итого_0");
Таб.ВывестиСекцию("Табл");
Продолжение приложения Б
Для в=1 По 10 Цикл
Если Таб12.ПолучитьСтроку()=1 Тогда
ТН=Таб12.НомерСтроки;
НомерСтроки=ТН+1;
ВидДохода="1130";
ПодлВыпл=Таб12.ВсегоДоходов;
СумД=Таб12.ЗадолжностьПоНевыплаченномуДоходу;
Иначе
НомерСтроки=0;
ВидДохода="";
СумД=0;
ПодлВыпл=0;
КонецЕсли;
Таб.ВывестиСекцию("Строка_2");
КонецЦикла;
Таб.ВывестиСекцию("3месяц_2");
Таб.ВывестиСекцию("Номер_Стр");
Таб.ВывестиСекцию("РНН_Стр");
СуммаИПНсВыпл=0;
Если м=1 Тогда
СуммаИПНсВыпл=Таб11.Итог("Подоходный");
КонецЕсли;
Таб.ВывестиСекцию("Итого_1");
Таб.ВывестиСекцию("Табл");
Для в=1 По 10 Цикл
Если Таб13.ПолучитьСтроку()=1 Тогда
ТН=Таб13.НомерСтроки;
НомерСтроки=ТН+1;
ИПНСВыпл=Таб13.Подоходный;
Иначе
НомерСтроки=0;
ИПНСВыпл=0;
КонецЕсли;
Таб.ВывестиСекцию("Строка_3");
КонецЦикла;
Таб.ВывестиСекцию("3Месяц_3");
Таб.ВывестиСекцию("Номер_Стр");
Таб.ВывестиСекцию("РНН_Стр");
СуммаВыпл=0;
СуммаИПНсВып=0;
Если м=1 Тогда
СуммаИПНсВып=Таб11.Итог("Подоходный");
Продолжение приложения Б
СуммаВыпл=Таб11.Итог("ВыплаченоДоходов");
КонецЕсли;
Таб.ВывестиСекцию("Итого_2");
Таб.ВывестиСекцию("Табл");
Для в=1 По 10 Цикл
Если Таб14.ПолучитьСтроку()=1 Тогда
ТН=Таб14.НомерСтроки;
НомерСтроки=ТН+1;
Выпл=Таб14.ВыплаченоДоходов;
ИПНСВып=Таб14.Подоходный;
Иначе
НомерСтроки=0;
Выпл=0;
ИПНСВып=0;
КонецЕсли;
Таб.ВывестиСекцию("Строка_4");
КонецЦикла;
Таб.ВывестиСекцию("3мес_кон")
КонецЦикла;
Таб.ВывестиСекцию("3Месяц_конец");
Таб.ВывестиСекцию("Всего");
Состояние("Перекодируем текст в UTF8");
Текст=СформироватьТекст(Таб);
Текст=ВыгрузитьВКодировкеUTF8(Текст);
Если ПустаяСтрока(КаталогСохранения)=1 Тогда
КаталогСохранения=КаталогИБ()+"ISID\201";
КонецЕсли;
ТекКат=СокрЛП(КаталогСохранения);
Если (Прав(ТекКат,1)="/") или (Прав(ТекКат,1)="\") Тогда
ТекКат=Лев(ТекКат,СтрДлина(ТекКат)-1);
КаталогСохранения=ТекКат;
Конецесли;
Если ФС.СуществуетФайл(ТекКат)=0 Тогда
ФС.СоздатьКаталог(ТекКат);
КонецЕсли;
// Если месяц целый то в виде месяцГОД_ДатаФОрмироваания(ЧЧММГГГГ);
// Если квартал целыйй то в виде КВАРТАЛ№ГОД_ДатаФОрмироваания(ЧЧММГГГГ)
ДатаФОрмирования=ТекущаяДата();
ДатаФОрмирования=СтрЗаменить(ДатаФОрмирования,".","");
Если (КонМесяца(Дата1)=Дата2) и (ДатаЧисло(Дата1)=1) Тогда
ТекСТр=ПериодСТр(Дата1,Дата2);
Продолжение приложения Б
ТекСТр=СТрЗаменить(ТекСТр,"г.","");
ТекСТр=СТрЗаменить(ТекСТр," ","");
ТекСТр=СТрЗаменить(ТекСТр,"Квартал","Quart");
Пер=ТекСТр+"_"+ДатаФОрмирования;
ИначеЕсли (КонКвартала(Дата1)=Дата2) и (ДатаЧисло(Дата1)=1) Тогда
ТекСТр=ПериодСТр(Дата1,Дата2);
ТекСТр=СТрЗаменить(ТекСТр,"г.","");
ТекСТр=СТрЗаменить(ТекСТр," ","");
ТекСТр=СТрЗаменить(ТекСТр,"Квартал","Quart");
Пер=ТекСТр+"_"+ДатаФОрмирования;
Иначе
Д1=Дата1;
Д1=СтрЗаменить(Д1,".","");
Д2=Дата2;
Д2=СтрЗаменить(Д2,".","");
Пер=Д1+"_"+Д2+"_"+ДатаФОрмирования;
Конецесли;
Если Фс.СуществуетФайл(ТекКат+"\201_"+Пер+".isd")=1 Тогда
Если Вопрос(" За период "+Пер+" существует выгрузка 201 формы. Заменить","Да+Нет")="Да" Тогда
фс.УдалитьФайл(ТекКат+"\201_"+Пер+".isd");
Текст.Записать(ТекКат+"\201_"+Пер+".isd");
Конецесли;
Иначе
Текст.Записать(ТекКат+"\201_"+Пер+".isd");
Конецесли;
Текст=0;
Пер='';
Пер=Дата1;
КонецПроцедуры
Процедура МинусПериод()
Если Дата1>'01.01.07' Тогда
Дата2=Дата1-1;
Дата1=НачКвартала(Дата2);
Плюс=Плюс-1;
Если Плюс<0 Тогда
Плюс=0;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//--------------------
Процедура ПлюсПериод()
Продолжение приложения Б
Если Плюс=0 Тогда
Если Дата2<'31.12.07' Тогда
Дата1=Дата2+1;
Дата2=КонКвартала(Дата1);
Плюс=Плюс+1;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура Сформировать()
Пер='';
Опер=СоздатьОбъект("Операция");
ТаблицаЗнач=СоздатьОбъект("ТаблицаЗначений");
ТаблицаЗнач1=СоздатьОбъект("ТаблицаЗначений");
Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Шаблон");
Инфа="";
НазваниеФирмы=Константа.ОсновнаяОрганизация.Наименование;
РННФирмы=Константа.ОсновнаяОрганизация.РНН;
Руководитель=Константа.ОсновнаяОрганизация.Руководитель.Получить(ТекущаяДата());
ГлБухгалтер=Константа.ОсновнаяОрганизация.ГлавныйБухгалтер.Получить(ТекущаяДата());
Квартал=ДатаМесяц(КонКвартала(Дата1))/3;
Год=ДатаГод(Дата1);
КодВалюты=389;
НомерУвед=НомерУвд;
ДатаУведПеч=ДатаУвд;
НомерСтраницы=0;
ВидРасч_Первоначальный=0;
ВидРасч_Очередной=0;
ВидРасч_Ликвидационный=0;
ВидРасч_Дополнительный=0;
ВидРасч_ПоРезНалогПроверки=0;
Если (ТипРеестра=1) или (ТипРеестра=0) Тогда
ВидРасч_Первоначальный= 1;
ИначеЕсли ТипРеестра=2 Тогда
ВидРасч_Очередной=1;
ИначеЕсли ТипРеестра=3 Тогда
ВидРасч_Ликвидационный=1;
ИначеЕсли ТипРеестра=4 Тогда
ВидРасч_Дополнительный=1;
ИначеЕсли ТипРеестра=5 Тогда
Продолжение приложения Б
ВидРасч_ПоРезНалогПроверки=1;
Конецесли;
КодОргана=Прав("0000"+СокрЛП(КодНалОрг),4);
ОКЭД1=Константа.ОсновнаяОрганизация.КодОКУД;
ОКЭД2=0;
ОКЭД3=0;
УдВес1=100;
УдВес2=0;
УдВес3=0;
Мес_1=0;
Мес_2=0;
Мес_3=0;
Дох1=0;
Дох3=0;
Дох2=0;
ДохВсего=0;
СуммаПН1=0;
СуммаПН3=0;
СуммаПН2=0;
СуммаПНВсего=0;
СуммаНачисл=0;
СуммаПодлВыпл=0;
СуммаВыпл=0;
СуммаИПНсВыпл=0;
ПодлВыпл=0;
Выпл=0;
ИПНСВыпл=0;
Если ПустоеЗначение(КодНалОрг) =1 Тогда
Сообщить("НЕ выбран код налогового органа");
Возврат;
КонецЕсли;
Если ПустоеЗначение(Бухгалтер) =1 Тогда
Сообщить("НЕ выбрано ответственное лицо");
Возврат;
КонецЕсли;
СписокСотр=СоздатьОбъект("СписокЗначений");
ТаблицаЗнач.НоваяКолонка("ном");
ТаблицаЗнач.НоваяКолонка("Период");
ТаблицаЗнач.НоваяКолонка("Сотрудник");
ТаблицаЗнач.НоваяКолонка("КодСтраны");
ТаблицаЗнач.НоваяКолонка("ВидДокум");
ТаблицаЗнач.НоваяКолонка("НомДокум");
Продолжение приложения Б
ТаблицаЗнач.НоваяКолонка("ДатаДокум");
ТаблицаЗнач.НоваяКолонка("ВсегоДоходов","Число",17,0);
ТаблицаЗнач.НоваяКолонка("Подоходный","Число",17,0);
ТаблицаЗнач.НоваяКолонка("ВыплаченоДоходов","Число",17,0);
ТаблицаЗнач.НоваяКолонка("ЗадолжностьПоНевыплаченномуДоходу","Число",17,0);
ТаблицаЗнач.НоваяКолонка("ПНОстаток","Число",17,0);
ТаблицаЗнач.НоваяКолонка("ПНПоУдВесу","Число",17,0);
ТаблицаЗнач.НоваяКолонка("УдельныйВесВыплаченныхДоходов","Число",17,2);
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ2=СоздатьОбъект("БухгалтерскиеИтоги");
Таб2=СоздатьОбъект("Таблица");
Таб2.ИсходнаяТаблица("Таблица1");
БИ2.ВключатьСубсчета(1,1);
БИ2.ИспользоватьСубконто(ВидыСубконто.Сотрудники,ПолучитьСписокСотрудников(),2);
БИ2.ВыполнитьЗапрос(НачМесяца(Дата1),КонМесяца(Дата2),"681",,,3,"Месяц");
БИ2.ВыбратьПериоды();
Пока БИ2.ПолучитьПериод()=1 Цикл
БИ2.ВыбратьСубконто(1);
Пока БИ2.ПолучитьСубконто()=1 Цикл
ТаблицаЗнач.НоваяСтрока();
ТаблицаЗнач.Сотрудник=БИ2.Субконто(1);
ТаблицаЗнач.КодСтраны=БИ2.Субконто(1).СИК;
ТаблицаЗнач.ВидДокум=БИ2.Субконто(1).ДокументВид;
Инфа=СокрЛП(Строка(БИ2.Субконто(1).ДокументСерия))+" "+СокрЛП(Строка(БИ2.Субконто(1).ДокументНомер));
ТаблицаЗнач.НомДокум=Инфа;
ТаблицаЗнач.ДатаДокум=БИ2.Субконто(1).ДокументДатаВыдачи;
ТаблицаЗнач.Период=БИ2.НачДата;
ТаблицаЗнач.ЗадолжностьПоНевыплаченномуДоходу=БИ2.СНК()-БИ2.СНД();
ТаблицаЗнач.ВсегоДоходов=БИ2.КО();
ТаблицаЗнач.ВыплаченоДоходов=БИ2.ДО();
БИ2.ВыбратьКорСчета(,1,);
Пока БИ2.ПолучитьКорСчет()=1 Цикл
Если БИ2.КорСчет=СчетПоКоду("639") Тогда
ТаблицаЗнач.Подоходный=БИ2.КорДО(1);
ТаблицаЗнач.ВыплаченоДоходов=ТаблицаЗнач.ВыплаченоДоходов-ТаблицаЗнач.Подоходный;
КонецЕсли;
Продолжение приложения Б
КонецЦикла;
БИ2.ВыбратьКорСчета(,2,);
Пока БИ2.ПолучитьКорСчет()=1 Цикл
Если БИ2.КорСчет=СчетПоКоду("451") Тогда
ТаблицаЗнач.ВсегоДоходов=ТаблицаЗнач.ВсегоДоходов-БИ2.КорКО();
ТаблицаЗнач.ВыплаченоДоходов=ТаблицаЗнач.ВыплаченоДоходов-БИ2.КорКО();
ИначеЕсли БИ2.КорСчет=СчетПоКоду("844.2") Тогда
ТаблицаЗнач.ВсегоДоходов=ТаблицаЗнач.ВсегоДоходов-БИ2.КорКО();
ИначеЕсли БИ2.КорСчет=СчетПоКоду("431") Тогда
ТаблицаЗнач.ВсегоДоходов=ТаблицаЗнач.ВсегоДоходов-БИ2.КорКО();
КонецЕсли;
КонецЦикла;
Таб2.ВывестиСекцию("Секция_1");
КонецЦикла;
КонецЦикла;
ТаблицаЗнач.ПНПоУдВесу=(ТаблицаЗнач.Подоходный+ТаблицаЗнач.ПНОстаток)*ТаблицаЗнач.УдельныйВесВыплаченныхДоходов/100;
ТаблицаЗнач1.Загрузить(ТаблицаЗнач);
ТаблицаЗнач1.Свернуть("Период","ВсегоДоходов,ВыплаченоДоходов,Подоходный,ЗадолжностьПоНевыплаченномуДоходу");
НомПериода=0;
ТаблицаЗнач1.ВыбратьСтроки();
Пока ТаблицаЗнач1.Получитьстроку()=1 Цикл
Если ТаблицаЗнач1.Период>=Дата1 Тогда
НомПериода=НомПериода+1;
Если ТаблицаЗнач1.Период<НачМесяца(ДобавитьМесяц(Дата1,1)) Тогда
Зад1=ТаблицаЗнач1.ЗадолжностьПоНевыплаченномуДоходу;
Дох1=ТаблицаЗнач1.ВсегоДоходов;
СуммаПод1=ТаблицаЗнач1.Подоходный;
Выпл1=ТаблицаЗнач1.ВыплаченоДоходов;
ИначеЕсли ТаблицаЗнач1.Период<НачМесяца(ДобавитьМесяц(Дата1,2)) Тогда
Зад2=ТаблицаЗнач1.ЗадолжностьПоНевыплаченномуДоходу;
Дох2=ТаблицаЗнач1.ВсегоДоходов;
СуммаПод2=ТаблицаЗнач1.Подоходный;
Выпл2=ТаблицаЗнач1.ВыплаченоДоходов;
ИначеЕсли ТаблицаЗнач1.Период<НачМесяца(ДобавитьМесяц(Дата1,3)) Тогда
Зад3=ТаблицаЗнач1.ЗадолжностьПоНевыплаченномуДоходу;
Дох3=ТаблицаЗнач1.ВсегоДоходов;
СуммаПод3=ТаблицаЗнач1.Подоходный;
Продолжение приложения Б
Выпл3=ТаблицаЗнач1.ВыплаченоДоходов;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ВыплВсего=ТаблицаЗнач1.Итог("ВыплаченоДоходов");
//Выпл1+Выпл2+Выпл3;
ДохВсего=Дох1+Дох2+Дох3;
СуммаПодВсего=ТаблицаЗнач1.Итог("Подоходный");
//СуммаПод1+СуммаПод2+СуммаПод3;
Таб.ВывестиСекцию("Док_Нач");
Таб.ВывестиСекцию("РНН_фирмы");
Таб.ВывестиСекцию("Стр_1");
Таб.ВывестиСекцию("Стр_3");
Таб.ВывестиСекцию("Всего1");
УдалитьСтрокиТабл(ТаблицаЗнач);
ВыгрузитьВХМЛ(ТаблицаЗнач,Таб);
Успешно=1;
Плюс=0;
КонецПроцедуры
Процедура ПриЗакрытии()
Если Успешно=1 Тогда
Если Фс.СуществуетФайл(КаталогИБ()+"ISID\201\1\2.txt")=1 Тогда
фс.УдалитьФайл(КаталогИБ()+"ISID\201\1\2.txt");
КонецЕсли;
ЗначениеВФайл(КаталогИБ()+"ISID\201\1\2.txt",Пер,);
КонецЕсли;
КонецПроцедуры