Кадровый учёт в 1C

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 17.09.2013
Размер файла 4,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

производить отключение питания во время наполнения активной задачи;

производить частые переключения питания;

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

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

Требование безопасности после окончания работы.

По окончании работы необходимо соблюдать следующую последовательность выключения вычислительной техники:

произвести закрытие всех активных задач;

убедиться, что в дисководе нет дисков;

выключить питание системного блока;

выключить питание всех периферийных устройств;

отключить блок питания.

По окончании работы работающий обязан принести в порядок рабочее место.

Общие требования безопасности.

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

На работающего в процессе труда возможно действие следующих опасных и вредных производственных факторов:

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

повышенное значение напряжения в электрической цепи, замыкание которой может произойти через тело человека;

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

На основании требований п. 10.3 Санитарных правил и норм «Гигиенические требования к персональным электронно-вычислительным машинам и организации работы» СанПиН 2,2.2.542-96, утверждённый постановлением Госкомсанэпиднадзора России N 14 от 14 июля 1996г. «женщины со времени установления беременности и в период кормления ребёнка грудью к выполнению всех видов работ, связанных с использованием ПЭВМ, не допускаются».

6. Экономическая часть

6.1 Расчёт трудозатрат на разработку программного продукта

Произведём расчёт трудозатрат.

Трудозатраты измеряются в чел.*час.

где: tи- затраты труда на исследование алгоритма решения задачи;

tа - затраты на разработку блок-схемы алгоритма;

tп - затраты на программирование;

tотл. окон.- затраты на отладку программы;

tд - затраты на подготовку документации.

Затраты труда на исследование алгоритма решения задачи с учетом уточнения описания и квалификации программиста вычисляются по формуле:

где: Q - количество отчетов в программе;

В - коэффициент увеличения затрат зависит от сложности программы (1…5);

k - коэффициент квалификации разработчика.

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)

tа = 1100/(75*0,8)= 11,73

Затраты на разработку блок-схемы алгоритма составят 11,73чел.*час. Расчет затрат на отладку программы на персональном компьютере. Отладкой программ занимается программист.

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

Расчет трудозатрат на отладку производится по формуле:

Т.отл = Q/(40…50)*k (5)

Т.отл = 1100/(40*0.8)= 34,38

Затраты на отладку программы на персональном компьютере составят 34,38чел*час.

При комплексной отладке программы следует предусмотреть возрастающие в 1,5 раз затраты, поэтому окончательные трудовые затраты на отладку программы будут равны:

tотл.окон. = tотл* 1,5 (6)

tотл.окон. = 34,38 * 1,5=51.56

Затраты на окончательную отладку программы на персональном компьютере составят 51.56чел.*час.

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

где: tдп - трудовые затраты на подготовку материалов в рукописи;

tдр - затраты на редактирование, печать и оформление документов.

Рассчитаем трудозатраты на подготовку материалов в рукописи по формуле:

Tдп = 1100/(200*0,8)= 6,87

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

Произведём расчёт трудовых затрат на подготовку документации:

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

Расчет трудозатрат на написание исходного кода программы (программирование)

Программирование - процесс создания компьютерных программ и/или программного обеспечения с помощью языков программирования.

Затраты на программирование составляют примерно 20-30% от общих трудозатрат на остальные этапы разработки программы.

Рассчитаем затраты на программирование, как 20% от общих трудозатрат:

(10)

Затраты на программирование составят чел*час.

Расчет общих трудозатрат на разработку программного продукта.

Полученные трудозатраты сводим в таблицу, производим суммирование всех видов трудозатрат на разработку программного и находим общие трудозатраты Т:

Таким образом, общие трудозатраты на разработку программного продукта составят чел*час.

Таблица 12 - Структура трудозатрат на разработку программного продукта

Виды трудозатрат

Индекс

Трудоемкость, чел*час

Структура трудозатрат, %

На исследование алгоритма

29,64

23.53

На разработку блок - схемы

11,75

9.32

На программирование

tп

20.99

16.66

На отладку программы

Tотл.окон

51.56

40.94

На подготовку документации

12.02

9.55

Итого (общие трудозатраты)

Т

125.94

100

Из приведенной таблицы видно, что наибольшее количество трудозатрат при разработке программного продукта обычно вызывают: на исследование алгоритма и отладку программы.

6.2 Составление сметы затрат на разработку программного продукта

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

-затраты на оплату труда программисту;

-единый социальный налог (26 % от затрат на оплату труда);

-затраты на оплату машинного времени.

6.2.1 Расчет затрат на оплату труда разработчика

Расходы на оплату труда разработчика программы () определяются путем умножения трудоемкости создания программы на среднюю часовую зарплату программиста. Запишем расходы на оплату труда разработчика программы в виде формулы:

где:-трудоемкость разработки программного продукта, чел*час;

- средняя часовая оплата труда программиста, рублей в час.

где:- заработная плата программиста;

- месячный фонд рабочего времени, часов.

Произведём расчёт среднечасовой оплаты труда программиста:

Произведём расчёты оплаты труда разработчика программы:

Дополнительная заработная плата:

Итого затраты па оплату труда:

Расходы на оплату труда разработчика программы составят .

6.2.2 Расчет отчислений в социальные фонды

Единый социальный налог составляет 26 % от затрат на оплату труда программиста:

