Материал: Автоматизация процесса ведения информационной базы о должностях и вакансиях для ООО "Новоуренгойская буровая компания"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
132
Приложение 2
Листинг 1 Общие модули – АктуальныйОклад
Функция АктуальныйОклад (АктуальнаяДата, ЭлементНоменклатуры)
Экспорт
// Создать вспомогательный объект Отбор
Отбор = Новый Структура("Должность", ЭлементНоменклатуры);
ЗначенияРесурсов =
РегистрыСведений.Регистр_должностных_окладов.ПолучитьПоследнее(Актуаль
наяДата, Отбор);
Возврат ЗначенияРесурсов.Оклад;
КонецФункции
Листинг 2 Документы - Оклад_за_отработанное_время -
ФормаДокумента
&НаКлиенте
Процедура ОкладПриИзменении(Элемент)
СтрокаОклад = Элементы.Оклад.ТекущиеДанные;
Если НЕ СтрокаОклад = Неопределено Тогда
СтрокаОклад.Отработано_дней = СтрокаОклад.Отработано_часов/8;
СтрокаОклад.Сумма =
СтрокаОклад.Отработано_часов*СтрокаОклад.Ставка;
КонецЕсли
КонецПроцедуры
Листинг 3 Документы - Зарплата - ФормаДокумента
Функция ПолучитьДолжностьПриИзменении(Структура)
Возврат Структура.Должность;
КонецФункции
&НаКлиенте
Процедура Зарплата_сотрудниковПриИзменении(Элемент)
133
СтрокаЗарплата_сотрудников =
Элементы.Зарплата_сотрудников.ТекущиеДанные;
СтрокаЗарплата_сотрудников.Должность =
ПолучитьДолжностьПриИзменении(СтрокаЗарплата_сотрудников.Сотрудник);
СтрокаЗарплата_сотрудников.Оклад =
АктуальныйОклад.АктуальныйОклад(Объект.Дата,
СтрокаЗарплата_сотрудников.Должность);
Если НЕ СтрокаЗарплата_сотрудников = Неопределено Тогда
СтрокаЗарплата_сотрудников.Сумма =
СтрокаЗарплата_сотрудников.Оклад - СтрокаЗарплата_сотрудников.Вычет +
СтрокаЗарплата_сотрудников.Премия;
КонецЕсли;
КонецПроцедуры
Листинг 4 Документы - Учет_доступа_по_пропускам -
ФормаДокумента
&НаКлиенте
Процедура Регистрация_сотрудниковПриИзменении(Элемент)
СтрокаРегистрация_сотрудников =
Элементы.Регистрация_сотрудников.ТекущиеДанные;
Если НЕ СтрокаРегистрация_сотрудников = Неопределено Тогда
СтрокаРегистрация_сотрудников.Часов =
Час(СтрокаРегистрация_сотрудников.Время_выхода)-
Час(СтрокаРегистрация_сотрудников.Время_входа);
КонецЕсли
КонецПроцедуры
Листинг 5 Документы - Штатное_расписание - ФормаДокумента
&НаКлиенте
Процедура Штатное_расписание_ПриИзменении(Элемент)
СтрокаШтатное_расписание_ =
Элементы.Штатное_расписание_.ТекущиеДанные;
134
СтрокаШтатное_расписание_.Оклад =
АктуальныйОклад.АктуальныйОклад(Объект.Дата,
СтрокаШтатное_расписание_.Должность);
Если НЕ СтрокаШтатное_расписание_ = Неопределено Тогда
СтрокаШтатное_расписание_.Сумма_оклада =
СтрокаШтатное_расписание_.Количество*СтрокаШтатное_расписание_.Оклад;
КонецЕсли;
КонецПроцедуры
Листинг 6 Документы - Принятие_на_работу - ФормаДокумента
&НаКлиенте
Процедура Список_сотрудниковПриИзменении(Элемент)
СтрокаСписок_сотрудников =
Элементы.Список_сотрудников.ТекущиеДанные;
СтрокаСписок_сотрудников.Оклад =
АктуальныйОклад.АктуальныйОклад(Объект.Дата,
СтрокаСписок_сотрудников.Должность);
КонецПроцедуры
Листинг 7 Документы - Увольнение_с_работы - ФормаДокумента
&НаКлиенте
Процедура Список_сотрудниковПриИзменении(Элемент)
СтрокаСписок_сотрудников =
Элементы.Список_сотрудников.ТекущиеДанные;
СтрокаСписок_сотрудников.Оклад =
АктуальныйОклад.АктуальныйОклад(Объект.Дата,
СтрокаСписок_сотрудников.Должность);
КонецПроцедуры
Листинг 8 Документы - Табель - Модуль объекта
Процедура ОбработкаЗаполнения(ДанныеЗаполнения,
СтандартнаяОбработка)
135
Если ТипЗнч(ДанныеЗаполнения) =
Тип("ДокументСсылка.Рабочее_время_сотрудника") Тогда
// Заполнение шапки
Сотрудник_оформил =
ДанныеЗаполнения.Сотрудник_оформил;
Для Каждого ТекСтрокаОтработанное_время Из
ДанныеЗаполнения.Отработанное_время Цикл
НоваяСтрока = Табель.Добавить();
НоваяСтрока.Сотрудник =
ТекСтрокаОтработанное_время.Сотрудник;
НоваяСтрока.Отработано_часов =
ТекСтрокаОтработанное_время.Часов;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Листинг 9 Документы - Оклад_за_отработанное_время - Модуль
объекта
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.Регистр_рабочего_времени.Записывать = Истина;
Для Каждого ТекСтрокаОклад Из Оклад Цикл
Движение =
Движения.Регистр_рабочего_времени.Добавить();
Движение.ВидДвижения =
ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Сотрудник = ТекСтрокаОклад.Сотрудник;
Движение.Отработано_часов =
ТекСтрокаОклад.Отработано_часов;
Движение.Отработано_дней =
ТекСтрокаОклад.Отработано_дней;
Движение.Сумма = ТекСтрокаОклад.Сумма;
136
Движение.Дата = Дата;
КонецЦикла;
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения,
СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) =
Тип("ДокументСсылка.Табель") Тогда
// Заполнение шапки
Период = ДанныеЗаполнения.Период;
Сотрудник_оформил =
ДанныеЗаполнения.Сотрудник_оформил;
Для Каждого ТекСтрокаТабель Из ДанныеЗаполнения.Табель
Цикл
НоваяСтрока = Оклад.Добавить();
НоваяСтрока.Отработано_часов =
ТекСтрокаТабель.Отработано_часов;
НоваяСтрока.Сотрудник =
ТекСтрокаТабель.Сотрудник;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Листинг 10 Документы - Вычеты - Модуль объекта
Процедура ОбработкаПроведения(Отказ, Режим)
// регистр Регистр_премии_вычетов Расход
Движения.Регистр_премии_вычетов.Записывать = Истина;
Для Каждого ТекСтрокаВычеты Из Вычеты Цикл
Движение = Движения.Регистр_премии_вычетов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Сотрудник = ТекСтрокаВычеты.Сотрудник;
Источник: https://baza.diplomsite.ru/previewfile/2059