- •Пояснювальна записка
- •1 Дослідження об`єкта автоматизації як соціально-економічної сутності
- •1.1 Огляд соціально-економічного змісту поняття заробітної плати працівників банку
- •1.2 Нормативно-правове регулювання оплати праці в Україні
- •1.3 Аналіз систем, що автоматизують облік заробітної плати
- •2 Розробка проекту автоматизованої системи обліку заробітної плати працівників банку
- •2.1 Формування вимог до автоматизованої системи обліку заробітної плати працівникам банку
- •2.2 Вибір архітектури та технології
- •2.3 Програмне та апаратне забезпечення
- •2.4 Інформаційне забезпечення
- •3 Реалізація прототипу автоматизованої системи
- •3.1 Реалізація інформаційного забезпечення
- •3.2 Реалізація алгоримічного забезпечення та створення інтерфейсу користувача
- •3.3 Оцінка очікуваних ефектів від впровадження автоматизованої системи
- •4 Охорона праці та безпека в надзвичайних ситуаціях у відділенні №120 пат «віейбі банк»
- •4.1 Система управління охороною праці у відділенні №120 пат «ВіЕйБі банк»
- •4.2 Аналіз небезпечних і шкідливих факторів умов праці у відділенні №120 пат «ВіЕйБі банк»
- •4.3 Безпека в надзвичайних ситуаціях у відділенні №120 пат «ВіЕйБі банк»
- •Висновки
- •Список використаних джерел
- •Додатки
Додатки
Додаток А
Програмний код елементів конфігурації
Лістинг А.1 – Код модуля розрахунку нарахувань
Функция Рассчитать(Ссылка, Движения) Экспорт
МассивВидовРасчетаОсн = Движения.ОсновныеНачисления.ВыгрузитьКолонку("ВидРасчета");
МассивВидовРасчетаДоп = Движения.ДополнительныеНачисления.ВыгрузитьКолонку("ВидРасчета");
//3. Расчитаем вид расчета "Оклад"
Если МассивВидовРасчетаОсн.Найти(ПланыВидовРасчета.ОсновныеНачисления.Оклад) <> Неопределено Тогда
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ОсновныеНачисленияДанныеГрафика.НомерСтроки,
| ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия, 0) КАК ЧасовФакт,
| ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЗначениеПериодДействия, 0) КАК ЧасовНорма
|ИЗ
| РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(
| Регистратор = &Регистратор
| И ВидРасчета = &ВидРасчета) КАК ОсновныеНачисленияДанныеГрафика";
Запрос.УстановитьПараметр("Регистратор", Ссылка);
Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисления.Оклад);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Продовження лістингу А.1:
СтруктураДляПоиска = Новый Структура("НомерСтроки");
Для каждого СтрокаНабора Из Движения.ОсновныеНачисления Цикл
Если Не СтрокаНабора.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда
Продолжить;
КонецЕсли;
СтруктураДляПоиска.НомерСтроки = СтрокаНабора.НомерСтроки;
Выборка.Сбросить();
Выборка.НайтиСледующий(СтруктураДляПоиска);
СтрокаНабора.Результат = СтрокаНабора.Размер * Выборка.ЧасовФакт / Выборка.ЧасовНорма;
КонецЦикла;
Движения.ОсновныеНачисления.Записать(, Истина);
КонецЕсли;
//4. Расчитаем вид расчета "Командировка"
Если МассивВидовРасчетаОсн.Найти(ПланыВидовРасчета.ОсновныеНачисления.Командировка) <> Неопределено Тогда
Для каждого СтрокаНабора Из Движения.ОсновныеНачисления Цикл
Если Не СтрокаНабора.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Командировка Тогда
Продолжить;
КонецЕсли;
СтрокаНабора.Результат = СтрокаНабора.Размер;
КонецЦикла;
Движения.ОсновныеНачисления.Записать(, Истина);
КонецЕсли;
//3. Расчитаем вид расчета "Премия"
Если МассивВидовРасчетаДоп.Найти(ПланыВидовРасчета.ДополнительныеНачисления.Премия) <> Неопределено Тогда
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ДополнительныеНачисленияБазаОсновныеНачисления.НомерСтроки,
Продовження лістингу А.1:
| ДополнительныеНачисленияБазаОсновныеНачисления.Сотрудник,
| ДополнительныеНачисленияБазаОсновныеНачисления.Подразделение,
| ДополнительныеНачисленияБазаОсновныеНачисления.Должность,
| ДополнительныеНачисленияБазаОсновныеНачисления.РезультатБаза КАК ОкладБаза
|ИЗ
| РегистрРасчета.ДополнительныеНачисления.БазаОсновныеНачисления(
| &Измерения,
| &Измерения,
| ,
| Регистратор = &Регистратор
| И ВидРасчета = &ВидРасчета) КАК ДополнительныеНачисленияБазаОсновныеНачисления";
Измерения = Новый Массив;
Измерения.Добавить("Сотрудник");
Измерения.Добавить("Подразделение");
Измерения.Добавить("Должность");
Запрос.УстановитьПараметр("Измерения", Измерения);
Запрос.УстановитьПараметр("Регистратор", Ссылка);
Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ДополнительныеНачисления.Премия);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
СтруктураДляПоиска = Новый Структура("НомерСтроки");
Для каждого СтрокаНабора Из Движения.ДополнительныеНачисления Цикл
Если Не СтрокаНабора.ВидРасчета = ПланыВидовРасчета.ДополнительныеНачисления.Премия Тогда
Продолжить;
КонецЕсли;
Продовження лістингу А.1:
СтруктураДляПоиска.НомерСтроки = СтрокаНабора.НомерСтроки;
Выборка.Сбросить();
Если Выборка.НайтиСледующий(СтруктураДляПоиска) Тогда
СтрокаНабора.Результат = СтрокаНабора.Размер * Выборка.ОкладБаза / 10;
КонецЕсли;
КонецЦикла;
Движения.ДополнительныеНачисления.Записать(, Истина);
КонецЕсли;
КонецФункции
Лістинг А.2 – Код створення таблиці з відомостями про співробітників
Процедура СотрудникПриИзменении(Элемент)
// Вставить содержимое обработчика.
ЗаполнениеПодразделения();
КонецПроцедуры
Функция ЗаполнениеПодразделения()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ФизическиеЛица.Ссылка
|ИЗ
| Справочник.ФизическиеЛица КАК ФизическиеЛица";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() цикл
Если Выборка.Ссылка = Запись.Сотрудник тогда
Запись.Подразделение= Выборка.Ссылка.Владелец;
КонецЕсли;
КонецЦикла;
КонецФункции
Лістинг А.3 – Код для переказу на зарплатну картку
&НаКлиенте
Процедура Перевести(Команда)
// Вставить содержимое обработчика.
ПереводЗП();
Продовження лістингу А.3:
КонецПроцедуры
&НаСервере
Функция ПереводЗП()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ОсновныеНачисления.Сотрудник,
| ОсновныеНачисления.Подразделение,
| ОсновныеНачисления.Должность,
| СУММА(ЕСТЬNULL(ОсновныеНачисления.Результат, 0)) КАК Результат,
| СУММА(ЕСТЬNULL(ДополнительныеНачисления.Результат, 0)) КАК РезультатПремия,
| ПлатежнаяКарточкаСотрудника.НомерКарточки,
| СведенияОСотрудникахСрезПоследних.Оклад КАК Оклад
|ИЗ
| РегистрРасчета.ОсновныеНачисления КАК ОсновныеНачисления
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ДополнительныеНачисления КАК ДополнительныеНачисления
| ПО ОсновныеНачисления.Сотрудник = ДополнительныеНачисления.Сотрудник
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлатежнаяКарточкаСотрудника КАК ПлатежнаяКарточкаСотрудника
| ПО ОсновныеНачисления.Сотрудник = ПлатежнаяКарточкаСотрудника.Сотрудник
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках.СрезПоследних КАК СведенияОСотрудникахСрезПоследних
| ПО ОсновныеНачисления.Сотрудник = СведенияОСотрудникахСрезПоследних.Сотрудник
|ГДЕ
| ОсновныеНачисления.ПериодРегистрации МЕЖДУ &ДатаНачало И &ДатаКонец
|
|СГРУППИРОВАТЬ ПО
| ОсновныеНачисления.Сотрудник,
| ОсновныеНачисления.Подразделение,
| ОсновныеНачисления.Должность,
| ПлатежнаяКарточкаСотрудника.НомерКарточки,
| СведенияОСотрудникахСрезПоследних.Оклад";
Продовження лістингу А.3:
Запрос.УстановитьПараметр("ДатаНачало", Период.ДатаНачала);
Запрос.УстановитьПараметр("ДатаКонец", Период.ДатаОкончания);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() цикл
НаборЗаписи = РегистрыСведений.ПереводНаКарточку.СоздатьМенеджерЗаписи();
НаборЗаписи.Период = Период.ДатаОкончания;
НаборЗаписи.Сотрудник = Выборка.Сотрудник;
НаборЗаписи.Подразделение = Выборка.Подразделение;
НаборЗаписи.Должность = Выборка.Должность;
НаборЗаписи.НомерЗарплатнойКарточки = Выборка.НомерКарточки;
НаборЗаписи.Ставка = Выборка.Оклад;
НаборЗаписи.ОсновныеНачисления = Выборка.Результат;
НаборЗаписи.Премии = Выборка.РезультатПремия;
НаборЗаписи.СуммаНаВыплату = (Выборка.Результат) + (Выборка.РезультатПремия);
НаборЗаписи.Записать();
КонецЦикла;
Сообщить("Перевод успешно завершен");
КонецФункции
Лістинг А.4 – Код заповнення календарного графіку
&НаКлиенте
Процедура Заполнить(Команда)
ВыполнитьОбработку();
Сообщить("Обработка завершена!");
КонецПроцедуры
&НаСервере
Процедура ВыполнитьОбработку()
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ОбработкаОбъект.ЗаполнитьГрафик(ВыборПериода.ДатаНачала, ВыборПериода.ДатаОкончания, ВыходныеДни);
КонецПроцедуры