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

 














ДИПЛОМНЫЙ ПРОЕКТ НА ТЕМУ:

Автоматизация расчёта заработной платы сотрудников магазина

Содержание


Введение

. Постановка задачи

. Формализация

. Описание среды программирования

.1 Требования к техническому обеспечению

.2 Требования к программному обеспечению

. Методика разработки проекта

.1 Алгоритмизация задачи

.1.1 Описание алгоритма

.1.2 Структурная схема

.2 Программирование

.3 Аномалии и защитное программирование

.4 Тестирование и отладка

. Анализ результатов решения

. Инструкция пользователю

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

Заключение

Литература

Приложение

Введение


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

1. Постановка задачи


Задача дипломного проекта - разработать конфигурацию в среде «1С:Предприятие 7.7» для учета клиентов в туристической фирме, которая позволит:

·Автоматизировать процедуру учета заработной платы.

·Вводить и хранить данные о заработной плате сотрудников.

·Автоматически формировать пакет документов для расчёта заработной платы.

·Формировать и выводить на печать документы для оформления и отчетные формы.


2. Формализация


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

Структурная схема исполнения программы:


Схема 1. Структурная схема исполнения программы


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

На следующем этапе уточняется структура полей в справочниках и документах, определяются правила ввода информации.

Затем происходит возврат к проектированию запросов для форм и отчетов, проектируются формы документов и отчетов. Уточняться измерения и ресурсы в регистрах оперативного учета.

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

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

В основе данной конфигурации лежит принцип ввода информации в программу «От документа». Это значит, что в программе возможно создание и хранение в электронном виде документов и автоматическое проведение их по регистрам оперативного учета. Технология «От документа» позволяет вводить любую информацию в программу однократно и многократно ее использовать. Веденная информация автоматически обобщается, что позволяет формировать необходимую отчетность за любой период времени.

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

3. Описание среды программирования


«1C: Предприятие 7.7» является универсальной системой для автоматизации ведения учета. Она может поддерживать различные системы учета, различные методологии учета, использоваться на предприятиях различных типов деятельности. Система программ «1C:Предприятие 7.7» предназначена для решения широкого спектра задач автоматизации учета и управления, стоящих перед динамично развивающимся предприятиями.

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

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

Конфигурацией в системе «1С: Предприятие» называется совокупность трех взаимосвязанных составных частей:

Структуры метаданных

Набора пользовательских интерфейсов

Набора прав

Метаданными в системе «1С: Предприятие» называется совокупность объектов метаданных, настроенных на хранение и обработку информации о хозяйственной деятельность конкретного предприятия.

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

Рассмотрим объекты метаданных, используемых в дипломном проекте:

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

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

Типичным примером перечислений, использованном в дипломном проекте, является тип клиентов (физические лица, юридические лица).

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

Журналы документов - предназначены для просмотра документов. Каждый вид документа может быть отнесен к определенному журналу. Сам журнал документов не добавляет новых данных в систему, а служит только как средство просмотра списка документов одного или нескольких видов.

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

Регистры (компонента «Оперативный учет»)- предназначены для анализа остатков и движений средств в системе «1С: Предприятие».

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

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

Под пользовательским интерфейсом в системе «1С: Предприятие» понимается совокупность команд главного меню и панелей инструментов, настроенных на работу с конкретными объектами данных - документами, справочниками, журналами и т.д. Как правило, пользовательский интерфейс создается для конкретной категории пользователей. Цель создания интерфейса - обеспечить быстрый доступ пользователей к той информации, которая необходима им в соответствии с их обязанностями.

Под набором прав в системе «1С: Предприятие» понимается определение полномочий пользователей на работу с информацией, которая обрабатывается в системе.

Большинство объектов метаданных в системе «1С: Предприятие» могут иметь визуальное представление. В самом лучшем случае визуальное представление состоит из следующих частей:

Экранный диалог, используемый для ввода и редактирования информации, хранящейся в объекте метаданных;

Печатная форма объекта метаданных (печатных форм может быть несколько)

Модуль формы - программа на встроенном языке системы «1С: Предприятие». Как правило, модуль формы содержит алгоритм построения печатной формы объекта метаданных, а также может выполнять обработку вводимой в диалог информации для целей входного контроля, выполнения расчетов и т.п.

3.1 Требования к техническому обеспечению


Для оптимальной работы рекомендуется использовать компьютер с процессором Intel Pentium-III или выше, и не менее 128 Мб оперативной памяти.

·печатающее устройство;

·VGA-совместимый дисплей (рекомендуется SVGA дисплей).


3.2 Требования к программному обеспечению


Для работы программы необходимо, чтобы на компьютере были установлены:

·операционная Microsoft Windows 2000 или выше;

·Программа 1С:Предприятие 7.7. (Многопользовательская версия).


4. Методика разработки программы


.1 Алгоритмизация задачи


.1.1 Описание алгоритма

Конфигурация «Автоматизация учета заработной платы сотрудников магазина» разрабатывалось в среде в «1C:Предприятие 7.7» с нуля.

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


Таблица 1. Справочник №1 «Сотрудники»

ИдентификаторСинонимТип значенияРед-ниеОбязательное полеФамилия-СтрокаВ диалогеДаИмя-СтрокаДаОтчество-СтрокаНетДолжность-Справочник должностиНетДата РожденияСтрокаНетИННСтрокаНетСерияПаспорта-СтрокаНетНомерПаспортаСтрокаНет

Таблица 2. Справочник №2 «Должности»

ИдентификаторСинонимТип значенияРед-ниеОбязательное полеКод-ЧислоВ диалогеДаНаименование-СтрокаДаКоличество рабочего времениЧислоНетЗарплатаЗарплата сотрудникаЧислоНет

Программа имеет следующие документы:

Документ «Начисление Заработной Платы»

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

Для начала необходимо выбрать сотрудника. В зависимости от выбранного сотрудника на форме документа появятся поля для заполнения ФИО сотрудника, заработную плату которого собираются рассчитывать. Дальше необходимо выбрать период, за который рассчитывается заработная плата


Рис.1 Выбран режим для заполнения данных Сотрудниках


4.1.2 Структурная схема




Схема 2. Структурная схема конфигурации.


.2 Программирование


В соответствии со структурно схемой, приведенной выше в пункте «Структурная схема», в представленной программе разработаны тексты программных модулей на встроенном языке «1C:Предприятие 7.7». Тексы, соответствующие программе и запросам, приведены в пункте V. «Приложение».


.3 Аномалии и защищенное программирование


Таблица 11

Описание аномалииРеакции на аномалию Способ защитыПопытка ввести дату меньше текущей.Дата автоматически исправляется на текущую дату.Защищено разработчикомПопытка ввести в числовое поле текстовые значения.Нет возможности ввести благодаря использованию маски ввода.Защищено разработчикомНе выбраны какие-либо значения, либо оставлены пустые поля.При попытке напечатать или провести документ, система выдает ошибку с указанием незаполненных полей.Защищено разработчиком

С целью повышения надежности функциональности программы необходимо обеспечить контроль:

Ввода корректных данных дат, конечная дата должна быть больше начальной, иначе выводиться сообщение об ошибке;

Невозможность записи данных в справочнике, если не записаны некоторые необходимые данные в окна ввода информации;

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


.4 Тестирование и отладка


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

1)Необходимой частью каждого теста должно являться описание ожидаемых результатов работы программы, чтобы можно было быстро выяснить наличие или отсутствие ошибки в ней;

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

)Должны являться правилом досконального изучение результатов каждого теста, чтобы не пропустить малозаметную на поверхностный взгляд ошибку в программе;

)Необходимо тщательно подбирать тест не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);

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

)Следует сохранять использованные тесты (для повышения эффективности повторного тестирования программы после ее модификации или установки у заказчика);

)Следует учитывать так называемый «принцип скопления ошибок»: вероятность наличия не обнаруженных ошибок в некоторой части программы прямо пропорциональна числу ошибок, уже обнаруженных в этой части;