6.2.3 Рассчитаем затраты на оплату машинного времени при отладке программы

Стоимость машинного часа работы рассчитывается по формуле:

где:- стоимость машинного часа работы, руб.;

- амортизация компьютера за 1 м/ч, руб.;

- стоимость электроэнергии за 1 ч работы, руб.

Таблица 13 - Находим рыночную стоимость компьютера

Наименование

Марка

Стоимость, руб.

Ноутбук

MAC series N53S

19400

Мышка

Мышь Genius Net Scroll

600

Итого:

20000 руб.

Амортизация компьютера за 1 м/ч вычисляется по следующей формуле:

где:- стоимость компьютера, руб.;

- норма амортизации компьютера.

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

где:- мощность компьютера, кВт/ч;

- стоимость 1 кВт электроэнергии, руб.

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

Используя теперь полученные значения, можно рассчитать стоимость 1 м/ч:

Себестоимость программы:

6.3 Обоснование цены программного продукта

Произведём расчёт цены программного продукта и её обоснование.

Примем процент рентабельности (условно) - 15%

Прибыль рассчитать по формуле:

где:себестоимость;

процент рентабельности.

Цена программного продукта равна сумме полной себестоимости и прибыли:

Цена программного продукта с НДС (НДС в России 18%):

Рассчитаем стоимость продукта по отпускной цене:

Стоимость программного продукта составляет руб.

6.4 Расчет экономической эффективности

Значение экономической эффективности от использования программного продукта определяется по формуле:

где:- затраты по базовому варианту, руб.;

-затраты при использовании программного обеспечения (ПО), руб.

где:-трудоемкость разработки программного продукта, чел*час;

- средняя часовая оплата труда программиста, рублей в час.

- доля заработной платы в общей смете затрат организации, определяется:

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

Произведём расчёт затраты по базовому варианту:

Теперь определим затраты при использовании программы:

где: -стоимость машинного часа работы, руб.;

- срок службы программного обеспечения, принимаемым равным 5 годам.

Произведём расчёты затрат прииспользовании программы:

Теперь рассчитаем значение экономической эффективности от использования программного продукта:

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

6.4.1 Расчет срока окупаемости проекта

Определим срок окупаемости капиталовложений:

Таблица 14 - Основные технико-экономические показатели

Показатели

Ед. измерения

Значения

Общие трудозатраты на разработку программного продукта

Чел*час

125,94

Затраты на оплату труда

Руб.

Отчислений в социальные фонды

Руб.

Затраты на оплату машинного времени

Руб.

Себестоимость программы

Руб.

Цена программного продукта

Руб.

Экономическая эффективность

Руб.

Срок окупаемости капиталовложений

Год

Заключение

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

Данный продукт будет в дальнейшем опробован на предприятии ООО «Силуэт-2004» Кадровый учёт, что позволит автоматизировать кадровый учет, выполняемый пока «вручную».

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

Список использованных источников

1. А.В. Рудаков «Технология разработки программных продуктов»;.

2. Гагарина «Основы технологии разработки программных продуктов. Учебное пособие».

3. М.Г. Радченко, Е.Ю. Хрусталева. 1С: Предприятие 8.2. Практическое пособие разработчика - Москва, 2009.

4. Ажеронок В.А. Островерх А.В, Радченко М.Г. Хрусталева Е.Ю. Разработка управляемого интерфейса - "1С-Паблишинг", 2010.

5. Хрусталева Е.Ю. Разработка сложных отчетов в 1С. Предприятии 8. Система компоновки данных.

6. Габец А.П., Гончаров Д.И. Электронная версия книги "1С:Предприятие 8.1. Простые примеры разработки".

7. Бояркин В.А., Филатов А.И. 1С:Предприятие 8. Конвертация данных: обмен данными между прикладными решениями.

8. Андрей Габец, Дмитрий Гончаров, Дмитрий Козырев, Дмитрий Кухлевский, Максим Радченко. Профессиональная разработка в системе 1С:Предприятие 8.

9. Грянина Е.А., Харитонов С.А. Секреты профессиональной работы с «1С:Бухгалтерией 8». КАДРОВЫЙ УЧЕТ и ЗАРПЛАТА.

10. Харитонов С.А Бухгалтерский и налоговый учет в программе "1С:Бухгалтерия 8". Издание 2.

11. Е.Ю. Хрусталева Разработка сложных отчетов в 1С:Предприятии 8 Система компоновки данных.

12. А.П. Габец, Д.И. Гончаров 1С:Предприятие 8.1. Простые примеры разработки.

13. Д.И. Гончаров, Е.Ю. Хрусталева. Решение специальных прикладных задач в "1С:Предприятии 8.2". Серия "1С:Профессиональная разработка".

Приложение

Листинг 1 - Процедура проведения документа «Штатное Расписание»

Процедура ОбработкаПроведения(Отказ, Режим)

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

// регистр ШтатноеРасписаниеРегистр Приход

Движения.ШтатноеРасписаниеРегистр.Записывать = Истина;

Для Каждого ТекСтрокаШтатноеРасписание Из ШтатноеРасписание Цикл

Движение = Движения.ШтатноеРасписаниеРегистр.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

Движение.Период = Дата;

Движение.Должность = ТекСтрокаШтатноеРасписание.Должность;

