|
Приём
|
Перевод
|
Увольнение
|
Сотрудники
|
Резюме
|
Трудовой
договор
|
Отпуск
|
Должность
|
Физ
Лица
|
Приказ
|
Штатное
расписание
|
Приём
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
Перевод
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
Увольнение
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
Сотрудники
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
Резюме
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
Трудовой
договор
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
Отпуск
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
Должность
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
ФизЛица
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
Подразделение
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
Приказ
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
Штатное
расписание
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
3.2.3Тестирование правильности
Тестирование правильности проводится с целью
проверки всех функциональных требований и требований эффективности, т.е.
соответствие системы ожиданиям заказчика. Используется принцип "черного
ящика". При обнаружении отклонений от требований создается список
недостатков. Один из важных элементов этого шага - проверка конфигурации
системы. Минимальная конфигурация включает в себя:
системную спецификацию, план проекта,
спецификацию требований,
руководство пользователя по работе, инсталляции
и настройке;
листинги исходных текстов программ;
план, методику и результаты тестирования;код
выполняемой программы;
описание базы данных;
документы сопровождения.
Для обнаружения ошибок, которые только конечный
пользователь может выявить проводится альфа- и бета- тестирование. Альфа-
тестирование проводится заказчиком в организации разработчика.
Бета-тестирование проводится конечным пользователем в организации заказчика.
Контрольный пример.
«Резюме».
Подача резюме.
ФИО - Имельяненко Ирина Владимировна.
Должность-Кассир.
Возраст-19.
Стаж-2.
Хранение персональных данных-30.06.2013.
Вид информации - Электронная
почта-Irina@yandex.ru
Печать соглашения допечатать.
В отчётё о резюме убедилась, что резюме было
подано.
«Приём»
Требуется принять на работу выбираем добавить
сначала добавим Физ Лицо.
ФИО - Марковкин Юрий Александрович.
Место рождения - г. Архангельск.
Пол - Мужчина.
ИНН-23243243534.
СНИЛС-2323
Дата рождения-14.03.1980.
Также по желанию мы можем добавить «Контактную
информацию», «Образование», «Состав семьи», «Паспортные данные». И сразу
распечатаем Личную карточку Форма Т-2 См Приложение А.
Теперь заносим данные приём сотрудника. Выбираем
Подразделение - Вспомогательная часть.
Должность-Инспектор ОК.
Окоад-15 000.
Персональная надбавка.
Создадим трудовой договор.
ФИО - Марковкин Юрий Александрович.
Номер и дата ставятся автоматически.
Период С-20.06.2013.
Период По-20.06.2018.
Испытательный срок.
И сразу распечатаем Приказ Форма Т-1 См
Приложение А.
В отчётё о приёме сотрудника убедились что приём
был совершен.
«Перевод»
Требуется перевести работника Фролова Виктория
Александровна при выборе ФИО ТН, Трудовой договор, Подразделение старое,
должность старая ставится автоматически.
Подразделение новое - Вспомогательная часть.
Должность новая - Зам бухгалтера.
Оклад-30 000.
Персональная надбавка-609.
Период С-07.06.2013.
Примечание
И сразу распечатаем Приказ Форма Т-5 См
Приложение А.
В отчётё о переводе сотрудника убедилась что
перевод был совершен.
«Увольнение»
Требуется уволить работника Муштренко Виктор
Петрович-ТН, Трудовой договор, подразделение, должность ставятся автоматически.
Уволить С-26.07.2013.
Примечание
И сразу распечатаем Приказ Форма Т-8 См Приложение
А.
В отчётё об увольнении сотрудника убедилась что
увольнение было совершено.
«Отпуск»
ФИО-Фролова Виктория Александровна, ТН,
подразделение, должность ставятся автоматически.
Дата С-13.06.2014
Дата По-07.07.2014
Длительность
И сразу распечатаем Приказ Форма Т-6См
Приложение А.
В отчёте График отпусков убедились, что отпуск
был отправлен.
4. Технологическая часть
.1 Обоснование выбора программных
средств реализации программного продукта
Программный продукт реализован на платформе
1С:Предприятие 8.2.
Платформа 1С Предприятие 8.2 существенно шагнула
вперед от своих предшественников. Основные изменения в платформе коснулись
архитектуры- в новой версии была проведена огромная работа по оптимизации
работы приложения в клиент-серверном варианте. Было достигнуто существенное
увеличение скорости работы с базой данных и скорости исполнения запросов к базе
данных. Существенно был доработан и механизм кластера серверов 1С Предприятия
8.2, что позволило обеспечить бесперебойную и отказоустойчивую работу большого
количества пользователей с крупными информационными базами. Схема
взаимодействия клиентских компьютеров и сервера базы данных представлена на
рисунке 50.
Рисунок 33 - Схема взаимодействия клиентских
компьютеров и сервера базы данных
Клиентское приложение обращается к центральному
серверу кластера, в роли которого выступает один из компьютеров входящих в
состав кластера. Центральный сервер, в свою очередь анализирует наименее
загруженный рабочий процесс и направляет клиентское приложение к этому рабочему
процессу. Данный рабочий процесс в и обслуживает соединение до окончания сеанса
работы клиента с данной информационной базой. Все кластеры и рабочие процессы
постоянно резервируются, поэтому при выходе из строя одного сервера, входящего
в состав кластера, работа пользователей с информационной базой продолжается с
другим сервером. Пользователь изменения в работе не видит. Вся нагрузка в
кластере серверов динамически балансируется, что в свою очередь также увеличивает
производительность системы в целом. Все серверы кластера способны
функционировать как под управлением операционной системы Windows, так и под
управлением операционной системы Linux, при чем в составе одного кластера могут
присутствовать рабочие серверы с различными операционными системами.
Возможность работы под управлением операционной системы Linux появилась лишь в
платформе 1С предприятие 8.2.
Очень важным нововведением в 1С 8.2 стало и
внедрение механизма агрегатов, или специального механизма позволившего
оптимизировать время построения отчетных данных. Реализован этот механизм был в
оборотных регистрах 1С Предприятия 8.2. Принцип работы агрегатов следующий -
для одного учетного регистра может быть создано несколько специализированных
хранилищ, которые содержат агрегированные данные регистра в различных разрезах,
удобных для формирования отчетов в данной информационной базе. Система
автоматически оценивает интенсивность работы пользователей с тем или иными
разрезами информации и на основе накопленной статистики выбирает оптимальный
состав поддерживаемых агрегатов.
Движение в направлении веб-технологий, позволило
не только шагать в ногу с современными технологиями, но и значительно расширяет
возможности конечных пользователей, а именно оперативное получение и изменение
актуальных данных. В новой платформе удаленная работа с информационной базой
стала удобней и легче. Достигнуто это было внедрением управляемых приложений,
работающих с 1С через Интернет.
Так называемых, управляемых приложений в
предыдущих версиях не было и для работы пользователей с информационными базами
использовалось только клиентское приложение - «клиент». «Клиент» был сильно
ограничен в своих возможностях. Он мог работать только под управлением
операционной системы Windows и не имел возможности работать через Интернет. В
новой же версии платформы появилось управляемое приложение. Для его работы
достаточно настроить веб-сервер, в соответствующем режиме. В качестве клиентов
веб-сервера используются тонкий клиент или веб-клиент. Работа с веб-клиентом
проще, т.к. для своей работы он использует установленный в системе любой
Интернет-браузер, как в системе Windows так и в системе Linux. Для работы
достаточно ввести имя пользователя, пароль. Но по функциям он уступает тонкому
клиенту, который позволят реализовать практически любой функционал. Правда для
тонкого клиента необходимо установить небольшую программу, которая и является
клиентом.
Важно и то, что платформа 8.2 позволяет удаленно
работать с 1С и при использовании низкоскоростных подключений, например, через
мобильное GPRS-соединение. Для этого тонкий клиент и веб-клиент имеют
специальный режим запуска - режим низкой скорости соединения, при котором,
несмотря на низкую скорость передачи данных, обеспечивается достаточно
приемлемая скорость работы удаленных пользователей. Существует возможность
шифрования передаваемых данных, что позволить обезопасить данные от
«посторонних» глаз.
В 1С Предприятии 8.2 внедрены полезные сервисные
функции. Теперь разработчик приложений на 1С 8.2 может создавать более
качественные и оптимизированные под ресурсы заказчика приложения. Возможно, это
стало благодаря механизму, позволяющему в реальном времени получить данные о
производительности прикладного решения, а также отладке с имитацией
прогнозируемых задержек возливаемых при вызове сервера. Это позволяет видеть
реальную скорость работы решения у клиента, на реальном канале связи. В
предыдущих версиях разработчик мог только видеть, какое время затрачивается на
обработку той или иной команды без возможности задавать задержки для имитации
работы в реальных условиях.
Для администрирования также были добавлены
важные инструменты. Теперь каждая новая версия платформы устанавливается в
отдельный каталог. А специальный механизм, позволяет выбирать версию
запускаемой платформы.
4.2 Руководство пользователя
Запускаем программу 1С: Предприятие 8.2 .
Выбираем информационную базу «ООО ”Силуэт-2004” кадровый учёт » нажимаем на
кнопку 1С: Предприятие.
Рисунок 34 - 1С: Предприятие
Перед тем как попасть в базу система потребует
авторизоваться, выбрав из выпадающего списка Пользователя, нажмите ОК.
Рисунок 35. Форма авторизации.
После успешной авторизации открывается окно
Рабочий стол, на котором отображены наиболее часто используемые справочники,
доступ к которым разрешен данному пользователю.
Рисунок 36 - Главное меню
Обратится к ним можно используя двойной щелчок,
левой кнопкой мыши по любому из элементов.
Перед началом работы системы требуется заполнить
справочники Подразделения, должность, Вид отпуск.
Заполнение справочника «Подразделение».
Для того чтобы заполнить справочник
«Подразделение» нужно на Панели навигации перейти по ссылке «Подразделение».
Используя контекстное меню по команде Создать, открывается вкладка
Подразделение (Создание). Необходимо заполнить поля, «Записать и закрыть».
Рисунок 37 - Создание подразделения
Создано новое подразделение:
Рисунок 38 - Список элементов Справочника
«Подразделение»
Заполнение справочника «Должность»
Для того чтобы заполнить справочник «Должность»
нужно на Панели навигации перейти по ссылке «Должность». Используя контекстное
меню по команде Создать, открывается вкладка Подразделение (Создание).
Необходимо заполнить поля, «Записать и закрыть».
Рисунок 39 - Создание должности
Рисунок 40 - Список элементов Справочника
«Должность».
Заполнение документа «Штатное расписание»
Для того чтобы заполнить «Штатное расписание»
необходимо создать документ, заполнить поля докумета, «Провести и закрыть».
Рисунок 41 - Документ штатное расписание
Заполнение документа «Резюме»
Для того чтобы заполнить «Резюме» необходимо
создать документ, заполнить поля документа, «Провести и закрыть».
Рисунок 41 - Создание резюме
Затем переходим на Панель действий, выбираем
«Отчёты резюме» нажимаем сформировать.
Рисунок 42 -Отчёт резюме
Заполнение документа «Приём»
Для того чтобы заполнить «Приём» необходимо
перейти по ссылке «Приём» на Панели навигации. Создать новый документ.
Приступить к заполнению формы документа, заполнить поля.
Сначала создать новую строку с принимаемым на
работу: заполнить поле «ФизЛицо», при этом создать новое «ФизЛицо» или выбрать
из уже созданных в справочнике «ФизЛица». Форма элемента справочника «ФизЛицо»
имеет несколько вкладок в таблице значений, необходимые данные нужно занести.
Заполнить подразделение должность. При выборе
Подразделения или должности в верхней части формы в таблице отображаются
вакантные должности в подразделениях. Оклад заполняется автоматически согласно
штатному расписанию, формируется табельный номер (ТН).
«Образование», «Состав семьи», «Паспортные
данные» и можно загрузить фотографию. Красным отмечены те поля которые
обязательны. Далее заполнить поле «Трудовой договор». При этом откроется форма
документа Трудовой договор. Создайте Трудовой договор для выбранного «ФизЛица»
сохраните, и выберите его. Трудовой договор можно распечатать по кнопке «Печать
Трудового договора». Поля номер и дата трудового договора заполняются
автоматически. Печать документа выполняется по кнопке «Печать приёма форма Т-1»
приложении Б. Документ провести и закрыть.
Рисунок 43 - Приём сотрудника
И посмотрим на Панели действий «Отчёт о приёме
сотрудника»
Рисунок 44 - Отчёт о приёме
Заполнение документа «Перевод»
Для того чтобы заполнить «Перевод» необходимо
перейти по ссылке «Перевод» на Панели навигации. создать новый документ,
заполнить поля.
Красным отмечены те поля которые обязательны.При
выборе «ФИО» трудовой договор, ТН, подразделение старое и должность старая,
ставятся автоматически. При выборе Подразделения или должности в верхней части
формы в таблице отображаются вакантные должности в подразделениях. Оклад
заполняется автоматически согласно штатному расписанию, Печать документа
выполняется по кнопке «Печать формы Т-5» приложении Б. Документ провести и
закрыть.
Рисунок 45 - Перевод Сотрудника
И посмотрим на Панели действий «Отчёт о
переведённых».
Рисунок 46 - Отчёт о переводе
Заполнение документа «Увольнение»
Для того чтобы заполнить «Увольнение» необходимо
перейти по ссылке «Увольнение» на Панели навигации. создать новый документ,
заполнить поля.
Красным отмечены те поля которые обязательны.
При выборе «ФИО», ТН, подразделение, должность, трудовой договор ставятся
автоматически
Печать документа выполняется по кнопке «Печать
формы Т-8» приложении Б. Документ провести и закрыть.
Рисунок 47 - Увольнение сотрудника
И посмотрим на рабочем столе «отчёт об
уволенных».
Рисунок 48 - Отчёт об уволенных
Заполнение документа «Отпуск»
Для того чтобы заполнить «Отпуск» необходимо
перейти по ссылке «Отпуск» на Панели навигации. Создать новый документ,
заполнить поля.
При выборе «ФИО» ТН, подразделение, должность,
ставятся автоматически.
Печать документа выполняется по кнопке «Печать
формы Т-7» приложении Б. Документ провести и закрыть.
Рисунок 49- Отпуск
И посмотрим на рабочем столе «График отпусков».
Рисунок 50 - График отпусков
Просмотрим «Отчёт универсальный» для этого нам
нужно перейти на рабочий стол «Отчёты» и нажимаем сформировать.
Рисунок 51 - Отчёт универсальный
Заполнение «Отчёт кадровом составе предприятия».
Просмотрим «Отчёт кадровом составе предприятия»
для этого нам нужно перейти на Панель действий «Отчёты» и нажимаем
сформировать.
Заполнение «Отчёт вакансиях на предприятии».
Просмотрим «Отчёт вакансиях на предприятии» для
этого нам нужно перейти на Панель действий «Отчёты» и нажимаем сформировать.
Заполнение «Приказы».
Просмотрим «Приказы» для этого нам нужно перейти
на Панель действий «Отчёты» выбрать сотрудника и нажать сформировать
Веб-клиент
Возможно получить доступ к системе по обычным
веб каналам (через сеть Интернет) для этого в меню Администрирование, выбераем
Публикацию на веб-сервере и нажимаем кнопку опубликрвать. После успешной
опубликации, мы получаемвможность получить доступ к нашей системе из любого
уголка планеты через обычный веб-браузер, зная лишь веб-адрес.
5. Требования по охране труда
.1 Требования безопасности в
аварийных ситуациях
Работающий на ЭВМ обязан:
во всех случаях обнаружения проводов питания,
неисправности заземления, других повреждений электрооборудования - появления
запаха гари и при любых случаях сбоя при работе технического оборудования или
программного обеспечения прекратить работу, сообщить специалисту;
при возгорании оборудования отключить питание и
принять меры к тушению очага пожара при помощи огнетушителя, вызвать пожарную
службу по телефон 01, сообщить о происшествии специалисту;
в случае появления рези в глазах, резком
ухудшении видимости, появлении боли в пальцах, усилении сердцебиения немедленно
покинуть рабочее место, сообщить о происшедшем специалисту или вызвать скорую
помощь по телефону 03.
Требования безопасности перед началом работы:
Перед началом работы пользователь обязан:
посмотреть и привести в порядок рабочее место:
отрегулировать освещение на рабочем месте;
проверить правильность подключения оборудования
в электросеть;
убедиться в наличии защитного заземления и
подключения экранного проводника к корпусу процессора:
протереть специальной салфеткой поверхность
экрана;
убедиться в отсутствии дисков в дисководе
компьютера.
При включении компьютера необходимо соблюдать
следующую последовательность включения оборудования:
включить блок питания:
включить периферийные устройства (принтер,
монитор и др.);
включить системный блок (процессор).
Запрещается приступать к работе при:
отсутствии гигиенического сертификата;
обнаружении неисправности оборудования;
отсутствии защитного заземления;
нарушении гигиенических норм размещения
(не менее 6 кв.м. на компьютер).
Для дополнительной защиты рекомендуется
поставить сбоку и сзади компьютера комнатные растения. Предпочтительнее всего
опунции и кактусы, которые не только поглощают, но и перерабатывают
компьютерное излучение.
Требования безопасности во время работы.
Работающий на компьютере в процессе работы
обязан:
выполнять только ту работу, которая ему была
поручена;
в течение всего рабочего дня содержать в порядке
и чистоте рабочее место;
внешнее устройство «мышь» применять только при
наличии специального Коврика;
при необходимости прекращения работы на
некоторое время корректно закрыть все активные задачи;
выполнять санитарные нормы и соблюдать режимы
работы и отдыха.
Продолжительность непрерывной работы не должна
превышать 2 часов.
Регламентируемые перерывы через 2 часа от начала
рабочего дня и через 2 часа после обеденного перерыва продолжительностью 15
минут каждый;
соблюдать правила эксплуатации вычислительной
техники в соответствии с инструкцией по эксплуатации
соблюдать расстояние от глаз до экрана в
пределах 60-80 см.
Во время работы запрещается:
прикасаться к задней панели системного блока
(процессора)
при включенном питании;
загромождать верхние панели устройств бумагой в
целях недопущения накапливания органической пыли;
производить отключение питания во время
наполнения активной задачи;
производить частые переключения питания;
допускать попадание влаги на поверхность
процессора, монитор, рабочую поверхность клавиатуры, принтеров и других
устройств,
производить самостоятельное вскрытие и ремонт
оборудования.
Требование безопасности после окончания работы.
По окончании работы необходимо соблюдать
следующую последовательность выключения вычислительной техники:
произвести закрытие всех активных задач;
убедиться, что в дисководе нет дисков;
выключить питание системного блока;
выключить питание всех периферийных устройств;
отключить блок питания.
По окончании работы работающий обязан принести в
порядок рабочее место.
Общие требования безопасности.
Настоящая инструкция разработана на основе
Типовой инструкции по охране труда для операторов и пользователей, персональных
электронно-вычислительных машин (ПЭВМ) и работников, занятых эксплуатацией ПЭВМ
и предназначена для предотвращения неблагоприятного воздействия на человека
вредных факторов, сопровождающих работы на компьютере.
На работающего в процессе труда возможно
действие следующих опасных и вредных производственных факторов:
ионизирующие и неионизирующие излучения
видеоматериалов:
повышенное значение напряжения в электрической
цепи, замыкание которой может произойти через тело человека;
зрительное утомление, а также неблагоприятное
воздействие на зрение мерцаний символов фона при неустойчивой работе и нечетком
изображении на экране.
На основании требований п. 10.3 Санитарных
правил и норм «Гигиенические требования к персональным электронно-вычислительным
машинам и организации работы» СанПиН 2,2.2.542-96, утверждённый постановлением
Госкомсанэпиднадзора России N 14 от 14 июля 1996г. «женщины со времени
установления беременности и в период кормления ребёнка грудью к выполнению всех
видов работ, связанных с использованием ПЭВМ, не допускаются».
6. Экономическая часть
.1 Расчёт трудозатрат на разработку
программного продукта
Произведём расчёт трудозатрат.
Трудозатраты измеряются в чел.*час.
где: tи- затраты труда на исследование алгоритма
решения задачи;а - затраты на разработку блок-схемы алгоритма;п - затраты на
программирование;отл. окон.- затраты на отладку программы;д - затраты на
подготовку документации.
Затраты труда на исследование алгоритма решения
задачи с учетом уточнения описания и квалификации программиста вычисляются по
формуле:
где: Q - количество отчетов в программе;
В - коэффициент увеличения затрат зависит от
сложности программы (1…5);- коэффициент квалификации разработчика.
10*1*(1+1)*100=1100
где: q - предполагаемое число отчетов и форм;
с - коэффициент сложности программы (1…2);
р - коэффициент коррекции программы в ходе ее
разработки (0,5..1);
в - нормировочный коэффициент (100).
Коэффициент. увеличения затрат В характеризует
увеличение затрат труда вследствие недостаточно полного описания задачи,
уточнений и некоторой доработки. Этот коэффициент может принимать значения от
1,2 до 5.
Коэффициент квалификации разработчика зависит от
стажа работы программиста следующим образом:
стаж до 2-х лет - к=0,8;
от 2 до 3 лет - к=1;
от 3 до 7 лет - к=1,3…1,4;
от 7 лет - к=1,5…1,6.
Произведём расчёт затраты труда на исследование
алгоритма решения задачи:
Затраты труда на исследование алгоритма решения
задачи составят 47,07чел.*час.
Расчет затрат на разработку блок-схемы
алгоритма.
Расчет трудозатрат производится по формуле:
tа
= Q/(60…75)*k (4)а
= 1100/(75*0,8)= 11,73
Затраты на разработку блок-схемы алгоритма
составят 11,73чел.*час. Расчет затрат на отладку программы на персональном
компьютере. Отладкой программ занимается программист.
Отладка программы - выполнение программы для
выявления дефектов в функциях, в логике, проводится проверка программного
продукта на соответствие технического задания.
Расчет трудозатрат на отладку производится по
формуле:
Т.отл = Q/(40…50)*k (5)
Т.отл = 1100/(40*0.8)= 34,38
Затраты на отладку программы на персональном
компьютере составят 34,38чел*час.
При комплексной отладке программы следует
предусмотреть возрастающие в 1,5 раз затраты, поэтому окончательные трудовые
затраты на отладку программы будут равны:
отл.окон. = tотл* 1,5 (6)отл.окон. = 34,38 *
1,5=51.56
Затраты на окончательную отладку программы на
персональном компьютере составят 51.56чел.*час.
Трудовые затраты на подготовку документации
будут складываться из затрат труда на подготовку рукописного текста и затрат
труда на редактирование, печать и оформление документации.
где: tдп - трудовые затраты на подготовку
материалов в рукописи;др - затраты на редактирование, печать и оформление
документов.
Рассчитаем трудозатраты на подготовку материалов
в рукописи по формуле:
дп =
1100/(200*0,8)= 6,87
Затраты на редактирование, печать и оформление
tдр прямо пропорционально зависит от затрат на подготовку материалов в рукописи.
Произведём расчёт трудовых затрат на подготовку
документации:
Таким образом, общие трудовые затраты на
подготовку документации составят чел*час.
Расчет трудозатрат на написание исходного кода
программы (программирование)
Программирование - процесс создания компьютерных
программ и/или программного обеспечения с помощью языков программирования.
Затраты на программирование составляют примерно
20-30% от общих трудозатрат на остальные этапы разработки программы.
Рассчитаем затраты на программирование, как 20%
от общих трудозатрат:
(10)
Затраты на программирование составят чел*час.
Расчет общих трудозатрат на разработку
программного продукта.
Полученные трудозатраты сводим в таблицу,
производим суммирование всех видов трудозатрат на разработку программного и
находим общие трудозатраты Т:
Таким образом, общие трудозатраты на разработку
программного продукта составят чел*час.
Таблица 12 - Структура трудозатрат на разработку
программного продукта
Виды
трудозатрат
|
Индекс
|
Трудоемкость,
чел*час
|
Структура
трудозатрат, %
|
На
исследование алгоритма
|
tи
|
29,64
|
23.53
|
На
разработку блок - схемы
|
tа
|
11,75
|
9.32
|
На
программирование
|
tп
|
20.99
|
16.66
|
На
отладку программы
|
Tотл.окон
|
51.56
|
40.94
|
На
подготовку документации
|
tд
|
12.02
|
9.55
|
Итого
(общие трудозатраты)
|
Т
|
125.94
|
100
|
Из приведенной таблицы видно, что наибольшее
количество трудозатрат при разработке программного продукта обычно вызывают: на
исследование алгоритма и отладку программы.
6.2 Составление сметы затрат на
разработку программного продукта
Смета затрат на разработку программного продукта
включает в себя следующие статьи:
затраты на оплату труда программисту;
единый социальный налог (26 % от затрат на
оплату труда);
затраты на оплату машинного времени.
.2.1 Расчет затрат на оплату труда
разработчика
Расходы на оплату труда разработчика программы ()
определяются путем умножения трудоемкости создания программы на среднюю часовую
зарплату программиста. Запишем расходы на оплату труда разработчика программы в
виде формулы:
где:-трудоемкость
разработки программного продукта, чел*час;
- средняя часовая
оплата труда программиста, рублей в час.
где:-
заработная плата программиста;
- месячный фонд
рабочего времени, часов.
Произведём расчёт среднечасовой оплаты труда
программиста:
Произведём расчёты оплаты труда разработчика
программы:
Дополнительная заработная плата:
Итого затраты па оплату труда:
Расходы на оплату труда разработчика программы
составят .
.2.2 Расчет отчислений в социальные
фонды
Единый социальный налог составляет 26 % от
затрат на оплату труда программиста:
.2.3 Рассчитаем затраты на оплату
машинного времени при отладке программы
Стоимость машинного часа работы рассчитывается
по формуле:
где:-
стоимость машинного часа работы, руб.;
- амортизация
компьютера за 1 м/ч, руб.;
- стоимость
электроэнергии за 1 ч работы, руб.
Таблица 13 - Находим рыночную стоимость
компьютера
Наименование
|
Марка
|
Стоимость,
руб.
|
Ноутбук
|
MAC
series N53S
|
19400
|
Мышка
|
Мышь
Genius Net Scroll
|
600
|
Итого:
|
|
20000
руб.
|
Амортизация компьютера за 1 м/ч вычисляется по
следующей формуле:
где:-
стоимость компьютера, руб.;
- норма амортизации
компьютера.
Стоимость электроэнергии за 1 ч работы
вычисляется по следующей формуле:
где:-
мощность компьютера, кВт/ч;
- стоимость 1 кВт
электроэнергии, руб.
Рассчитаем Стоимость электроэнергии.
Используя теперь полученные значения, можно
рассчитать стоимость 1 м/ч:
Себестоимость программы:
.3 Обоснование цены программного
продукта
Произведём расчёт цены программного продукта и
её обоснование.
Примем процент рентабельности (условно) - 15%
Прибыль рассчитать по формуле:
где:себестоимость;
процент
рентабельности.
Цена программного продукта равна сумме полной
себестоимости и прибыли:
Цена программного продукта с НДС (НДС в России
18%):
Рассчитаем стоимость продукта по отпускной цене:
Стоимость программного продукта составляет руб.
6.4 Расчет экономической
эффективности
Значение экономической эффективности от
использования программного продукта определяется по формуле:
где:-
затраты по базовому варианту, руб.;
-затраты при
использовании программного обеспечения (ПО), руб.
где:-трудоемкость
разработки программного продукта, чел*час;
- средняя часовая
оплата труда программиста, рублей в час.
- доля заработной
платы в общей смете затрат организации, определяется:
Для решения задачи 6ез использования разрабатываемого
программного продукта необходимо примерно в 3 раза больше действующего фонда
рабочего времени.
Произведём расчёт затраты по базовому варианту:
Теперь определим затраты при использовании
программы:
где:
-стоимость машинного часа работы, руб.;
- срок службы
программного обеспечения, принимаемым равным 5 годам.
Произведём расчёты затрат прииспользовании
программы:
Теперь рассчитаем значение экономической
эффективности от использования программного продукта:
Таким образом, произведенный экономический
анализ эффективности создания и эксплуатации программного продукта доказывает
целесообразность его использования на предприятии.
6.4.1 Расчет срока окупаемости
проекта
Определим срок окупаемости капиталовложений:
Таблица 14 - Основные технико-экономические
показатели
Показатели
|
Ед.
измерения
|
Значения
|
Общие
трудозатраты на разработку программного продукта
|
Чел*час
|
125,94
|
Затраты
на оплату труда
|
Руб.
|
|
Отчислений
в социальные фонды
|
Руб.
|
|
Затраты
на оплату машинного времени
|
Руб.
|
|
Себестоимость
программы
|
Руб.
|
|
Цена
программного продукта
|
Руб.
|
|
Экономическая
эффективность
|
Руб.
|
|
Срок
окупаемости капиталовложений
|
Год
|
|
Заключение
В соответствии с заданием к дипломному проекту
разработана автоматизированная система Кадрового учёта. Наряду с разработкой
была изучена предметная область, составлена концептуальная модель, выбрана
среда разработки системы и модель данных.
Данный продукт будет в дальнейшем опробован на
предприятии ООО «Силуэт-2004» Кадровый учёт, что позволит автоматизировать
кадровый учет, выполняемый пока «вручную».
По результатам проделанной работы была
подготовлена пояснительная записка.
Список использованных источников
1. А.В.
Рудаков «Технология разработки программных продуктов»;.
2. Гагарина
«Основы технологии разработки программных продуктов. Учебное пособие».
. М.Г.
Радченко, Е.Ю. Хрусталева. 1С: Предприятие 8.2. Практическое пособие
разработчика - Москва, 2009.
. Ажеронок
В.А. Островерх А.В, Радченко М.Г. Хрусталева Е.Ю. Разработка управляемого
интерфейса - "1С-Паблишинг", 2010.
. Хрусталева
Е.Ю. Разработка сложных отчетов в 1С. Предприятии 8. Система компоновки данных.
. Габец
А.П., Гончаров Д.И. Электронная версия книги "1С:Предприятие 8.1. Простые
примеры разработки".
. Бояркин
В.А., Филатов А.И. 1С:Предприятие 8. Конвертация данных: обмен данными между
прикладными решениями.
. Андрей
Габец, Дмитрий Гончаров, Дмитрий Козырев, Дмитрий Кухлевский, Максим Радченко.
Профессиональная разработка в системе 1С:Предприятие 8.
. Грянина
Е.А., Харитонов С.А. Секреты профессиональной работы с «1С:Бухгалтерией 8».
КАДРОВЫЙ УЧЕТ и ЗАРПЛАТА.
. Харитонов
С.А Бухгалтерский и налоговый учет в программе "1С:Бухгалтерия 8".
Издание 2.
. Е.Ю.
Хрусталева Разработка сложных отчетов в 1С:Предприятии 8 Система компоновки
данных.
. А.П.
Габец, Д.И. Гончаров 1С:Предприятие 8.1. Простые примеры разработки.
. Д.И.
Гончаров, Е.Ю. Хрусталева. Решение специальных прикладных задач в "1С:Предприятии
8.2". Серия "1С:Профессиональная разработка".
Приложение
Листинг 1 - Процедура проведения документа
«Штатное Расписание»
Процедура ОбработкаПроведения(Отказ, Режим)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
// регистр ШтатноеРасписаниеРегистр Приход
Движения.ШтатноеРасписаниеРегистр.Записывать =
Истина;
Для Каждого ТекСтрокаШтатноеРасписание Из
ШтатноеРасписание Цикл
Движение = Движения.ШтатноеРасписаниеРегистр.Добавить();
Движение.ВидДвижения =
ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Должность =
ТекСтрокаШтатноеРасписание.Должность;
Движение.Колличество =
ТекСтрокаШтатноеРасписание.Колличество;
КонецЦикла;
КонецПроцедуры
Листинг2. Процедура проведения документа «Приём»
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
// регистр ШтатноеРасписаниеРегистр Расход
Движения.ШтатноеРасписаниеРегистр.Записывать =
Истина;
Для Каждого ТекСтрокаПриёмСотрудника Из
СписокСотрудников Цикл
Движение =
Движения.ШтатноеРасписаниеРегистр.Добавить();
Движение.ВидДвижения =
ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Должность = ТекСтрокаПриёмСотрудника.Должность;
Движение.Подразделение=
ТекСтрокаПриёмСотрудника.Подразделение;
Движение.Оклад=ТекСтрокаПриёмСотрудника.СтавкаОклад;
Движение.Количество = 1;
// При проведении док приём претендент
становится сотрудникои заноссится в справочник сотрудник
НовыйСотрудник=Новый
Структура("Наименование,Должность,Подразделение,Приказ,ТН ");
НовыйСотрудник.Наименование=ТекСтрокаПриёмСотрудника.ФИО;
НовыйСотрудник.Приказ=ЭтотОбъект.Ссылка;
НовыйСотрудник.Подразделение=ТекСтрокаПриёмСотрудника.Подразделение;
НовыйСотрудник.ТН=ТекСтрокаПриёмСотрудника.ТН;
// проверить есть ли в справочнике такой
сотрудник с такой должностью и подразделением п
//есть нет - создать, если есть - не создовать
Если НайтиСотрудника(НовыйСотрудник)//Пустая
ссылка=истина
тогда
СоздатьЭлементСправочника(НовыйСотрудник);
КонецЕсли;
Движение.Период=Дата;
Движение.Регистратор=ЭтотОбъект.Ссылка;
Движение.Сотрудник=ТекСтрокаПриёмСотрудника.ФИО;
КонецЦикла;
&НаСервере
Процедура СоздатьЭлементСправочника(СтруктураДанные);
Сотрудник=Справочники.Сотрудники.СоздатьЭлемент();
//программно создаю элемент справочник сотрудники
Сотрудник.Наименование=СтруктураДанные.Наименование;
Сотрудник.Должность=СтруктураДанные.Должность;
Сотрудник.Подразделение=СтруктураДанные.Подразделение;
Сотрудник.ТН=СтруктураДанные.ТН;
Сотрудник.Приказ=СтруктураДанные.Приказ;
Сотрудник.Записать()
КонецПроцедуры
&НаСервере
Функция НайтиСотрудника(НовыйСотрудник);
//создать если пустая
Возврат
Справочники.Сотрудники.НайтиПоНаименованию(НовыйСотрудник.Наименование).Пустая();
КонецФункции
&НаКлиенте
Процедура ПереводФИОПриИзменении(Элемент)
Перем Подразделение;
Перем Должность;
Перем Номер;
Перем Дата;
перем Договор;
Перем Ссылка;
Перем ТН;
ТекущаяСтрока=Элементы.Перевод.ТекущиеДанные;//та
строка которую выберет пользователь
ФИО=ТекущаяСтрока.ФИО;//в текущей строке есть
поле ФИО в нём фамилия
ОпределитьСотрудника(ФИО,Должность,Подразделение,ТН);//
по ФИО получим должность с сервера из справочника сотрудники
ТекущаяСтрока.ДолжностьСтарая=Должность;
ТекущаяСтрока.ПодразделениеСтарое=Подразделение;
ТекущаяСтрока.ТН=ТН;
ПолучитьДоговор(ФИО,Дата,Номер,Договор);
ТекущаяСтрока.ТрудовойДоговор= Договор;
КонецПроцедуры
&НаСервере
Процедура
ОпределитьСотрудника(ФИО,Должность,Подразделение,ТН);
Сотрудник=Справочники.Сотрудники.НайтиПоНаименованию(ФИО).ПолучитьОбъект();//
по Фио опредилил элемент справочника что бы взять его реквизит должность
Должность=Сотрудник.Должность;
Подразделение=Сотрудник.Подразделение;
ТН=Сотрудник.ТН;
КонецПроцедуры
&НаКлиенте
Процедура
ПереводДолжностьНоваяПриИзменении(Элемент)
ТекущаяСтрока=Элементы.Перевод.ТекущиеДанные;//та
строка которую выберет пользователь
Должность=ТекущаяСтрока.ДолжностьНовая; //в
текущей стороке возмём должность
Подразделение=ТекущаяСтрока.ПодразделениеНовое;
ТекущаяСтрока.Оклад=ОпределитьСтавку(Должность,Подразделение);
ПолучитьВакансииДолжности(Должность);
КонецПроцедуры
&НаСервере
Функция ПолучитьВакансииДолжности(Должность);
//запросим вакансии в регистре штат расписание
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
ШтатноеРасписаниеРегистрОстаткиИОбороты.Должность.Ссылка
КАК Должность,
ШтатноеРасписаниеРегистрОстаткиИОбороты.Подразделение.Ссылка
КАК Подразделение,
ШтатноеРасписаниеРегистрОстаткиИОбороты.КоличествоКонечныйОстаток
КАК Количество,
ШтатноеРасписаниеРегистрОстаткиИОбороты.ОкладКонечныйОстаток
КАК Оклад
ИЗ
РегистрНакопления.ШтатноеРасписаниеРегистр.ОстаткиИОбороты
КАК ШтатноеРасписаниеРегистрОстаткиИОбороты
ГДЕ
ШтатноеРасписаниеРегистрОстаткиИОбороты.Должность.Ссылка
= &Должность";
Запрос.УстановитьПараметр("Должность",Должность);
ТаблицаЗначений=Запрос.Выполнить().Выгрузить();//результат
запроса выгрузится в таблицу значение
Вакансии.Загрузить(ТаблицаЗначений);
КонецФункции
&НаСервере
Функция
ОпределитьСтавку(Должность,Подразделение);
//Ставка=Документы.ШтатноеРасписание.ПолучитьСсылку().ПолучитьОбъект().ШтатноеРасписание.
Ставка=РегистрыНакопления.ШтатноеРасписаниеРегистр.Выбрать();
Пока Ставка.Следующий() цикл
если (Ставка.Должность= Должность) и
(Ставка.Подразделение=Подразделение) тогда
Возврат ставка.Оклад ;
КонецЕсли;
КонецЦикла;
КонецФункции
&НаСервере
Процедура
ПолучитьДоговор(ФИО,Дата,Номер,Наименование);
ФИОСылка=Справочники.ФизЛица.НайтиПоНаименованию(ФИО);
Договор=Документы.ТрудовойДоговор.НайтиПоРеквизиту("ФИО",ФИОСылка);
Наименование=Строка(Договор);
Дата=Договор.Дата;
Номер=Договор.Номер;
//Наименование=Договор.наи
КонецПроцедуры
&НаКлиенте
Процедура ПечатьФормы(Команда)
//Подготовка печатной формы соглашение
Сообщить("Печать отчёта");
ТабДок=Новый ТабличныйДокумент;
ПолучитьДанные(ТабДок);
ТабДок.Показать();
КонецПроцедуры
&НаСервере
функция ПолучитьДанные(ТабДок)
Макет=Документы.Перевод.ПолучитьМакет("Список");
ТабДок=Новый ТабличныйДокумент;
Область=Макет.ПолучитьОбласть("док");
для каждого СтрокаТаблЧасти из Объект.Перевод
Цикл
Область.Параметры.ФИО=СтрокаТаблЧасти.ФИО;
Область.Параметры.НаименованиеУчреждения=Константы.НаименованиеУчреждения.Получить();//
неизменяемая информация
Область.Параметры.Номер=Объект.Номер;
Область.Параметры.Дата=Объект.Дата;
Область.Параметры.ПодразделениеСтарое=СтрокаТаблЧасти.ПодразделениеСтарое;
Область.Параметры.ПодразделениеНовое=СтрокаТаблЧасти.ПодразделениеНовое;
Область.Параметры.ПериодС=СтрокаТаблЧасти.ПериодС;
Область.Параметры.ПериодПо=СтрокаТаблЧасти.ПериодПо;
Область.Параметры.ТН=СтрокаТаблЧасти.ТН;
Область.Параметры.ДолжностьСтарая=СтрокаТаблЧасти.ДолжностьСтарая;
Область.Параметры.ДолжностьНовая=СтрокаТаблЧасти.ДолжностьНовая;
Область.Параметры.Оклад=СтрокаТаблЧасти.Оклад;
Область.Параметры.ПерсональнаяНадбавка=СтрокаТаблЧасти.ПерсональнаяНадбавка;
Область.Параметры.ТрудовойДоговор=СтрокаТаблЧасти.ТрудовойДоговор;
Должность=Справочники.Должность.НайтиПоНаименованию("Директор");
Директор=Справочники.Сотрудники.НайтиПоРеквизиту("Должность",Должность);
Область.Параметры.ДолжностьДиректора=Должность;
Область.Параметры.ФИОдиректор=Директор;
ТабДок.Вывести(Область);
КонецЦикла;
Возврат ТабДок;
КонецФункции
&НаКлиенте
Процедура
ПереводПодразделениеНовоеПриИзменении(Элемент)
//заполнить подразделение, префикс Табельного
номера и ставки
ТекущаяСтрока=Элементы.Перевод.ТекущиеДанные;//та
строка которую выберет пользователь
Должность=ТекущаяСтрока.ДолжностьНовая; //в
текущей стороке возмём должность
Подразделение=ТекущаяСтрока.ПодразделениеНовое;
ТекущаяСтрока.ОкладНовый=ОпределитьСтавку(Должность,Подразделение);
ФИО=ТекущаяСтрока.ФИО;
// показать наличие в табличке
// запросить
ПолучитьВакансииПодразделение(Подразделение);
//ТекущаяСтрока.ТН=ПолучитьПрефикс(ПодразделениеНовое)+"-"+ПолучитьНомер(ФИО);
КонецПроцедуры
&НаСервере
Функция ПолучитьВакансииПодразделение(Подразделение);
//запросим вакансии в регистре штат расписание
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
ШтатноеРасписаниеРегистрОстаткиИОбороты.Должность.Ссылка
КАК Должность,
ШтатноеРасписаниеРегистрОстаткиИОбороты.Подразделение.Ссылка
КАК Подразделение,
ШтатноеРасписаниеРегистрОстаткиИОбороты.КоличествоКонечныйОстаток
КАК Количество,
ШтатноеРасписаниеРегистрОстаткиИОбороты.ОкладКонечныйОстаток
КАК Оклад
ИЗ
РегистрНакопления.ШтатноеРасписаниеРегистр.ОстаткиИОбороты
КАК ШтатноеРасписаниеРегистрОстаткиИОбороты
ГДЕ
ШтатноеРасписаниеРегистрОстаткиИОбороты.Подразделение.Ссылка
= &Подразделение";
Запрос.УстановитьПараметр("Подразделение",Подразделение);
ТаблицаЗначений=Запрос.Выполнить().Выгрузить();//результат
запроса выгрузится в таблицу значение
Вакансии.Загрузить(ТаблицаЗначений);
КонецФункции
Листинг3. Процедура проведения документа
«Перевод»
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
Движения.ШтатноеРасписаниеРегистр.Записывать =
Истина;
Для Каждого ТекСтрокаПеревод Из Перевод Цикл
// регистр ШтатноеРасписаниеРегистр Приход
Движение =
Движения.ШтатноеРасписаниеРегистр.Добавить();
Движение.ВидДвижения =
ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Должность =
ТекСтрокаПеревод.ДолжностьСтарая;
Движение.Подразделение =
ТекСтрокаПеревод.ПодразделениеСтарое;
Движение.Количество = 1;
Движение.Оклад = ТекСтрокаПеревод.Оклад;
КонецЦикла;
Движения.ШтатноеРасписаниеРегистр.Записывать =
Истина;
Для Каждого ТекСтрокаПеревод Из Перевод Цикл
// регистр ШтатноеРасписаниеРегистр Расход
Движение =
Движения.ШтатноеРасписаниеРегистр.Добавить();
Движение.ВидДвижения =
ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Должность =
ТекСтрокаПеревод.ДолжностьНовая;
Движение.Подразделение =
ТекСтрокаПеревод.ПодразделениеНовое;
Движение.Количество = 1;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
&НаСервере
Процедура
СоздатьЭлементСправочника(СтруктураДанные);
Сотрудник=Справочники.Сотрудники.СоздатьЭлемент();
//программно создаю элемент справочник сотрудники
Сотрудник.Наименование=СтруктураДанные.Наименование;
Сотрудник.Должность=СтруктураДанные.Должность;
Сотрудник.Приказ=СтруктураДанные.Приказ;
Сотрудник.Записать();
КонецПроцедуры
&НаКлиенте
Процедура ПереводФИОПриИзменении(Элемент)
Перем Подразделение;
Перем Должность;
Перем Номер;
Перем Дата;
перем Договор;
Перем Ссылка;
Перем ТН;
ТекущаяСтрока=Элементы.Перевод.ТекущиеДанные;//та
строка которую выберет пользователь
ФИО=ТекущаяСтрока.ФИО;//в текущей строке есть
поле ФИО в нём фамилия
ОпределитьСотрудника(ФИО,Должность,Подразделение,ТН);//
по ФИО получим должность с сервера из справочника сотрудники
ТекущаяСтрока.ДолжностьСтарая=Должность;
ТекущаяСтрока.ПодразделениеСтарое=Подразделение;
ТекущаяСтрока.ТН=ТН;
ПолучитьДоговор(ФИО,Дата,Номер,Договор);
ТекущаяСтрока.ТрудовойДоговор= Договор;
КонецПроцедуры
&НаСервере
Процедура
ОпределитьСотрудника(ФИО,Должность,Подразделение,ТН);
Сотрудник=Справочники.Сотрудники.НайтиПоНаименованию(ФИО).ПолучитьОбъект();//
по Фио опредилил элемент справочника что бы взять его реквизит должность
Должность=Сотрудник.Должность;
Подразделение=Сотрудник.Подразделение;
ТН=Сотрудник.ТН;
КонецПроцедуры
&НаКлиенте
Процедура ПереводДолжностьНоваяПриИзменении(Элемент)
ТекущаяСтрока=Элементы.Перевод.ТекущиеДанные;//та
строка которую выберет пользователь
Должность=ТекущаяСтрока.ДолжностьНовая; //в
текущей стороке возмём должность
Подразделение=ТекущаяСтрока.ПодразделениеНовое;
ТекущаяСтрока.Оклад=ОпределитьСтавку(Должность,Подразделение);
ПолучитьВакансииДолжности(Должность);
КонецПроцедуры
&НаСервере
Функция ПолучитьВакансииДолжности(Должность);
//запросим вакансии в регистре штат расписание
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
ШтатноеРасписаниеРегистрОстаткиИОбороты.Должность.Ссылка
КАК Должность,
ШтатноеРасписаниеРегистрОстаткиИОбороты.Подразделение.Ссылка
КАК Подразделение,
ШтатноеРасписаниеРегистрОстаткиИОбороты.КоличествоКонечныйОстаток
КАК Количество,
ШтатноеРасписаниеРегистрОстаткиИОбороты.ОкладКонечныйОстаток
КАК Оклад
ИЗ
РегистрНакопления.ШтатноеРасписаниеРегистр.ОстаткиИОбороты
КАК ШтатноеРасписаниеРегистрОстаткиИОбороты
ГДЕ
ШтатноеРасписаниеРегистрОстаткиИОбороты.Должность.Ссылка
= &Должность";
Запрос.УстановитьПараметр("Должность",Должность);
ТаблицаЗначений=Запрос.Выполнить().Выгрузить();//результат
запроса выгрузится в таблицу значение
Вакансии.Загрузить(ТаблицаЗначений);
КонецФункции
&НаСервере
Функция
ОпределитьСтавку(Должность,Подразделение);
//Ставка=Документы.ШтатноеРасписание.ПолучитьСсылку().ПолучитьОбъект().ШтатноеРасписание.
Ставка=РегистрыНакопления.ШтатноеРасписаниеРегистр.Выбрать();
Пока Ставка.Следующий() цикл
если (Ставка.Должность= Должность) и
(Ставка.Подразделение=Подразделение) тогда
Возврат ставка.Оклад ;
КонецЕсли;
КонецЦикла;
КонецФункции
&НаСервере
Процедура
ПолучитьДоговор(ФИО,Дата,Номер,Наименование);
ФИОСылка=Справочники.ФизЛица.НайтиПоНаименованию(ФИО);
Договор=Документы.ТрудовойДоговор.НайтиПоРеквизиту("ФИО",ФИОСылка);
Наименование=Строка(Договор);
Дата=Договор.Дата;
Номер=Договор.Номер;
//Наименование=Договор.наи
КонецПроцедуры
&НаКлиенте
Процедура ПечатьФормы(Команда)
//Подготовка печатной формы соглашение
Сообщить("Печать отчёта");
ТабДок=Новый ТабличныйДокумент;
ПолучитьДанные(ТабДок);
ТабДок.Показать();
КонецПроцедуры
&НаСервере
функция ПолучитьДанные(ТабДок)
Макет=Документы.Перевод.ПолучитьМакет("Список");
ТабДок=Новый ТабличныйДокумент;
Область=Макет.ПолучитьОбласть("док");
для каждого СтрокаТаблЧасти из Объект.Перевод
Цикл
Область.Параметры.ФИО=СтрокаТаблЧасти.ФИО;
Область.Параметры.НаименованиеУчреждения=Константы.НаименованиеУчреждения.Получить();//
неизменяемая информация
Область.Параметры.Номер=Объект.Номер;
Область.Параметры.Дата=Объект.Дата;
Область.Параметры.ПодразделениеСтарое=СтрокаТаблЧасти.ПодразделениеСтарое;
Область.Параметры.ПодразделениеНовое=СтрокаТаблЧасти.ПодразделениеНовое;
Область.Параметры.ПериодС=СтрокаТаблЧасти.ПериодС;
Область.Параметры.ПериодПо=СтрокаТаблЧасти.ПериодПо;
Область.Параметры.ТН=СтрокаТаблЧасти.ТН;
Область.Параметры.ДолжностьСтарая=СтрокаТаблЧасти.ДолжностьСтарая;
Область.Параметры.ДолжностьНовая=СтрокаТаблЧасти.ДолжностьНовая;
Область.Параметры.Оклад=СтрокаТаблЧасти.Оклад;
Область.Параметры.ПерсональнаяНадбавка=СтрокаТаблЧасти.ПерсональнаяНадбавка;
Область.Параметры.ТрудовойДоговор=СтрокаТаблЧасти.ТрудовойДоговор;
Должность=Справочники.Должность.НайтиПоНаименованию("Директор");
Директор=Справочники.Сотрудники.НайтиПоРеквизиту("Должность",Должность);
Область.Параметры.ДолжностьДиректора=Должность;
Область.Параметры.ФИОдиректор=Директор;
ТабДок.Вывести(Область);
КонецЦикла;
Возврат ТабДок;
КонецФункции
&НаКлиенте
Процедура
ПереводПодразделениеНовоеПриИзменении(Элемент)
//заполнить подразделение, префикс Табельного
номера и ставки
ТекущаяСтрока=Элементы.Перевод.ТекущиеДанные;//та
строка которую выберет пользователь
Должность=ТекущаяСтрока.ДолжностьНовая; //в
текущей стороке возмём должность
Подразделение=ТекущаяСтрока.ПодразделениеНовое;
ТекущаяСтрока.ОкладНовый=ОпределитьСтавку(Должность,Подразделение);
ФИО=ТекущаяСтрока.ФИО;
// показать наличие в табличке
//
// запросить
ПолучитьВакансииПодразделение(Подразделение);
//ТекущаяСтрока.ТН=ПолучитьПрефикс(ПодразделениеНовое)+"-"+ПолучитьНомер(ФИО);
КонецПроцедуры
&НаСервере
Функция
ПолучитьВакансииПодразделение(Подразделение);
//запросим вакансии в регистре штат расписание
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
ШтатноеРасписаниеРегистрОстаткиИОбороты.Должность.Ссылка
КАК Должность,
ШтатноеРасписаниеРегистрОстаткиИОбороты.Подразделение.Ссылка
КАК Подразделение,
ШтатноеРасписаниеРегистрОстаткиИОбороты.КоличествоКонечныйОстаток
КАК Количество,
ШтатноеРасписаниеРегистрОстаткиИОбороты.ОкладКонечныйОстаток
КАК Оклад
ИЗ
РегистрНакопления.ШтатноеРасписаниеРегистр.ОстаткиИОбороты
КАК ШтатноеРасписаниеРегистрОстаткиИОбороты
ГДЕ
ШтатноеРасписаниеРегистрОстаткиИОбороты.Подразделение.Ссылка
= &Подразделение";
Запрос.УстановитьПараметр("Подразделение",Подразделение);
ТаблицаЗначений=Запрос.Выполнить().Выгрузить();//результат
запроса выгрузится в таблицу значение
Вакансии.Загрузить(ТаблицаЗначений);
КонецФункции
Листинг 4 - Процедура проведения документа
«Увольнение»
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
// регистр ШтатноеРасписаниеРегистр Приход
Движения.ШтатноеРасписаниеРегистр.Записывать =
Истина;
Для Каждого ТекСтрокаУвольнение Из Увольнение
Цикл
Движение =
Движения.ШтатноеРасписаниеРегистр.Добавить();
Движение.ВидДвижения =
ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Должность =
ТекСтрокаУвольнение.Должность;
Движение.Подразделение=ТекСтрокаУвольнение.Подразделение;
Движение.Количество = 1;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
&НаСервере
Процедура УдалитьЭлементСправочника(Сотрудник);
Сотрудник=Справочники.Сотрудники.НайтиПоНаименованию(Сотрудник);
//программно создаю элемент справочник сотрудники
ф=Сотрудник.ПометкаУдаления;
КонецПроцедуры
&НаКлиенте
Процедура УвольнениеФИОПриИзменении(Элемент)
Перем ТН;
Перем Дата;
Перем Номер;
Перем Договор;
Перем Должность;
Перем Подразделение;
ТекущаяСтрока=Элементы.Увольнение.ТекущиеДанные;//та
строка которую выберет пользователь
ФИО=ТекущаяСтрока.ФИО;//в текущей строке есть
поле ФИО в нём фамилия
ОпределитьСотрудника(ФИО,Должность,Подразделение,ТН);//
по ФИО получим должность с сервера из справочника сотудники
ТекущаяСтрока.Должность=Должность;
ТекущаяСтрока.Подразделение=Подразделение;
ТекущаяСтрока.ТН=ТН;
ПолучиДоговор(ФИО,Дата,Номер,Договор);
ТекущаяСтрока.ТрудовойДоговор= Договор;
КонецПроцедуры
&НаКлиенте
Процедура ПечатьФормы(Команда)
//Подготовка печатной формы соглашение
Сообщить("Печать отчёта");
ТабДок=Новый ТабличныйДокумент;
ПолучитьДанные(ТабДок);
ТабДок.Показать();
КонецПроцедуры
&НаСервере
Процедура
ПолучитьДоговор(ФИО,Дата,Номер,Договор);
Договор=Документы.ТрудовойДоговор.НайтиПоРеквизиту("ФИО",ФИО);
Дата=Договор.Дата;
Номер=Договор.Номер;
КонецПроцедуры
&НаСервере
Процедура ПолучиДоговор(ФИО,Дата,Номер,Наименование);
ФИОСылка=Справочники.ФизЛица.НайтиПоНаименованию(ФИО);
Договор=Документы.ТрудовойДоговор.НайтиПоРеквизиту("ФИО",ФИОСылка);
Наименование=Строка(Договор);
Дата=Договор.Дата;
Номер=Договор.Номер;
КонецПроцедуры
&НаСервере
Процедура ОпределитьСотрудника(ФИО,Должность,Подразделение,ТН);
Сотрудник=Справочники.Сотрудники.НайтиПоНаименованию(ФИО);//
по Фио опредилил элемент справочника что бы взять его реквизит должность
Должность=Сотрудник.Должность;
Подразделение=Сотрудник.Подразделение;
ТН=Сотрудник.ТН;
КонецПроцедуры
&НаСервере
функция ПолучитьДанные(ТабДок)
Макет=Документы.Увольнение.ПолучитьМакет("Увольнение");
ТабДок=Новый ТабличныйДокумент;
Область=Макет.ПолучитьОбласть("док");
для каждого СтрокаТаблЧасти из Объект.Увольнение
Цикл
Область.Параметры.ФИО=СтрокаТаблЧасти.ФИО;
Область.Параметры.НаименованиеУчреждения=Константы.НаименованиеУчреждения.Получить();//
неизменяемая информация
Область.Параметры.Номер=Объект.Номер;
Область.Параметры.Дата=Объект.Дата;
Область.Параметры.Подразделение=СтрокаТаблЧасти.Подразделение;
Область.Параметры.УвлитьС=СтрокаТаблЧасти.УволитьС;
Область.Параметры.ТН=СтрокаТаблЧасти.ТН;
Область.Параметры.Должность=СтрокаТаблЧасти.Должность;
Область.Параметры.ТрудовойДоговор=СтрокаТаблЧасти.ТрудовойДоговор;
Должность=Справочники.Должность.НайтиПоНаименованию("Директор");
Директор=Справочники.Сотрудники.НайтиПоРеквизиту("Должность",Должность);
Область.Параметры.ДолжностьДиректора=Должность;
Область.Параметры.ФИОдиректор=Директор;
ТабДок.Вывести(Область);
КонецЦикла;
Возврат ТабДок;
КонецФункции
Листинг 5 - Процедура проведения документа
«Увольнение»
&НаКлиенте
Процедура ПечатьСоглашения(Команда)
//Подготовка печатной формы соглашение
Сообщить("Печать отчёта");
ТабДок=Новый ТабличныйДокумент;
ПолучитьДанные(ТабДок);
ТабДок.Показать();
КонецПроцедуры
&НаСервере
функция ПолучитьДанные(ТабДок)
Макет=Документы.Резюме.ПолучитьМакет("Макет");
ТабДок=Новый ТабличныйДокумент;
Область=Макет.ПолучитьОбласть("Документ");
Область.Параметры.ФИО=Объект.ФИО;
Область.Параметры.Номер=Объект.Номер;//собственная
Номер документа резюме
Область.Параметры.Дата=Объект.Дата;//собственная
дата документа резюме
Область.Параметры.НаименованиеУчреждения=Константы.НаименованиеУчреждения.Получить();//
неизменяемая информация
Область.Параметры.ДатаС=Объект.Дата;//собственная
дата документа резюме
Область.Параметры.ДатаПО=Объект.ДатаУничтоженияДанных;
область.Параметры.ЮридическийАдрес=Константы.ЮридическийАдрес.Получить();
КонтактнаяИнформация=
Объект.КонтактнаяИнформация.Выгрузить(); //выгрузим в массив
Количество=0;
Количество=КонтактнаяИнформация.Количество();="
";
//По всем строкам табличной части
Для i=0 По Количество-1 Цикл= c+"
"+КонтактнаяИнформация[i].ВидИнформации+"
"+КонтактнаяИнформация[i].Информация;
КонецЦикла;
область.Параметры.Адрес=c;
ТабДок.Вывести(Область);
Возврат ТабДок;
КонецФункции
&НаКлиенте
Процедура
ДатаУничтоженияДанныхПриИзменении(Элемент)
Объект.ХранениеПерсонДанных=Истина;
КонецПроцедуры
Листинг 6 - Процедура проведения документа
«ТрудовойДоговор»
&НаКлиенте
Процедура Печать(Команда)
//Подготовка печатной формы Трудового договра
Сообщить("Печать отчёта");
ТабДок=Новый ТабличныйДокумент;
ПолучитьДанные(ТабДок);
ТабДок.Показать();
КонецПроцедуры
&НаСервере
функция ПолучитьДанные(ТабДок)
Макет=Документы.ТрудовойДоговор.ПолучитьМакет("Макет");
ТабДок=Новый ТабличныйДокумент;
Область=Макет.ПолучитьОбласть("док");
Область.Параметры.ФИО=Объект.ФИО;
Область.Параметры.НаименованиеУчреждения=Константы.НаименованиеУчреждения.Получить();//
неизменяемая информация
Область.Параметры.ПериодС=Объект.Дата;//собственная
дата документа резюме
область.Параметры.ЮридическийАдрес=Константы.ЮридическийАдрес.Получить();
Должность=Справочники.Должность.НайтиПоНаименованию("Директор");
Директор=Справочники.Сотрудники.НайтиПоРеквизиту("Должность",Должность);
Область.Параметры.ФИОдиректор=Директор;
Область.Параметры.Должность=Должность;
ТабДок.Вывести(Область);
Возврат ТабДок;
КонецФункции
Листинг 7 - Процедура проведения документа
«ТрудовойДоговор»
Процедура ОбработкаПроведения(Отказ, Режим)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
// регистр ШтатноеРасписаниеРегистр Приход
Движения.ШтатноеРасписаниеРегистр.Записывать =
Истина;
Для Каждого ТекСтрокаШтатноеРасписание Из
ШтатноеРасписание Цикл
Движение=Движения.ШтатноеРасписаниеРегистр.Добавить();
Движение.ВидДвижения =
ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Должность=ТекСтрокаШтатноеРасписание.Должность;
Движение.Колличество =
ТекСтрокаШтатноеРасписание.Колличество;
КонецЦикла;
КонецПроцедуры