Хотя программа прошла тестирование успешно, в ней, тем не менее, могут содержаться ошибки, т.к.

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

2) не будут обнаружены ошибки, появление которых зависит от обрабатываемых данных (т.е. на одних исходных данных программа работает правильно, а на других - с ошибкой).


5. Анализ результатов решения


В соответствии с пунктом 4.4 тестирование и отладка производились непосредственно во время разработки проекта. После завершения работы над конфигурацией было еще раз произведено полное тестирование всей программы. Все найденные ошибки были успешно устранены.

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

6. Инструкция пользователю


Общие сведения о программе «Автоматизация расчёта заработной платы сотрудников магазина».

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

Программа позволяет:

·Вводить и хранить данные о сотрудниках.

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

·Осуществлять автоматизированный отбор нужной информации.

·Формировать и выводить на печать документы для оформления и отчетные формы.

Достоинства программы «Автоматизация расчёта заработной платы сотрудников магазина»:

·удобство и простота в эксплуатации;

·небольшой объём занимаемой памяти на HDD;

·оперативное обслуживание сотрудников.

Запуск программы.

Запуск программы осуществляется двойным нажатием левой клавиши мыши на ярлыке программы «1С: Предприятие 7.7», далее необходимо выбрать конфигурацию «расчёта заработной платы сотрудников магазина «Отпуск»» и нажать кнопку «ОК».


Рис 7. Запуск программы «1С:Предприятие»


После запуска программного модуля в системе «1С: Предприятие 7.7» на экране появится «Рабочее окно системы 1С: Предприятие 7.7», в нем отображается меню и панель инструментов в соответствии с выбранным пользователем, оно выглядит следующим образом:


Рис. 9 Внешний вид меню конфигурации


Работа с меню

Данное меню можно разделить на стандартное:

-меню «Файл»;

-меню «Операции»;

-меню «Сервис»;

-меню «Окна»;

-меню «Помощь»,

и индивидуальное, созданное разработчиком в соответствии с задачами конкретного пользователя, рассмотрим его подробнее на примере пользователя «Менеджер»:

-меню «Справочники»;

Рис. 10 Внешний вид меню Справочники


Сотрудники открывает Справочник «Сотрудники», который также открывается при нажатии на кнопку "Сотрудники" на панели инструментов. В списке представлены наименования сотрудников магазина, а также их должность и контактная информация. Редактирование и ввод нового сотрудника производиться в форме диалога.

-меню «Документы»;


Рис. 11 Внешний вид меню Документы

программа автоматизация заработная плата

7. Экономический эффект от реализации и внедрения программного продукта


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

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

-снижение времени на обработку данных;

Расчет затрат на разработку.. Разработка

Распределение трудоемкости по стадиям разработки приведено в таблице 12.


Таблица 12

Этап разработкиСодержание работТрудоемкость ч.Постановка задачиПредпроектное обследование. Разработка, согласование и утверждение технико-экономического обоснования.10Технический проектУточнение структуры и формы представления входных и выходных данных. Разработка алгоритма решения задачи. Разработка структуры программы. Разработка плана мероприятий по разработке и внедрению ПП. Разработка пояснительной записки. Согласование и утверждение технического проекта.67Этап разработкиСодержание работТрудоемкость ч.Рабочий проектОписание программы на языке программирования. Разработка, согласование и утверждение порядка и методики испытаний, корректировка программы.60Документация и внедрение.Разработка программной документации. Подготовка к сдаче программы и программной документации.29Итого:166

II. Расчет коэффициента

. Коэффициент сложности задачи c характеризует относительную сложность программы по отношению к так называемой типовой задаче, реализующей стандартные методы решения, сложность которой принята равной единице (величина c лежит в пределах от 0,5 до 1,5). Для программного продукта, включающего в себя алгоритмы ввода данных, сложность задачи берем 0,8 так как данный программный продукт уступает по сложности типовым решениям данной задачи, таким как «1С:Предприятие 7.7» Версия 7.7.= 0,8 - коэффициент сложности программы.

. Коэффициент коррекции программы p - увеличение объема работ за счет внесения изменений в алгоритм или программу по результатам уточнения постановок меняется от 0,1 до 0,5. С учетом того, что в данном случае заказчик, представлял себе, что он хочет получить, что приводило к немногочисленным доработкам, возьмем коэффициент p = 0,3.

р = 0,3 - коэффициент коррекции программы в ходе разработки.

. Коэффициент b увеличение затрат труда, вследствие недостаточного описания задачи, в зависимости от сложности задачи принимается от 1,2 до 1,5, в связи с тем, что данная задача, не потребовала уточнения и больших доработок, примем b = 1,3.= 1,3 - коэффициент увеличение затрат труда.

. Коэффициент квалификации разработчика k определяется в зависимости от стажа работы и составляет:

для работающих до 2 лет - 0,8;

от 3 до 5 лет - 1,0;

от 5 до 8 лет - 1,2;

свыше 8 лет - 1,5.

Разработчик, которому было поручено это задание, имел опыт работы по специальности менее двух лет, поэтому примем k = 0,8.= 0,8 - коэффициент квалификации разработчика.. Расчет затрат предприятия.

. Оклад программиста составляет 6,000 рублей. С учётом приведённых коэффициентов заработной платы, основная заработная плата разработчика программного продукта составит:


ЗП осн = ЗП * с * (р + 1) * b * k = 6000* 0,8 * (0,3 + 1) * 1,3 * 0,8

ЗП осн = 6489,6 рублей.


. Страховые отчисления берутся в размере 34% от основной заработной платы, и равны: 6489,6 *34% =2206,464 руб.

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

ЗП Общ = (6489,6руб. +2206,464руб) * 166 ч. = 8201,96

ч.

(И за весь период разработки общая заработная плата составит:8201,96)

Содержание и эксплуатация вычислительной техники.

Амортизация.

Содержание и эксплуатация вычислительного комплекса считается следующим образом:


Свт = См-ч * Число_часов_отладки,


где См-ч - стоимость машинного - часа.

Число часов отладки составляет:

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

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

Разработка программной документации, подготовка к сдаче программы и программной документации составила 29 часов.

Итого число часов отладки составляет: 67 + 60 + 29= 156 часов.

Стоимость машинного - часа рассчитывается, как сумма составляющих:


(Ст-ть_эл_эн_в_год + Аморт_в_год + Затраты_на_ремонт_за_год) / Фвт


где Фвт - действительный фонд времени работы вычислительного комплекса.

Стоимость электроэнергии.

Стоимость 1кВт/час электроэнергии составляет: 3 руб.

Один компьютер потребляет 300 ВТ в час.

В год отчисления за электроэнергию, потребляемую одной ЭВМ, составляет:

С_эл_эн_в_год = 8 ч. * 22 дня * 12 мес. * 0,3 кВт/ч. * 3 руб. = 1900,8 руб.

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

Расчет амортизационных отчислений:

Отчисления = Стоимость ПК \ Срок полезного использования.

При стоимости ПК 24 000 и сроке полезного использования в 4 года при реальном сроке в 3 года, отчисления составят:

\4 = 6000 (1 год амортизации.)

Затраты на ремонт компьютера составляют 5% от его стоимости.

000 *5% = 1200 рублей в год.

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


Фвт = Фном - Фпроф,


где

Фном - номинальный фонд времени работы вычислительного комплекса,

Фпроф - годовые затраты времени на профилактические работы (принимаются 5% от Фном).

Стоимость ремонта ЭВМ = 5% от стоимости ПК

Стоимость ремонта ЭВМ = 24 000* 5% = 1200 рублей в год.

Компьютер в год работает 2 112 часов (22 дня в месяц * 12 месяцев в год *8 часов работы в день = Фном) при условии, что на