Движение.Колличество = ТекСтрокаШтатноеРасписание.Колличество;

КонецЦикла;

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

Листинг2. Процедура проведения документа «Приём»

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

// регистр ШтатноеРасписаниеРегистр Расход

Движения.ШтатноеРасписаниеРегистр.Записывать = Истина;

Для Каждого ТекСтрокаПриёмСотрудника Из СписокСотрудников Цикл

Движение = Движения.ШтатноеРасписаниеРегистр.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

Движение.Должность = ТекСтрокаПриёмСотрудника.Должность;

Движение.Подразделение= ТекСтрокаПриёмСотрудника.Подразделение;

Движение.Оклад=ТекСтрокаПриёмСотрудника.СтавкаОклад;

Движение.Количество = 1;

// При проведении док приём претендент становится сотрудникои заноссится в справочник сотрудник

НовыйСотрудник=Новый Структура("Наименование,Должность,Подразделение,Приказ,ТН ");

НовыйСотрудник.Наименование=ТекСтрокаПриёмСотрудника.ФИО;

НовыйСотрудник.Приказ=ЭтотОбъект.Ссылка;

НовыйСотрудник.Подразделение=ТекСтрокаПриёмСотрудника.Подразделение;

НовыйСотрудник.ТН=ТекСтрокаПриёмСотрудника.ТН;

// проверить есть ли в справочнике такой сотрудник с такой должностью и подразделением п

//есть нет - создать, если есть - не создовать

Если НайтиСотрудника(НовыйСотрудник)//Пустая ссылка=истина

тогда

СоздатьЭлементСправочника(НовыйСотрудник);

КонецЕсли;

Движение=Движения.Приказы.Добавить();

Движение.Период=Дата;

Движение.Регистратор=ЭтотОбъект.Ссылка;

Движение.Сотрудник=ТекСтрокаПриёмСотрудника.ФИО;

КонецЦикла;

&НаСервере

Процедура СоздатьЭлементСправочника(СтруктураДанные);

Сотрудник=Справочники.Сотрудники.СоздатьЭлемент(); //программно создаю элемент справочник сотрудники

Сотрудник.Наименование=СтруктураДанные.Наименование;

Сотрудник.Должность=СтруктураДанные.Должность;

Сотрудник.Подразделение=СтруктураДанные.Подразделение;

Сотрудник.ТН=СтруктураДанные.ТН;

Сотрудник.Приказ=СтруктураДанные.Приказ;

Сотрудник.Записать()

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

&НаСервере

Функция НайтиСотрудника(НовыйСотрудник);

//создать если пустая

Возврат Справочники.Сотрудники.НайтиПоНаименованию(НовыйСотрудник.Наименование).Пустая();

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

&НаКлиенте

Процедура ПереводФИОПриИзменении(Элемент)

Перем Подразделение;

Перем Должность;

Перем Номер;

Перем Дата;

перем Договор;

Перем Ссылка;

Перем ТН;

ТекущаяСтрока=Элементы.Перевод.ТекущиеДанные;//та строка которую выберет пользователь

ФИО=ТекущаяСтрока.ФИО;//в текущей строке есть поле ФИО в нём фамилия

ОпределитьСотрудника(ФИО,Должность,Подразделение,ТН);// по ФИО получим должность с сервера из справочника сотрудники

ТекущаяСтрока.ДолжностьСтарая=Должность;

ТекущаяСтрока.ПодразделениеСтарое=Подразделение;

ТекущаяСтрока.ТН=ТН;

ПолучитьДоговор(ФИО,Дата,Номер,Договор);

ТекущаяСтрока.ТрудовойДоговор= Договор;

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

&НаСервере

Процедура ОпределитьСотрудника(ФИО,Должность,Подразделение,ТН);

Сотрудник=Справочники.Сотрудники.НайтиПоНаименованию(ФИО).ПолучитьОбъект();// по Фио опредилил элемент справочника что бы взять его реквизит должность

Должность=Сотрудник.Должность;

Подразделение=Сотрудник.Подразделение;

ТН=Сотрудник.ТН;

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

&НаКлиенте

Процедура ПереводДолжностьНоваяПриИзменении(Элемент)

ТекущаяСтрока=Элементы.Перевод.ТекущиеДанные;//та строка которую выберет пользователь

Должность=ТекущаяСтрока.ДолжностьНовая; //в текущей стороке возмём должность

Подразделение=ТекущаяСтрока.ПодразделениеНовое;

ТекущаяСтрока.Оклад=ОпределитьСтавку(Должность,Подразделение);

ПолучитьВакансииДолжности(Должность);

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

&НаСервере

Функция ПолучитьВакансииДолжности(Должность);

//запросим вакансии в регистре штат расписание

Запрос=Новый Запрос;

Запрос.Текст="ВЫБРАТЬ

ШтатноеРасписаниеРегистрОстаткиИОбороты.Должность.Ссылка КАК Должность,

ШтатноеРасписаниеРегистрОстаткиИОбороты.Подразделение.Ссылка КАК Подразделение,

ШтатноеРасписаниеРегистрОстаткиИОбороты.КоличествоКонечныйОстаток КАК Количество,

ШтатноеРасписаниеРегистрОстаткиИОбороты.ОкладКонечныйОстаток КАК Оклад

ИЗ