плановый ремонт уходит 5 % рабочего времени. Окончательное время работы:


Фвт = Фном - Фпроф) = 2112 - 5% = 2006 ч.


Рассчитаем стоимость машинного часа:

Стоимость машинного часа = С_эл_эн_в_год + 1 год амортизации + затраты на ремонт компьютера.

Стоимость машинного часа = (1900,8+6000+1200)/2006 = 4,5 руб.

Стоимость машинного часа составляет 4,5 руб.

Содержание и эксплуатация вычислительного комплекса составляет:

ч. * 4,5 руб. = 702 руб при написании конфигурации.

Для работы моей конфигурации не потребовалось приобретать лицензионную версию «1С:Предприятие 7.7», так как она была приобретена и установлена в 2003 году, привлечение дополнительных инвестиций так же не требуется.

Смета затрат на разработку данной конфигурации приведена в таблице 13.


Таблица 13

№Наименование статьи расходовЗатраты руб.1Основная заработная плата6489,62Страховые отчисления2206,463Содержание и эксплуатация вычислительного комплекса7024Программное обеспечение0Итого:9398,06

Экономический эффект

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

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

Т1 = время, затрачиваемое на операцию до внедрения конфигурации.

Т2 = время, затрачиваемое на эти работы после внедрения конфигурации.

Т = время, сэкономленное в результате внедрения конфигурации.

До внедрения конфигурации данные вводились вручную и на то, чтобы качественно оформить документацию для клиента сотрудник в среднем в день тратил около 1 ч на полное оформление документации одного клиента:

Т1 = 1 ч.

После внедрения конфигурации время сократится до 0,25 ч. (за одну операцию) за счет автоматизации ввода и удобного, эргономичного интерфейса:

Т2= 0,25 ч.

Усредненное количество операций ввода данных за день одним сотрудником офиса в среднем составляет 8 операций за день или 176 операций ввода данных в месяц (8 операций * 22 дня). Количество операций за год равна:

Х = 8 операций * 22 дня * 12 мес. = 2112 (опер.\год)

2112 операций * 1 ч. = 2112 час./ год,

тогда Т1 = 2112 час./ год - общее время за год, до внедрения программного приложения.

операций * 0,25 ч. = 528 час./ год,

тогда Т2 = 528 час./ год - общее время за год, после внедрения программного приложения.

Разница в затрачиваемом на работу времени:

Т = Т1 - Т2 = 2112 - 528 = 1584 час./ год - годовая экономия времени.

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

Основная заработная плата одного сотрудника офиса составляет 10 000 рублей в месяц. Дополнительная заработная плата не выплачивается.

Страховые отчисления рассчитываются, как 34 % от основной заработной платы, что составляет: 10 000 руб. * 34 % = 3400 руб.

В общем, на одного сотрудника затрачивается:

+ 3400 = 13400 руб. (в месяц)

руб. / (8 час.*22 дня) = 76, 1 руб. - стоимость одного часа работы сотрудника офиса.

Общая экономия для магазина составит:

час.* 76,1 руб. = 120 542 руб. в год при внедрении

Годовая экономия при внедрении конфигурации в туристическое агентство составит 120 542 руб -затраты на разработку. в год, при этом заметно сократится время сотрудников, что повысит продуктивность работы.

Экономический эффект, таким образом составит - затраты на внедрении программного приложения / общая сумма экономии = 9398,06\120 542 руб =0,07(год).

Следовательно, если офис внедрит конфигурацию «Автоматизация расчёта заработной платы сотрудников магазина», то она окупится через 1 месяц.

Заключение


В изложенной дипломной работе на тему «Автоматизация расчёта заработной платы сотрудников магазина» была реализована задача автоматизированного расчёта заработной платы сотрудников магазина.

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

Разработанная конфигурация полностью соответствует п. 1. «Постановка задачи».

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

Срок окупаемости конфигурации 1 месяц.


Литература


·А. Михайлов, «1С.Предприятие 7.7/8.0. Системное программирование», 2-ое издание, Изд-во фирмы БХВ-Петербург, 2007 г.

·#"justify">·Дехтярь Г.М. «Лицензирование и сертификация», Изд-во фирмы Финансы и статистика, 2007 г.

Приложение 1. Код модуля формы


Процедура ПриОткрытии()


1.//регулировка начального отображения слоев

2.ПриЗаписиПерепроводить(1);

.Тип = Перечисление.Тип_клиента.Физ_лицо;

.Невыезд = Перечисление.Невыезд.Да;

.Форма.ИспользоватьСлой("Основной",1);

.Если Тип = Перечисление.Тип_Клиента.Физ_лицо тогда

.Форма.ИспользоватьСлой("Физ_Лица",1);

.Форма.ИспользоватьСлой("Тур",1);

.Форма.ИспользоватьСлой("Тур_оператор",0);

.Форма.ИспользоватьСлой("Юр_лица",0);

.Форма.ИспользоватьСлой("Таблица",0);

.Форма.кн_тур.Видимость(0);

.Иначе

.Форма.ИспользоватьСлой("Физ_Лица",0);

.Форма.ИспользоватьСлой("Тур",1);

.Форма.ИспользоватьСлой("Тур_оператор",0);

.Форма.ИспользоватьСлой("Юр_лица",1);

.Форма.ИспользоватьСлой("Таблица",0);

.Форма.кн_тур.Видимость(0);

.КонецЕсли;

.КонецПроцедуры

.Процедура Переключать()

.//переключатель слоя в зависимости от типа клиента

.Если Тип = Перечисление.Тип_Клиента.Физ_лицо Тогда

.Форма.ИспользоватьСлой("Физ_Лица",1);

.Форма.ИспользоватьСлой("Юр_лица",0);

.Иначе Тип = Перечисление.Тип_Клиента.Юр_лицо;

.Форма.ИспользоватьСлой("Юр_лица",1);

.Форма. ИспользоватьСлой("Физ_Лица",0);

.КонецЕсли;

.КонецПроцедуры

.Процедура АвтоЗапКлиент()

./ /Автозаполнение данных о клиенте

.Паспорт_клиента = Наименование_Клиента.Паспорт;

.Паспорт_выдан_кем = Наименование_Клиента.П_Выдан;

.П_выдан_когда = Наименование_Клиента.Дата_выдачи;

.Адрес_клиента = Наименование_Клиента.Адрес;

.Тел_клиента = Наименование_Клиента.Дом_телефон + " " + Наименование_Клиента.Моб_телефон;

.КонецПроцедуры

.Процедура АвтоЗапЮр()

.//Автозаполнение данных о юр.лице

.ФИО_рук = Юр_орг.ФИО_рук;

.Юр_адрес = Юр_орг.Юр_адрес;

.Юр_Факт_адрес = Юр_орг.Факт_адрес;

.Юр_тел = Юр_орг.Тел;

.Юр_факс = Юр_орг.Факс;

.Юр_ИНН = Юр_орг.ИНН;

.Юр_рс = Юр_орг.рс;

.Юр_в_отд_банк = Юр_орг.в_отд_банк;

.Юр_кс = Юр_орг.кс;

.Юр_кс_в_банк = Юр_орг.кс_в_банк;

.Юр_БИК = Юр_орг.БИК;

.Юр_email= Юр_орг.email;

.КонецПроцедуры

.Процедура АвтоЗапОператор()

.//Автозаполнение данных о туроператоре

.Полн_наимен_операт = Наим_туро.Полное_наименование;

.Реестр_ном = Наим_туро.Реестровый_номер;

.Место_нахожд = Наим_туро.Юр_адрес;

.Размер_фин_об = Наим_туро.ФинОб;

.Ном_дог_страх = Наим_туро.ном_дог_страх;

.дог_страх_от = Наим_туро.дог_страх_от;

.дог_страх_до = Наим_туро.дог_страх_до;

.наимен_орг_страх_полн = Наим_туро.Наимен_орг_страх_полн;