РегистрНакопления.ШтатноеРасписаниеРегистр.ОстаткиИОбороты КАК ШтатноеРасписаниеРегистрОстаткиИОбороты

ГДЕ

ШтатноеРасписаниеРегистрОстаткиИОбороты.Должность.Ссылка = &Должность";

Запрос.УстановитьПараметр("Должность",Должность);

ТаблицаЗначений=Запрос.Выполнить().Выгрузить();//результат запроса выгрузится в таблицу значение

Вакансии.Загрузить(ТаблицаЗначений);

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

&НаСервере

Функция ОпределитьСтавку(Должность,Подразделение);

//Ставка=Документы.ШтатноеРасписание.ПолучитьСсылку().ПолучитьОбъект().ШтатноеРасписание.

Ставка=РегистрыНакопления.ШтатноеРасписаниеРегистр.Выбрать();

Пока Ставка.Следующий() цикл

если (Ставка.Должность= Должность) и (Ставка.Подразделение=Подразделение) тогда

Возврат ставка.Оклад ;

КонецЕсли;

КонецЦикла;

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

&НаСервере

Процедура ПолучитьДоговор(ФИО,Дата,Номер,Наименование);

ФИОСылка=Справочники.ФизЛица.НайтиПоНаименованию(ФИО);

Договор=Документы.ТрудовойДоговор.НайтиПоРеквизиту("ФИО",ФИОСылка);

Наименование=Строка(Договор);

Дата=Договор.Дата;

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

//Наименование=Договор.наи

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

&НаКлиенте

Процедура ПечатьФормы(Команда)

//Подготовка печатной формы соглашение

Сообщить("Печать отчёта");

ТабДок=Новый ТабличныйДокумент;

ПолучитьДанные(ТабДок);

ТабДок.Показать();

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

&НаСервере

функция ПолучитьДанные(ТабДок)

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

ТабДок=Новый ТабличныйДокумент;

Область=Макет.ПолучитьОбласть("док");

для каждого СтрокаТаблЧасти из Объект.Перевод Цикл

Область.Параметры.ФИО=СтрокаТаблЧасти.ФИО;

Область.Параметры.НаименованиеУчреждения=Константы.НаименованиеУчреждения.Получить();// неизменяемая информация

Область.Параметры.Номер=Объект.Номер;

Область.Параметры.Дата=Объект.Дата;

Область.Параметры.ПодразделениеСтарое=СтрокаТаблЧасти.ПодразделениеСтарое;

Область.Параметры.ПодразделениеНовое=СтрокаТаблЧасти.ПодразделениеНовое;

Область.Параметры.ПериодС=СтрокаТаблЧасти.ПериодС;

Область.Параметры.ПериодПо=СтрокаТаблЧасти.ПериодПо;

Область.Параметры.ТН=СтрокаТаблЧасти.ТН;

Область.Параметры.ДолжностьСтарая=СтрокаТаблЧасти.ДолжностьСтарая;

Область.Параметры.ДолжностьНовая=СтрокаТаблЧасти.ДолжностьНовая;

Область.Параметры.Оклад=СтрокаТаблЧасти.Оклад;

Область.Параметры.ПерсональнаяНадбавка=СтрокаТаблЧасти.ПерсональнаяНадбавка;

Область.Параметры.ТрудовойДоговор=СтрокаТаблЧасти.ТрудовойДоговор;

Должность=Справочники.Должность.НайтиПоНаименованию("Директор");

Директор=Справочники.Сотрудники.НайтиПоРеквизиту("Должность",Должность);

Область.Параметры.ДолжностьДиректора=Должность;

Область.Параметры.ФИОдиректор=Директор;

ТабДок.Вывести(Область);

КонецЦикла;

Возврат ТабДок;

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

&НаКлиенте

Процедура ПереводПодразделениеНовоеПриИзменении(Элемент)

//заполнить подразделение, префикс Табельного номера и ставки

ТекущаяСтрока=Элементы.Перевод.ТекущиеДанные;//та строка которую выберет пользователь

Должность=ТекущаяСтрока.ДолжностьНовая; //в текущей стороке возмём должность

Подразделение=ТекущаяСтрока.ПодразделениеНовое;

ТекущаяСтрока.ОкладНовый=ОпределитьСтавку(Должность,Подразделение);

ФИО=ТекущаяСтрока.ФИО;

// показать наличие в табличке

// запросить

ПолучитьВакансииПодразделение(Подразделение);

//ТекущаяСтрока.ТН=ПолучитьПрефикс(ПодразделениеНовое)+"-"+ПолучитьНомер(ФИО);

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

&НаСервере

Функция ПолучитьВакансииПодразделение(Подразделение);

//запросим вакансии в регистре штат расписание

Запрос=Новый Запрос;

Запрос.Текст="ВЫБРАТЬ

ШтатноеРасписаниеРегистрОстаткиИОбороты.Должность.Ссылка КАК Должность,

ШтатноеРасписаниеРегистрОстаткиИОбороты.Подразделение.Ссылка КАК Подразделение,

ШтатноеРасписаниеРегистрОстаткиИОбороты.КоличествоКонечныйОстаток КАК Количество,

ШтатноеРасписаниеРегистрОстаткиИОбороты.ОкладКонечныйОстаток КАК Оклад

ИЗ