.Наимен_орг = Наим_туро.Наимен_орг;

.Юр_почт_адрес = Наим_туро.Юр_почт_адрес;

.Место_нахожд_страх_орг = Наим_туро.Место_нахожд;

.КонецПроцедуры

.Процедура ВидимСлои()

.// процедура, позволяющая отображать слои

.Форма.ИспользоватьСлой("Тур",0);

.Форма.ИспользоватьСлой("Тур_оператор",1);

.Форма.ИспользоватьСлой("Таблица",0);

.Форма.кн_туроп.Видимость(0);

.Форма.кн_тур.Видимость(1);

.КонецПроцедуры

.Процедура ВидимСлои1()

.// процедура, позволяющая отображать слои

.Форма.ИспользоватьСлой("Тур",1);

.Форма.ИспользоватьСлой("Тур_оператор",0);

.Если Налич_групп = Перечисление.Группа.Нет Тогда

.Форма.ИспользоватьСлой("Таблица",0);

.Иначе

.Форма.ИспользоватьСлой("Таблица",1);

.КонецЕсли;

.Форма.кн_туроп.Видимость(1);

.Форма.кн_тур.Видимость(0);

.КонецПроцедуры

.Процедура ВидимТ()

.// процедура, позволяющая отображать таблицу

.Если Налич_групп = Перечисление.Группа.Нет Тогда

.Форма.ИспользоватьСлой("Таблица",0);

.Иначе

94.Форма.ИспользоватьСлой("Таблица",1);

95.КонецЕсли

96.КонецПроцедуры

.Процедура ВалидацияДат()

.Если Прибытие > Отъезд Тогда

.Отъезд = Прибытие;

100.ИначеЕсли Прибытие < ТекущаяДата() тогда

101.Прибытие = ТекущаяДата();

102.КонецЕсли

103.КонецПроцедуры

.//Таблица автовыбор

.Процедура АвтоТуристы()

.Если Фамилия_групп <> "" тогда

.Имя_групп = Фамилия_групп.Имя;

.Пол = Фамилия_групп.Пол;

.Гражданство = Фамилия_групп.Гражданство;

.Дата_рожд_групп = Фамилия_групп.Дата_рожд;

.Паспорт_групп = Фамилия_групп.Номер_З_паспорта;

.Дата_оконч = Фамилия_групп.Дата_окончания;

.Адрес_Т = Фамилия_групп.Адрес_прож;

.Тел_Т = Фамилия_групп.Тел_моб;

.Виза = Фамилия_групп.Виза;

.КонецЕсли;

._Ном = 0;

.паспорт=Паспорт_групп;

.Выбратьстроки();

.пока Получитьстроку()=1 цикл

.если Паспорт_групп=паспорт тогда

.Если _Ном > 0 Тогда

.Фамилия_групп="";

.сообщить("Такой турист уже выбран! Выберите другое значение или удалите строку!");

.Прервать;

.Ном = НомерСтроки;

.КонецЕсли;

._Ном = НомерСтроки;

.Конецесли;

.конеццикла;

.КонецПроцедуры

.Процедура АвтоКурорт()

.Страна = Курорт.Страна;

.Город = Курорт.Город;

.Отель = Курорт.Отель;

.Категория = Отель.Категория;

.КонецПроцедуры

.Процедура Налич()

.Если Тип = Перечисление.Тип_Клиента.Юр_лицо

.тогда

.Налич_групп = Перечисление.Группа.Да;

.форма.Налич_групп.Доступность(0);

.Форма.ИспользоватьСлой("Таблица",1);

.Иначе Форма.Налич_групп.Доступность(1);

.КонецЕсли;

.КонецПроцедуры

.//Нет к дополнительным услугам:

.Процедура НетДоп()

.Если Ф_доп = 1

.тогда доп = "нет";

.Форма.Доп.Доступность(0);

.иначе доп = "";

.Форма.Доп.Доступность(1);

.КонецЕсли

.КонецПроцедуры

.Процедура Аэропорт()

.Прибытие_обр = Вылет_туда;

.Вылет_обр = Прибытие_туда;

.КонецПроцедуры

.Процедура Печать()

.Если Номер_дог = " - / " тогда

.сообщить("Введите номер договора! Печать невозможна.");

.возврат;

.конецесли;

.Если Тип = Перечисление.Тип_клиента.Физ_лицо тогда

.Если Наименование_Клиента.выбран()=0 тогда

.сообщить("Выберите клиента! Печать невозможна.");

.возврат;

.конецесли;

.ИначеЕсли Тип = Перечисление.Тип_клиента.Юр_лицо тогда

.Если Юр_орг.выбран()=0 тогда

.сообщить("Выберите клиента! Печать невозможна.");

.возврат;

.конецесли;

.Конецесли;

.Если Цена_договора=0 тогда

.сообщить("Не указана цена договора! Печать невозможна.");

.возврат;

.конецесли;

.Если Наим_туро.выбран()=0 тогда

.сообщить("Выберите туроператора! Печать невозможна.");

.возврат;

.конецесли;

.Если курорт.выбран()=0 тогда

.сообщить("Выберите куророт! Печать невозможна.");

.возврат;

.конецесли;

.Если Пансион.выбран()=0 тогда

.сообщить("Выберите пансион! Печать невозможна.");

.возврат;

.конецесли;

.Если Номер.выбран()=0 тогда

.сообщить("Выберите номер! Печать невозможна.");

.возврат;

.конецесли;

.Если Мед_Страх.выбран()=0 тогда

.сообщить("Выберите значение Мед.страх! Печать невозможна.");

.возврат;

.конецесли;

.Если ПустоеЗначение(Прибытие)=1 тогда

.сообщить("Введите дату прибытия! Печать невозможна.");

.возврат;

.конецесли;

.Если ПустоеЗначение(Отъезд)=1 тогда

.сообщить("Введите дату отъезда! Печать невозможна.");

.возврат;

.конецесли;

.Если Самолет_туда.выбран()=0 тогда

.сообщить("Выберите вид самолета! Печать невозможна.");

.возврат;

.конецесли;

.Если Самолет_обр.выбран()=0 тогда

.сообщить("Выберите вид самолета! Печать невозможна.");

.возврат;

.конецесли;

.Если Вылет_туда.выбран()=0 тогда

.сообщить("Выберите аэропорт вылета! Печать невозможна.");

.возврат;

.конецесли;

.Если ПустоеЗначение(Прибытие_туда)=1 тогда

.сообщить("Выберите значение Мед.страх! Печать невозможна.");

.возврат;

.конецесли;

.Если ПустоеЗначение(Рейс_туда)=1 тогда

.сообщить("Введите номер рейса! Печать невозможна.");

.возврат;

.конецесли;

.Если ПустоеЗначение(Рейс_обр)=1 тогда

.сообщить("Введите номер рейса! Печать невозможна.");

.возврат;

.конецесли;

.Если Пустоезначение(Экс)=1 тогда

.сообщить("Введите значение в поле Дополнительные экскурсии или поставьте нет! Печать невозможна.");

.возврат;

.конецесли;

.Таб = СоздатьОбъект("Таблица"); //создаем таблицу в "" название таблице

.Если Тип = Перечисление.Тип_Клиента.Физ_лицо тогда //если стоит галочка, то выводится накл№1"Таблица" иначе накл№2"Таблица1"

.Таб.ИсходнаяТаблица("Таблица");

.иначе

.Таб.ИсходнаяТаблица("Таблица1"); //к юр-лицу

.КонецЕсли;

.Пропись("");

.ДатаПрописью = Формат(ДатаДок,"Д (0)ДДММММГГГГ");

.Таб.ВывестиСекцию("Шапка");

.Если Налич_групп = Перечисление.Группа.Да Тогда

.п =0;

.Таб.ВывестиСекцию("Группа_Ш");

.ВыбратьСтроки();

.Пока ПолучитьСтроку()=1 цикл

.п = п + 1;

.Таб.ВывестиСекцию("Группа");

.Конеццикла;

.КонецЕсли;

.РазмПрописью = Формат(Размер_фин_об,"ЧПДС");

.Цена_договора = Цена_договора;

.СумПроп = Формат(Цена_договора,"ЧПДС");

.Прибытие2=Прибытие - 7;

.Таб.ВывестиСекцию("Подвал");

.Таб.ПараметрыСтраницы(2,,,,,0,0,,,1);

.Таб.ТолькоПросмотр(1);

.Таб.Показать("Печать договора","");

.КонецПроцедуры

.Процедура ПечатьАкта()

.Если Номер_дог = " - / " тогда

.сообщить("Введите номер договора! Печать невозможна.");

.возврат;

.конецесли;

.Если Тип = Перечисление.Тип_клиента.Физ_лицо тогда

.Если Наименование_Клиента.выбран()=0 тогда

.сообщить("Выберите клиента! Печать невозможна.");

.возврат;

.конецесли;

.ИначеЕсли Тип = Перечисление.Тип_клиента.Юр_лицо тогда

.Если Юр_орг.выбран()=0 тогда

.сообщить("Выберите клиента! Печать невозможна.");

.возврат;

.конецесли;

.Конецесли;

.Таб = СоздатьОбъект("Таблица"); //создаем таблицу в "" название таблице

.Если Тип = Перечисление.Тип_Клиента.Физ_лицо тогда

.Таб.ИсходнаяТаблица("АктФиз");

.иначе

.Таб.ИсходнаяТаблица("АктЮр"); //к юр-лицу

.КонецЕсли;

.Пропись("");

.ДатаПрописью = Формат(ДатаДок,"Д (0)ДДММММГГГГ");

.Таб.ВывестиСекцию("Акт");

.Таб.ПараметрыСтраницы(2,,,,,0,0,,,1);

.Таб.ТолькоПросмотр(1);

.Таб.Показать("Печать приложения № 1","");

.КонецПроцедуры

.Процедура ПечатьСтрах()

.Если (Номер_дог = " - / ") или (Номер_дог = " ") тогда

.сообщить("Введите номер договора! Печать невозможна.");

.возврат;

.конецесли;

.Если Тип = Перечисление.Тип_клиента.Физ_лицо тогда

.Если Наименование_Клиента.выбран()=0 тогда

.сообщить("Выберите клиента! Печать невозможна.");

.возврат;

.конецесли;

.ИначеЕсли Тип = Перечисление.Тип_клиента.Юр_лицо тогда

.Если Юр_орг.выбран()=0 тогда

.сообщить("Выберите клиента! Печать невозможна.");

.возврат;

.конецесли;

.КонецЕсли;

.Если Невыезд.выбран()=0 тогда

.сообщить("Выберите значение Страхование от невыезда! Печать невозможна.");

.возврат;

.конецесли;

.Таб = СоздатьОбъект("Таблица");

.Таб.ИсходнаяТаблица("Страхование");

.Пропись("");

.ДатаПрописью = Формат(ДатаДок,"Д (0)ДДММММГГГГ");

.Таб.ВывестиСекцию("Шапка");

.Если Тип = Перечисление.Тип_Клиента.Физ_лицо тогда

.Таб.ВывестиСекцию("Физ");

.Иначе Тип = Перечисление.Тип_Клиента.Юр_лицо;

.Таб.ВывестиСекцию("Юр");

.КонецЕсли;

.Таб.ВывестиСекцию("Текст");

.Если Невыезд = Перечисление.Невыезд.Да тогда

.Таб.ВывестиСекцию("СДа");

.Иначе Невыезд = Перечисление.Невыезд.Нет;

.Таб.ВывестиСекцию("СНет");

.КонецЕсли;

.Если Тип = Перечисление.Тип_Клиента.Физ_лицо тогда

.Таб.ВывестиСекцию("ПФиз");

.Иначе Тип = Перечисление.Тип_Клиента.Юр_лицо;

.Таб.ВывестиСекцию("ПЮр");

.КонецЕсли;

.Пропись("");

.ДатаПрописью = Формат(ДатаДок,"Д (0)ДДММММГГГГ");

.Таб.ВывестиСекцию("Дата");

.Таб.ПараметрыСтраницы(2,,,,,0,0,,,1);

.Таб.ТолькоПросмотр(1);

.Таб.Показать("Печать приложения № 2","");

.КонецПроцедуры

.Процедура ПечатьПутевки1()

.Если Серия = " № " тогда

.сообщить("Введите серию и номер путевки! Печать невозможна.");

.возврат;

.конецесли;

.Если Тип = Перечисление.Тип_клиента.Физ_лицо тогда

.Если Наименование_Клиента.выбран()=0 тогда

.сообщить("Выберите клиента! Печать невозможна.");

.возврат;

.конецесли;

.ИначеЕсли Тип = Перечисление.Тип_клиента.Юр_лицо тогда

.Если Юр_орг.выбран()=0 тогда

.сообщить("Выберите клиента! Печать невозможна.");

.возврат;

.конецесли;

.Конецесли;

.Если Наим_туро.выбран()=0 тогда

.сообщить("Выберите туроператора! Печать невозможна.");

.возврат;

.конецесли;

.Если курорт.выбран()=0 тогда

.сообщить("Выберите куророт! Печать невозможна.");

.возврат;

.конецесли;

.Если Пансион.выбран()=0 тогда

.сообщить("Выберите пансион! Печать невозможна.");

.возврат;

.конецесли;

.Если Номер.выбран()=0 тогда

.сообщить("Выберите номер! Печать невозможна.");

.возврат;

.конецесли;

.Если Мед_Страх.выбран()=0 тогда

.сообщить("Выберите значение Мед.страх! Печать невозможна.");

.возврат;

.конецесли;

.Если ПустоеЗначение(Прибытие)=1 тогда

.сообщить("Введите дату прибытия! Печать невозможна.");

.возврат;

.конецесли;

.Если ПустоеЗначение(Отъезд)=1 тогда

.сообщить("Введите дату отъезда! Печать невозможна.");

.возврат;

.конецесли;

.Если Самолет_туда.выбран()=0 тогда

.сообщить("Выберите вид самолета! Печать невозможна.");

.возврат;

.конецесли;

.Если Самолет_обр.выбран()=0 тогда

.сообщить("Выберите вид самолета! Печать невозможна.");

.возврат;

.конецесли;

.Если Вылет_туда.выбран()=0 тогда

.сообщить("Выберите аэропорт вылета! Печать невозможна.");

.возврат;

.конецесли;

.Если ПустоеЗначение(Прибытие_туда)=1 тогда

.сообщить("Выберите значение Мед.страх! Печать невозможна.");

.возврат;

.конецесли;

.Если ПустоеЗначение(Рейс_туда)=1 тогда

.сообщить("Введите номер рейса! Печать невозможна.");

.возврат;

.конецесли;

.Если ПустоеЗначение(Рейс_обр)=1 тогда

.сообщить("Введите номер рейса! Печать невозможна.");

.возврат;

.конецесли;

.Если Рук_группы.выбран()=0 тогда

.сообщить("Выберите значение: Наличие руководителя группы! Печать невозможна.");

.возврат;

.конецесли;

.Если Леч.выбран()=0 тогда

.сообщить("Выберите значение: наличие лечения! Печать невозможна.");

.возврат;

.конецесли;

.Если Пустоезначение(Экс)=1 тогда

417.сообщить("Введите значение в поле Дополнительные экскурсии или поставьте нет! Печать невозможна.");

418.возврат;

419.конецесли;

.Если Пустоезначение(Доп)=1 тогда

.сообщить("Выберите значение: Дополнительные оплаченные услуги или поставьте нет! Печать невозможна.");

.возврат;

.конецесли;

.Таб = СоздатьОбъект("Таблица");