РегистрНакопления.ШтатноеРасписаниеРегистр.ОстаткиИОбороты КАК ШтатноеРасписаниеРегистрОстаткиИОбороты

ГДЕ

ШтатноеРасписаниеРегистрОстаткиИОбороты.Подразделение.Ссылка = &Подразделение";

Запрос.УстановитьПараметр("Подразделение",Подразделение);

ТаблицаЗначений=Запрос.Выполнить().Выгрузить();//результат запроса выгрузится в таблицу значение

Вакансии.Загрузить(ТаблицаЗначений);

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

Листинг3. Процедура проведения документа «Перевод»

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Движения.ШтатноеРасписаниеРегистр.Записывать = Истина;

Для Каждого ТекСтрокаПеревод Из Перевод Цикл

// регистр ШтатноеРасписаниеРегистр Приход

Движение = Движения.ШтатноеРасписаниеРегистр.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

Движение.Период = Дата;

Движение.Должность = ТекСтрокаПеревод.ДолжностьСтарая;

Движение.Подразделение = ТекСтрокаПеревод.ПодразделениеСтарое;

Движение.Количество = 1;

Движение.Оклад = ТекСтрокаПеревод.Оклад;

КонецЦикла;

Движения.ШтатноеРасписаниеРегистр.Записывать = Истина;

Для Каждого ТекСтрокаПеревод Из Перевод Цикл

// регистр ШтатноеРасписаниеРегистр Расход

Движение = Движения.ШтатноеРасписаниеРегистр.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

Движение.Должность = ТекСтрокаПеревод.ДолжностьНовая;

Движение.Подразделение = ТекСтрокаПеревод.ПодразделениеНовое;

Движение.Количество = 1;

КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

&НаСервере

Процедура СоздатьЭлементСправочника(СтруктураДанные);

Сотрудник=Справочники.Сотрудники.СоздатьЭлемент(); //программно создаю элемент справочник сотрудники

Сотрудник.Наименование=СтруктураДанные.Наименование;

Сотрудник.Должность=СтруктураДанные.Должность;

Сотрудник.Приказ=СтруктураДанные.Приказ;

Сотрудник.Записать();

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

&НаКлиенте

Процедура ПереводФИОПриИзменении(Элемент)

Перем Подразделение;

Перем Должность;

Перем Номер;

Перем Дата;

перем Договор;

Перем Ссылка;

Перем ТН;

ТекущаяСтрока=Элементы.Перевод.ТекущиеДанные;//та строка которую выберет пользователь

ФИО=ТекущаяСтрока.ФИО;//в текущей строке есть поле ФИО в нём фамилия

ОпределитьСотрудника(ФИО,Должность,Подразделение,ТН);// по ФИО получим должность с сервера из справочника сотрудники

ТекущаяСтрока.ДолжностьСтарая=Должность;

ТекущаяСтрока.ПодразделениеСтарое=Подразделение;

ТекущаяСтрока.ТН=ТН;

ПолучитьДоговор(ФИО,Дата,Номер,Договор);

ТекущаяСтрока.ТрудовойДоговор= Договор;

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

&НаСервере

Процедура ОпределитьСотрудника(ФИО,Должность,Подразделение,ТН);

Сотрудник=Справочники.Сотрудники.НайтиПоНаименованию(ФИО).ПолучитьОбъект();// по Фио опредилил элемент справочника что бы взять его реквизит должность

Должность=Сотрудник.Должность;

Подразделение=Сотрудник.Подразделение;

ТН=Сотрудник.ТН;

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

&НаКлиенте

Процедура ПереводДолжностьНоваяПриИзменении(Элемент)

ТекущаяСтрока=Элементы.Перевод.ТекущиеДанные;//та строка которую выберет пользователь

Должность=ТекущаяСтрока.ДолжностьНовая; //в текущей стороке возмём должность

Подразделение=ТекущаяСтрока.ПодразделениеНовое;

ТекущаяСтрока.Оклад=ОпределитьСтавку(Должность,Подразделение);

ПолучитьВакансииДолжности(Должность);

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

&НаСервере

Функция ПолучитьВакансииДолжности(Должность);

//запросим вакансии в регистре штат расписание

Запрос=Новый Запрос;

Запрос.Текст="ВЫБРАТЬ

ШтатноеРасписаниеРегистрОстаткиИОбороты.Должность.Ссылка КАК Должность,

ШтатноеРасписаниеРегистрОстаткиИОбороты.Подразделение.Ссылка КАК Подразделение,

ШтатноеРасписаниеРегистрОстаткиИОбороты.КоличествоКонечныйОстаток КАК Количество,

ШтатноеРасписаниеРегистрОстаткиИОбороты.ОкладКонечныйОстаток КАК Оклад

ИЗ

РегистрНакопления.ШтатноеРасписаниеРегистр.ОстаткиИОбороты КАК ШтатноеРасписаниеРегистрОстаткиИОбороты

ГДЕ

ШтатноеРасписаниеРегистрОстаткиИОбороты.Должность.Ссылка = &Должность";

Запрос.УстановитьПараметр("Должность",Должность);

ТаблицаЗначений=Запрос.Выполнить().Выгрузить();//результат запроса выгрузится в таблицу значение

Вакансии.Загрузить(ТаблицаЗначений);

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

&НаСервере

Функция ОпределитьСтавку(Должность,Подразделение);

//Ставка=Документы.ШтатноеРасписание.ПолучитьСсылку().ПолучитьОбъект().ШтатноеРасписание.

Ставка=РегистрыНакопления.ШтатноеРасписаниеРегистр.Выбрать();

Пока Ставка.Следующий() цикл

если (Ставка.Должность= Должность) и (Ставка.Подразделение=Подразделение) тогда

Возврат ставка.Оклад ;

КонецЕсли;

КонецЦикла;

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

&НаСервере

Процедура ПолучитьДоговор(ФИО,Дата,Номер,Наименование);

ФИОСылка=Справочники.ФизЛица.НайтиПоНаименованию(ФИО);

Договор=Документы.ТрудовойДоговор.НайтиПоРеквизиту("ФИО",ФИОСылка);

Наименование=Строка(Договор);

Дата=Договор.Дата;

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

//Наименование=Договор.наи

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

&НаКлиенте

Процедура ПечатьФормы(Команда)

//Подготовка печатной формы соглашение

Сообщить("Печать отчёта");

ТабДок=Новый ТабличныйДокумент;

ПолучитьДанные(ТабДок);

ТабДок.Показать();

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

&НаСервере

функция ПолучитьДанные(ТабДок)

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

ТабДок=Новый ТабличныйДокумент;

Область=Макет.ПолучитьОбласть("док");

для каждого СтрокаТаблЧасти из Объект.Перевод Цикл

Область.Параметры.ФИО=СтрокаТаблЧасти.ФИО;

Область.Параметры.НаименованиеУчреждения=Константы.НаименованиеУчреждения.Получить();// неизменяемая информация

Область.Параметры.Номер=Объект.Номер;

Область.Параметры.Дата=Объект.Дата;

Область.Параметры.ПодразделениеСтарое=СтрокаТаблЧасти.ПодразделениеСтарое;

Область.Параметры.ПодразделениеНовое=СтрокаТаблЧасти.ПодразделениеНовое;

Область.Параметры.ПериодС=СтрокаТаблЧасти.ПериодС;

Область.Параметры.ПериодПо=СтрокаТаблЧасти.ПериодПо;

Область.Параметры.ТН=СтрокаТаблЧасти.ТН;

Область.Параметры.ДолжностьСтарая=СтрокаТаблЧасти.ДолжностьСтарая;

Область.Параметры.ДолжностьНовая=СтрокаТаблЧасти.ДолжностьНовая;

Область.Параметры.Оклад=СтрокаТаблЧасти.Оклад;

Область.Параметры.ПерсональнаяНадбавка=СтрокаТаблЧасти.ПерсональнаяНадбавка;

Область.Параметры.ТрудовойДоговор=СтрокаТаблЧасти.ТрудовойДоговор;

Должность=Справочники.Должность.НайтиПоНаименованию("Директор");

Директор=Справочники.Сотрудники.НайтиПоРеквизиту("Должность",Должность);

Область.Параметры.ДолжностьДиректора=Должность;

Область.Параметры.ФИОдиректор=Директор;

ТабДок.Вывести(Область);

КонецЦикла;

Возврат ТабДок;

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

&НаКлиенте

Процедура ПереводПодразделениеНовоеПриИзменении(Элемент)

//заполнить подразделение, префикс Табельного номера и ставки

ТекущаяСтрока=Элементы.Перевод.ТекущиеДанные;//та строка которую выберет пользователь

Должность=ТекущаяСтрока.ДолжностьНовая; //в текущей стороке возмём должность

Подразделение=ТекущаяСтрока.ПодразделениеНовое;

ТекущаяСтрока.ОкладНовый=ОпределитьСтавку(Должность,Подразделение);

ФИО=ТекущаяСтрока.ФИО;

// показать наличие в табличке

//

// запросить

ПолучитьВакансииПодразделение(Подразделение);

//ТекущаяСтрока.ТН=ПолучитьПрефикс(ПодразделениеНовое)+"-"+ПолучитьНомер(ФИО);

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

&НаСервере

Функция ПолучитьВакансииПодразделение(Подразделение);

//запросим вакансии в регистре штат расписание

Запрос=Новый Запрос;

Запрос.Текст="ВЫБРАТЬ

ШтатноеРасписаниеРегистрОстаткиИОбороты.Должность.Ссылка КАК Должность,

ШтатноеРасписаниеРегистрОстаткиИОбороты.Подразделение.Ссылка КАК Подразделение,

ШтатноеРасписаниеРегистрОстаткиИОбороты.КоличествоКонечныйОстаток КАК Количество,

ШтатноеРасписаниеРегистрОстаткиИОбороты.ОкладКонечныйОстаток КАК Оклад

ИЗ

РегистрНакопления.ШтатноеРасписаниеРегистр.ОстаткиИОбороты КАК ШтатноеРасписаниеРегистрОстаткиИОбороты

ГДЕ

ШтатноеРасписаниеРегистрОстаткиИОбороты.Подразделение.Ссылка = &Подразделение";

Запрос.УстановитьПараметр("Подразделение",Подразделение);

ТаблицаЗначений=Запрос.Выполнить().Выгрузить();//результат запроса выгрузится в таблицу значение

Вакансии.Загрузить(ТаблицаЗначений);

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

Листинг 4 - Процедура проведения документа «Увольнение»