.Таб.ИсходнаяТаблица("ПутевкаЛ1");

.Таб.ВывестиСекцию("Шапка");

.Если Тип = Перечисление.Тип_Клиента.Физ_лицо тогда

.Таб.ВывестиСекцию("Физ");

.Иначе Тип = Перечисление.Тип_Клиента.Юр_лицо;

.Таб.ВывестиСекцию("Юр");

.КонецЕсли;

.Если Налич_групп = Перечисление.Группа.Да Тогда

.Таб.ВывестиСекцию("Туристы");

.ВыбратьСтроки();

.п=0;

.Пока ПолучитьСтроку()=1 цикл

.п = п + 1;

.Таб.ВывестиСекцию("Строка");

.Конеццикла;

.КонецЕсли;

.Пропись("");

.ДатаПрописью = Формат(ДатаДок,"Д (0)ДДММММГГГГ");

.Таб.ВывестиСекцию("Низ");

.Таб.ПараметрыСтраницы(2,,,,,0,0,,,1);

.Таб.ТолькоПросмотр(1);

.Таб.Показать("Печать листа путевки № 1","");

.КонецПроцедуры

.Процедура ЭНет()

.Если Э_н = 1

.тогда экс = "нет"

.Форма.экс.Доступность(0);

.иначе

.экс = "";

.Форма.экс.Доступность(1);

.КонецЕсли;

.КонецПроцедуры

.Процедура ПечатьПутевки2()

.Если Номер_дог = " - / " тогда

.сообщить("Введите номер договора! Печать невозможна.");

.возврат;

.конецесли;

.Таб = СоздатьОбъект("Таблица");

.Таб.ИсходнаяТаблица("ПутевкаЛ2");

.Пропись("");

.ДатаПрописью = Формат(ДатаДок,"Д (0)ДДММММГГГГ");

.Таб.ВывестиСекцию("Путевка");

.Таб.ПараметрыСтраницы(2,,,,,0,0,,,1);

.Таб.ТолькоПросмотр(1);

.Таб.Показать("Печать листа путевки № 2","");

.КонецПроцедуры

.Процедура ПечатьПамятки()

.Таб = СоздатьОбъект("Таблица");

.Таб.ИсходнаяТаблица("Памятка");

.Таб.ВывестиСекцию("Памятка");

.Таб.ПараметрыСтраницы(2,,,,,0,0,,,1);

.Таб.ТолькоПросмотр(1);

.Таб.Показать("Печать памятки","");

.КонецПроцедуры

.Процедура ЗапСотр()

.Должность = ФИО_сотр.Должность;

.Тел_сотр = ФИО_сотр.Телефон;

.КонецПроцедуры

.Процедура ПечатьЗаявки()

.Если Тип = Перечисление.Тип_клиента.Физ_лицо тогда

.Если Наименование_Клиента.выбран()=0 тогда

.сообщить("Выберите клиента! Печать невозможна.");

.возврат;

.конецесли;

.ИначеЕсли Тип = Перечисление.Тип_клиента.Юр_лицо тогда

.Если Юр_орг.выбран()=0 тогда

.сообщить("Выберите клиента! Печать невозможна.");

.возврат;

.конецесли;

.Конецесли;

.Если Пансион.выбран()=0 тогда

.сообщить("Выберите пансион! Печать невозможна.");

.возврат;

.конецесли;

.Если Номер.выбран()=0 тогда

.сообщить("Выберите номер! Печать невозможна.");

.возврат;

.конецесли;

.Если Вылет_туда.выбран()=0 тогда

.сообщить("Выберите аэропорт вылета! Печать невозможна.");

.возврат;

.конецесли;

.Если ПустоеЗначение(Прибытие_туда)=1 тогда

.сообщить("Выберите значение Мед.страх! Печать невозможна.");

.возврат;

.конецесли;

.Если ФИО_Сотр.выбран()=0 тогда

.сообщить("Выберите сотрудника, заключившего договор! Печать невозможна.");

.возврат;

.конецесли;

.Если ПустоеЗначение(Прибытие)=1 тогда

.сообщить("Введите дату прибытия! Печать невозможна.");

.возврат;

.конецесли;

.Если ПустоеЗначение(Отъезд)=1 тогда

.сообщить("Введите дату отъезда! Печать невозможна.");

.возврат;

.конецесли;

.Таб = СоздатьОбъект("Таблица");

.Таб.ИсходнаяТаблица("Заявка");

.Ночи = Отъезд - Прибытие;

.Таб.ВывестиСекцию("Шапка");

.ВыбратьСтроки();

.п=0;

.Пока ПолучитьСтроку()=1 цикл

.п = п + 1;

.Таб.ВывестиСекцию("Строка");

.Конеццикла;

.Таб.ВывестиСекцию("Подвал");

.Таб.ПараметрыСтраницы(2,,,,,0,0,,,1);

.Таб.ТолькоПросмотр(1);

.Таб.Показать("Печать заявки на бронирование тура","");

.КонецПроцедуры


Код модуля документа


1.Процедура ОбработкаПроведения()

2.Если (Номер_дог = " - / ") или (Номер_дог = " ") тогда