Процедура ОбработкаПроведения(Отказ, Режим)

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

// регистр ШтатноеРасписаниеРегистр Приход

Движения.ШтатноеРасписаниеРегистр.Записывать = Истина;

Для Каждого ТекСтрокаУвольнение Из Увольнение Цикл

Движение = Движения.ШтатноеРасписаниеРегистр.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

Движение.Период = Дата;

Движение.Должность = ТекСтрокаУвольнение.Должность;

Движение.Подразделение=ТекСтрокаУвольнение.Подразделение;

Движение.Количество = 1;

КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

&НаСервере

Процедура УдалитьЭлементСправочника(Сотрудник);

Сотрудник=Справочники.Сотрудники.НайтиПоНаименованию(Сотрудник); //программно создаю элемент справочник сотрудники

ф=Сотрудник.ПометкаУдаления;

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

&НаКлиенте

Процедура УвольнениеФИОПриИзменении(Элемент)

Перем ТН;

Перем ФИО;

Перем Дата;

Перем Номер;

Перем Договор;

Перем Должность;

Перем Подразделение;

ТекущаяСтрока=Элементы.Увольнение.ТекущиеДанные;//та строка которую выберет пользователь

ФИО=ТекущаяСтрока.ФИО;//в текущей строке есть поле ФИО в нём фамилия

ОпределитьСотрудника(ФИО,Должность,Подразделение,ТН);// по ФИО получим должность с сервера из справочника сотудники

ТекущаяСтрока.Должность=Должность;

ТекущаяСтрока.Подразделение=Подразделение;

ТекущаяСтрока.ТН=ТН;

ПолучиДоговор(ФИО,Дата,Номер,Договор);

ТекущаяСтрока.ТрудовойДоговор= Договор;

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

&НаКлиенте

Процедура ПечатьФормы(Команда)

//Подготовка печатной формы соглашение

Сообщить("Печать отчёта");

ТабДок=Новый ТабличныйДокумент;

ПолучитьДанные(ТабДок);

ТабДок.Показать();

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

&НаСервере

Процедура ПолучитьДоговор(ФИО,Дата,Номер,Договор);

Договор=Документы.ТрудовойДоговор.НайтиПоРеквизиту("ФИО",ФИО);

Дата=Договор.Дата;

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

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

&НаСервере

Процедура ПолучиДоговор(ФИО,Дата,Номер,Наименование);

ФИОСылка=Справочники.ФизЛица.НайтиПоНаименованию(ФИО);

Договор=Документы.ТрудовойДоговор.НайтиПоРеквизиту("ФИО",ФИОСылка);

Наименование=Строка(Договор);

Дата=Договор.Дата;

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

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

&НаСервере

Процедура ОпределитьСотрудника(ФИО,Должность,Подразделение,ТН);

Сотрудник=Справочники.Сотрудники.НайтиПоНаименованию(ФИО);// по Фио опредилил элемент справочника что бы взять его реквизит должность

Должность=Сотрудник.Должность;

Подразделение=Сотрудник.Подразделение;

ТН=Сотрудник.ТН;

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

&НаСервере

функция ПолучитьДанные(ТабДок)

Макет=Документы.Увольнение.ПолучитьМакет("Увольнение");

ТабДок=Новый ТабличныйДокумент;

Область=Макет.ПолучитьОбласть("док");

для каждого СтрокаТаблЧасти из Объект.Увольнение Цикл

Область.Параметры.ФИО=СтрокаТаблЧасти.ФИО;

Область.Параметры.НаименованиеУчреждения=Константы.НаименованиеУчреждения.Получить();// неизменяемая информация

Область.Параметры.Номер=Объект.Номер;

Область.Параметры.Дата=Объект.Дата;

Область.Параметры.Подразделение=СтрокаТаблЧасти.Подразделение;

Область.Параметры.УвлитьС=СтрокаТаблЧасти.УволитьС;

Область.Параметры.ТН=СтрокаТаблЧасти.ТН;

Область.Параметры.Должность=СтрокаТаблЧасти.Должность;

Область.Параметры.ТрудовойДоговор=СтрокаТаблЧасти.ТрудовойДоговор;

Должность=Справочники.Должность.НайтиПоНаименованию("Директор");

Директор=Справочники.Сотрудники.НайтиПоРеквизиту("Должность",Должность);

Область.Параметры.ДолжностьДиректора=Должность;

Область.Параметры.ФИОдиректор=Директор;

ТабДок.Вывести(Область);

КонецЦикла;

Возврат ТабДок;

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

Листинг 5 - Процедура проведения документа «Увольнение»

&НаКлиенте

Процедура ПечатьСоглашения(Команда)

//Подготовка печатной формы соглашение

Сообщить("Печать отчёта");

ТабДок=Новый ТабличныйДокумент;

ПолучитьДанные(ТабДок);

ТабДок.Показать();

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

&НаСервере

функция ПолучитьДанные(ТабДок)

Макет=Документы.Резюме.ПолучитьМакет("Макет");

ТабДок=Новый ТабличныйДокумент;

Область=Макет.ПолучитьОбласть("Документ");

Область.Параметры.ФИО=Объект.ФИО;

Область.Параметры.Номер=Объект.Номер;//собственная Номер документа резюме

Область.Параметры.Дата=Объект.Дата;//собственная дата документа резюме