3.сообщить("Введите номер договора! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если Серия = " № " тогда

.сообщить("Введите серию и номер путевки! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если Тип = Перечисление.Тип_клиента.Физ_лицо тогда

.Если Наименование_Клиента.выбран()=0 тогда

.сообщить("Выберите клиента! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.ИначеЕсли Тип = Перечисление.Тип_клиента.Юр_лицо тогда

.Если Юр_орг.выбран()=0 тогда

.сообщить("Выберите клиента! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Конецесли;

.Если Цена_договора=0 тогда

.сообщить("Не указана цена договора! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если Наим_туро.выбран()=0 тогда

.сообщить("Выберите туроператора! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если курорт.выбран()=0 тогда

.сообщить("Выберите куророт! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если Пансион.выбран()=0 тогда

.сообщить("Выберите пансион! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если Номер.выбран()=0 тогда

.сообщить("Выберите номер! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если Мед_Страх.выбран()=0 тогда

.сообщить("Выберите значение Мед.страх! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если ПустоеЗначение(Прибытие)=1 тогда

.сообщить("Введите дату прибытия! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если ПустоеЗначение(Отъезд)=1 тогда

.сообщить("Введите дату отъезда! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если Самолет_туда.выбран()=0 тогда

.сообщить("Выберите вид самолета! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если Самолет_обр.выбран()=0 тогда

.сообщить("Выберите вид самолета! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если Вылет_туда.выбран()=0 тогда

.сообщить("Выберите аэропорт вылета! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если ПустоеЗначение(Прибытие_туда)=1 тогда

.сообщить("Выберите значение Мед.страх! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если ПустоеЗначение(Рейс_туда)=1 тогда

.сообщить("Введите номер рейса! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если ПустоеЗначение(Рейс_обр)=1 тогда

.сообщить("Введите номер рейса! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если Рук_группы.выбран()=0 тогда

.сообщить("Выберите значение: Наличие руководителя группы! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

100.Если Леч.выбран()=0 тогда

101.сообщить("Выберите значение: наличие лечения! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если Пустоезначение(Экс)=1 тогда

.сообщить("Введите значение в поле Дополнительные экскурсии или поставьте нет! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если Пустоезначение(Доп)=1 тогда

.сообщить("Выберите значение: Дополнительные оплаченные услуги или поставьте нет! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Если ФИО_Сотр.выбран()=0 тогда

.сообщить("Выберите сотрудника, заключившего договор! Документ не проведен.");

.непроводитьдокумент();

.возврат;

.конецесли;

.Регистр.Продажа.Привязыватьстроку(1);

.Выбратьстроки();

.Пока Получитьстроку() = 1 Цикл

.Регистр.Продажа.Курорт = Курорт;

.Регистр.Продажа.Страна = Страна;

.Регистр.Продажа.Цена = Цена_договора;

.Регистр.Продажа.ДвижениеПриходВыполнить();

.КонецЦикла;

.КонецПроцедуры

Приложение 2


Код модуля формы


1.ПроцедураПриОткрытии()

2.ПриЗаписиПерепроводить(1);

3.Исполнитель="НОфондМониторинг";

.Адрес_исп="249038г.Обнинскул.Гурьяновад.19";

.КонецПроцедуры

.ПроцедураАвт()

.Цена=Договор.Цена_договора;

.Ед_изм="шт";

.Колво="1";

.Сумма=Цена;

.Предмет_счета="Предоставлениеуслугпоорганизациисанаторно-курортноголечениясотрудниковпредприятия"

.КонецПроцедуры

.ПроцедураАвтоподстановка()

.Еслидоговор.тип=перечисление.тип_клиента.физ_лицотогда

.Сообщить("ДанныйтипдокументаимеетсмыслтолькодляЮридическихлиц!Выберитедругойдоговор!");

.Договор="";

.Возврат;

.Иначе

.Клиент=Договор.Юр_орг;

.Адрес=Клиент.Юр_адрес;

.Дат_Дог=ДатаДок;

.Номер_дог=Договор.Номер_дог;

.Авт();

.КонецЕсли

.КонецПроцедуры

.ПроцедураПечать()

.Таб=СоздатьОбъект("Таблица");

.Таб.ИсходнаяТаблица("Таблица");

.ЕслиПустоезначение(договор)=1тогда

.Сообщить("Выберитеномердоговора!Печатьневозможна!");

.Возврат;

.ИначеЕслиПустоезначение(Номер_акта)=1тогда

.Сообщить("Выберитеномеракта!Печатьневозможна!");

.Возврат;

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

.Сообщить("Предметсчетаможетбытьтолькоодин!Печатьневозможна!");

.НеПроводитьДокумент();

.Возврат;

.Иначе

.СуммаПрописью=Формат(Цена,"ЧПДС");

.Пропись("");

.ДатаПрописью=Формат(Дат_Дог,"Д(0)ДДММММГГГГ");

.Таб.ВывестиСекцию("Акт");

.Таб.ПараметрыСтраницы(2,,,,,0,0,,,1);

.Таб.ТолькоПросмотр(1);

.Таб.Показать("Печатьактавыполненныхработ","");

.КонецЕсли;

.КонецПроцедуры


Код модуля документа


1.Процедура ОбработкаПроведения()

2.Если Пустоезначение(договор) = 1 тогда

.Сообщить("Выберите номер договора! Документ не проведен!");

.НеПроводитьДокумент();

.Возврат;

.ИначеЕсли Пустоезначение(Номер_акта) = 1 тогда

.Сообщить("Выберите номер акта! Документ не проведен!");

.НеПроводитьДокумент();

.Возврат;

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

.Сообщить("Предмет счета может быть только один!Документ не проведен!");

.НеПроводитьДокумент();

.Возврат;

.КонецЕсли;

.Регистр.Продажа.Привязыватьстроку(1);

.Выбратьстроки();

.Пока Получитьстроку() = 1 Цикл

.Регистр.Продажа.Цена = Цена;

.Регистр.Продажа.ДвижениеПриходВыполнить();

.КонецЦикла;

.КонецПроцедуры


Приложение 3


Отчет по заключенным договорам за период (Статистика).


Рис. 24 Внешний вид печатной формы отчета.


Код модуля


1.// Процедура генерации запроса Сформировать.

2.Процедура Сформировать()

3.Перем Запрос, ТекстЗапроса, Таб;

.если пустоезначение(ВыбНачПериода)=1 тогда

.сообщить("Выберете начальную дату формирования отчета!");

.возврат;

.конецесли;

.если пустоезначение(ВыбКонПериода)=1 тогда

.сообщить("Выберете конечную дату формирования отчета!");

.возврат;

.конецесли;

.если(ВыбКонПериода)<(ВыбНачПериода) тогда

.сообщить("Неправельный диапазон дат!");

.возврат;

.конецесли;

.//Создание объекта типа Запрос

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

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

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

.|Период с ВыбНачПериода по ВыбКонПериода;

.|Обрабатывать НеПомеченныеНаУдаление;

.|Договор = Документ.Договор.ТекущийДокумент;

.|Номер_дог = Документ.Договор.Номер_дог;

.|ДатаДок = Документ.Договор.ДатаДок;

.|Функция ДоговорЦена_договораСумма = Сумма(Договор.Цена_договора);

.|Группировка Договор упорядочить по Договор.Курорт, Договор.Номер_дог, Договор.ДатаДок без групп все ВошедшиеВЗапрос;

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

.;

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

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

.Возврат;

.КонецЕсли;

.// Подготовка к заполнению выходных форм данными запроса

.Таб = СоздатьОбъект("Таблица");

.Таб.ИсходнаяТаблица("Сформировать");

.// Заполнение полей "Заголовок"

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

.Состояние("Заполнение выходной таблицы...");

.Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);

.Пока Запрос.Группировка(1) = 1 Цикл

.// Заполнение полей Договор

.Таб.ВывестиСекцию("Договор");

.КонецЦикла;

.// Заполнение полей "Итого"

.Таб.ВывестиСекцию("Итого");

.// Вывод заполненной формы

.Таб.ТолькоПросмотр(1);

.Таб.Показать("Сформировать", "");

.КонецПроцедуры


Суммы заключенных договоров (Отчет по клиентам)


Рис. 25 Внешний вид печатной формы отчета


Код модуля


1.Процедура ПриОткрытии()

2.ВТип = Перечисление.Тип_клиента.Физ_лицо;

.КонецПроцедуры

.Процедура ВалидацияДат()

.Если ВыбНачПериода > ВыбКонПериода Тогда

.ВыбКонПериода = ВыбНачПериода;

.ИначеЕсли ВыбНачПериода < ТекущаяДата() тогда

.ВыбНачПериода = ТекущаяДата();

.КонецЕсли

.КонецПроцедуры

.Процедура Сформировать()

.Таб = СоздатьОбъект("Таблица");

.Таб.ИсходнаяТаблица("Сформировать");

.Таб.ВывестиСекцию("Шапка");

.Таб.Опции(0,0,0,0);

.Таб.ТолькоПросмотр(1);

.Таб.Показать("Сформировать","");

.КонецПроцедуры

.// Процедура генерации запроса Сформиро.

.Процедура Сформиро()

.Перем Запрос, ТекстЗапроса, Таб;

.//Создание объекта типа Запрос

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

.Если ВТип = Перечисление.Тип_Клиента.Физ_лицо тогда

.Текстзапроса = "

.|Период с ВыбНачПериода по ВыбКонПериода;

.|Договор = Документ.Договор.ТекущийДокумент;

.|Наименование_Клиента = Документ.Договор.Наименование_Клиента;

.|Тип = Документ.Договор.Тип;

.|Функция ДоговорЦена_договораСумма = Сумма(Договор.Цена_договора);

.|Группировка Договор упорядочить по Договор.Наименование_Клиента;

.|Условие(Тип = ВТип);";

.Иначе

.Текстзапроса = "

.|Период с ВыбНачПериода по ВыбКонПериода;

.|Договор = Документ.Договор.ТекущийДокумент;

.|Юр_орг = Документ.Договор.Юр_орг;

.|Тип = Документ.Договор.Тип;

.|Функция ДоговорЦена_договораСумма = Сумма(Договор.Цена_договора);

.|Группировка Юр_орг упорядочить по Юр_орг.Наименование все ВошедшиеВЗапрос;

.|Условие(Тип = ВТип);";

.КонецЕсли;

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

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

.Возврат;

.КонецЕсли;

.// Подготовка к заполнению выходных форм данными запроса

.Таб = СоздатьОбъект("Таблица");

.Таб.ИсходнаяТаблица("Сформиро");

.// Заполнение полей "Заголовок"

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

.Состояние("Заполнение выходной таблицы...");

.Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);

.Если ВТип = Перечисление.Тип_Клиента.Физ_лицо тогда

.Пока Запрос.Группировка(1) = 1 Цикл

.// Заполнение полей Физ_лица

.Таб.ВывестиСекцию("Физ_лица");

.КонецЦикла;

.ИначеЕсли ВТип = Перечисление.Тип_Клиента.Юр_лицо тогда

.Пока Запрос.Группировка(1) = 1 Цикл

.// Заполнение полей Юр_орг

.Таб.ВывестиСекцию("Юр_орг");

.КонецЦикла;

.КонецЕсли;

.// Заполнение полей "Итого"

.Таб.ВывестиСекцию("Итого");

.// Вывод заполненной формы

.Таб.ТолькоПросмотр(1);

.Таб.Показать("Отчет по клиентам", "");

.КонецПроцедуры

Информация о путешествиях


Рис. 26 Внешний вид печатной формы отчета


Код модуля


1.Процедура Переключать()

2.//переключатель слоя в зависимости от типа клиента

.Если ВыбТип_клиента = Перечисление.Тип_Клиента.Физ_лицо Тогда

.Форма.в_орг.Видимость(0);

.Форма.ВыбЮрЛица.Видимость(0);

.Форма.ВыбФизЛица.Видимость(1);

.Форма.В_к.Видимость(1);

.Форма.отчет_ю.Видимость(0);

.Форма.отчет_ф.Видимость(1);

.Иначе

.ВыбТип_клиента = Перечисление.Тип_Клиента.Юр_лицо;

.Форма.в_орг.Видимость(1);

.Форма.ВыбЮрЛица.Видимость(1);

.Форма.ВыбФизЛица.Видимость(0);

.Форма.В_к.Видимость(0);

.Форма.отчет_ю.Видимость(1);

.Форма.отчет_ф.Видимость(0);

.КонецЕсли;

.КонецПроцедуры

.Процедура ПриОткрытии()

.ВыбТип_клиента = Перечисление.Тип_Клиента.Физ_лицо;

.Переключать()

.КонецПроцедуры

.Процедура ВалидацияДат()

.Если ВыбНачПериода > ВыбКонПериода Тогда

.ВыбКонПериода = ВыбНачПериода;

.ИначеЕсли ВыбНачПериода < ТекущаяДата() тогда

.ВыбНачПериода = ТекущаяДата();

.КонецЕсли

.КонецПроцедуры

.//

.Процедура отчет()

.Перем Запрос, ТекстЗапроса, Таб;

.//Создание объекта типа Запрос

.Если ВыбЮрЛица.выбран()=0 тогда

.сообщить("Выберите клиента!");

.Возврат;

.КонецЕсли;

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

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

."//{{ЗАПРОС(отчет)

.|Период с ВыбНачПериода по ВыбКонПериода;

.|Обрабатывать НеПомеченныеНаУдаление;

.|Курорт = Документ.Договор.Курорт;

.|Цена_договора = Документ.Договор.Цена_договора;

.|ДатаДок = Документ.Договор.ДатаДок;

.|Номер_дог = Документ.Договор.Номер_дог;

.|Юр_орг = Документ.Договор.Юр_орг;

.|Тип = Документ.Договор.Тип;

.|Группировка Юр_орг без групп все ВошедшиеВЗапрос;

.|Группировка Курорт без групп;

.|Группировка Номер_дог;

.|Группировка ДатаДок;

.|Группировка Цена_договора;

.|Условие(Юр_орг = ВыбЮрЛица);

.|Условие(Тип = ВыбТип_клиента);

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

.;

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

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

.Возврат;

.КонецЕсли;

.// Подготовка к заполнению выходных форм данными запроса

.Таб = СоздатьОбъект("Таблица");

.Таб.ИсходнаяТаблица("отчет");

.// Заполнение полей "Заголовок"

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

.Состояние("Заполнение выходной таблицы...");

.Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);

.Пока Запрос.Группировка(1) = 1 Цикл

.// Заполнение полей Юр_орг

.//Таб.ВывестиСекцию("Юр_орг");

.Пока Запрос.Группировка(2) = 1 Цикл

.// Заполнение полей Курорт

.//Таб.ВывестиСекцию("Курорт");

.Пока Запрос.Группировка(3) = 1 Цикл

.// Заполнение полей Номер_дог

.//Таб.ВывестиСекцию("Номер_дог");

.Пока Запрос.Группировка(4) = 1 Цикл

.// Заполнение полей ДатаДок

.//Таб.ВывестиСекцию("ДатаДок");

.Пока Запрос.Группировка(5) = 1 Цикл

.// Заполнение полей Цена_договора

.Таб.ВывестиСекцию("Цена_договора");

.КонецЦикла;

.КонецЦикла;

.КонецЦикла;

.КонецЦикла;

.КонецЦикла;

.// Вывод заполненной формы

.Таб.ТолькоПросмотр(1);

.Таб.Показать("Отчет по Юр.лицам", "");

.КонецПроцедуры

.//*******************************************

.// Процедура генерации запроса Физлица.

.//

.Процедура Физлица()

.Перем Запрос, ТекстЗапроса, Таб;

.//Создание объекта типа Запрос

100.Если ВыбФизЛица.выбран()=0 тогда

101.сообщить("Выберите клиента!");

.Возврат;

.КонецЕсли;

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

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

."//{{ЗАПРОС(Физлица)

.|Период с ВыбНачПериода по ВыбКонПериода;

.|Обрабатывать НеПомеченныеНаУдаление;

.|Курорт = Документ.Договор.Курорт;

.|Наименование_Клиента = Документ.Договор.Наименование_Клиента;

.|ДатаДок = Документ.Договор.ДатаДок;

.|Номер_дог = Документ.Договор.Номер_дог;

.|Тип = Документ.Договор.Тип;

.|Цена_договора = Документ.Договор.Цена_договора;

.|Группировка Наименование_Клиента;

.|Группировка Курорт;

.|Группировка Номер_дог;

.|Группировка ДатаДок;

.|Группировка Цена_договора;

.|Условие(Тип = ВыбТип_клиента);

.|Условие(Наименование_Клиента = ВыбФизЛица);

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

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

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

.Возврат;

.КонецЕсли;

.// Подготовка к заполнению выходных форм данными запроса

.Таб = СоздатьОбъект("Таблица");

.Таб.ИсходнаяТаблица("Физлица");

.// Заполнение полей "Заголовок"

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

.Состояние("Заполнение выходной таблицы...");

.Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);

.Пока Запрос.Группировка(1) = 1 Цикл

.// Заполнение полей Наименование_Клиента

.//Таб.ВывестиСекцию("Наименование_Клиента");

.Пока Запрос.Группировка(2) = 1 Цикл

.// Заполнение полей Курорт

.//Таб.ВывестиСекцию("Курорт");

.Пока Запрос.Группировка(3) = 1 Цикл

.// Заполнение полей Номер_дог

.//Таб.ВывестиСекцию("Номер_дог");

.Пока Запрос.Группировка(4) = 1 Цикл

.// Заполнение полей ДатаДок

.//Таб.ВывестиСекцию("ДатаДок");

.Пока Запрос.Группировка(5) = 1 Цикл

.// Заполнение полей Цена_договора

.Таб.ВывестиСекцию("Цена_договора");

.КонецЦикла;

.КонецЦикла;

.КонецЦикла;

.КонецЦикла;

.КонецЦикла;

.// Вывод заполненной формы

.Таб.ТолькоПросмотр(1);

.Таб.Показать("Отчет по физ.лицам", "");

.КонецПроцедуры



ДИПЛОМНЫЙ ПРОЕКТ НА ТЕМУ: Автоматизация расчёта заработной платы сотрудников магазина Содержание

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