Область.Параметры.НаименованиеУчреждения=Константы.НаименованиеУчреждения.Получить();// неизменяемая информация

Область.Параметры.ДатаС=Объект.Дата;//собственная дата документа резюме

Область.Параметры.ДатаПО=Объект.ДатаУничтоженияДанных;

область.Параметры.ЮридическийАдрес=Константы.ЮридическийАдрес.Получить();

КонтактнаяИнформация= Объект.КонтактнаяИнформация.Выгрузить(); //выгрузим в массив

Количество=0;

Количество=КонтактнаяИнформация.Количество();

c=" ";

//По всем строкам табличной части

Для i=0 По Количество-1 Цикл

c= c+" "+КонтактнаяИнформация[i].ВидИнформации+" "+КонтактнаяИнформация[i].Информация;

КонецЦикла;

область.Параметры.Адрес=c;

ТабДок.Вывести(Область);

Возврат ТабДок;

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

&НаКлиенте

Процедура ДатаУничтоженияДанныхПриИзменении(Элемент)

Объект.ХранениеПерсонДанных=Истина;

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

Листинг 6 - Процедура проведения документа «ТрудовойДоговор»

&НаКлиенте

Процедура Печать(Команда)

//Подготовка печатной формы Трудового договра

Сообщить("Печать отчёта");

ТабДок=Новый ТабличныйДокумент;

ПолучитьДанные(ТабДок);

ТабДок.Показать();

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

&НаСервере

функция ПолучитьДанные(ТабДок)

Макет=Документы.ТрудовойДоговор.ПолучитьМакет("Макет");

ТабДок=Новый ТабличныйДокумент;

Область=Макет.ПолучитьОбласть("док");

Область.Параметры.ФИО=Объект.ФИО;

Область.Параметры.НаименованиеУчреждения=Константы.НаименованиеУчреждения.Получить();// неизменяемая информация

Область.Параметры.ПериодС=Объект.Дата;//собственная дата документа резюме

область.Параметры.ЮридическийАдрес=Константы.ЮридическийАдрес.Получить();

Должность=Справочники.Должность.НайтиПоНаименованию("Директор");

Директор=Справочники.Сотрудники.НайтиПоРеквизиту("Должность",Должность);

Область.Параметры.ФИОдиректор=Директор;

Область.Параметры.Должность=Должность;

ТабДок.Вывести(Область);

Возврат ТабДок;

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

Листинг 7 - Процедура проведения документа «ТрудовойДоговор»

Процедура ОбработкаПроведения(Отказ, Режим)

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

// регистр ШтатноеРасписаниеРегистр Приход

Движения.ШтатноеРасписаниеРегистр.Записывать = Истина;

Для Каждого ТекСтрокаШтатноеРасписание Из ШтатноеРасписание Цикл

Движение=Движения.ШтатноеРасписаниеРегистр.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

Движение.Период = Дата;

Движение.Должность=ТекСтрокаШтатноеРасписание.Должность;

Движение.Колличество = ТекСтрокаШтатноеРасписание.Колличество;

КонецЦикла;

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

Размещено на Allbest.ru


Подобные документы

  • Анализ требований к программному продукту. Требования к информационной и программной совместимости. Проектирование архитектуры программного продукта. Виды программ и программных документов. Общие сведения о С++. Технология разработки программного модуля.

    дипломная работа [1,2 M], добавлен 05.08.2011

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

    курсовая работа [2,1 M], добавлен 01.12.2010

  • Создание программного продукта - базы данных "тестирование", с описанием требований предметной области, объектов, их атрибутов и взаимосвязей между ними. Ведение базы вопросов, учет выполненного тестирования, формирование тестов из данных вопросов.

    курсовая работа [1,4 M], добавлен 18.12.2010

  • Анализ существующего программного обеспечения. Этапы создания проекта. Концептуальное, логическое и физическое проектирование базы данных. Структура программного продукта. Руководство программиста и оператора. Тестирование программного продукта.

    курсовая работа [586,4 K], добавлен 26.06.2015

  • Обоснование выбора языка программирования. Анализ входных и выходных документов. Логическая структура базы данных. Разработка алгоритма работы программы. Написание программного кода. Тестирование программного продукта. Стоимость программного продукта.

    дипломная работа [1008,9 K], добавлен 13.10.2013

  • Разработка программного продукта для спирографического обследования. Структура базы данных программы "СпирографОтдел". Выбор программного продукта и руководство пользователя. Минимальные рекомендуемые требования к техническому и программному обеспечению.

    дипломная работа [1,0 M], добавлен 13.04.2014

  • Методика расчётов показателей ликвидности предприятия. Требования к программному продукту: описание решаемых задач, внутренней структуры системы (базы данных), рекомендации программисту и пользователю. Порядок контроля и приемки программного продукта.

    курсовая работа [1010,9 K], добавлен 28.05.2013

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

    курсовая работа [847,5 K], добавлен 27.12.2009

  • Формирование входных и выходных данных, SQL–скрипт генерации таблиц базы данных. Создание интерфейса программного приложения и проектирование форм базы данных. Требования к аппаратно–программному обеспечению. Инструкции по установке и эксплуатации.

    курсовая работа [1,6 M], добавлен 08.02.2013

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

    курсовая работа [2,8 M], добавлен 20.11.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.