Билет №7

Задание 1.

Не внося изменений в типовую конфигурацию «Зарплата и Управление Персоналом», продемонстрируйте последовательность действий, приводящих к решению следующей пользовательской задачи.

Необходимо:

1) В организацию с 1 января по трудовому договору принять:

Физическое лицо

Подразделение/

Должность

График

Плановые начисления

Размер

Гараж/ Водитель

Основной

Оклад по дням

10000 руб.

Гараж/ Водитель

Основной

Оклад по дням

10000 руб.

Гараж/ Водитель

Основной

Оклад по дням

10000 руб.

2) С 1 февраля оклад всех работников увеличен до 12000 руб., с 1 марта – до 15000 руб.

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

Решение:

1)  Создаем организацию Мотылек. Принимаем сотрудников на работу.

2)  Создаем кадровые перемещения за февраль и март, изменяем оклад.

3)  Начисляем зарплату за первый квартал. Отчет строим на базе типового отчета «Анализ начислений работникам организаций». Убираем стандартную настройку и добавляем диаграмму. Тип диаграммы – График с накоплением. Точки не указываем, серии – Период регистрации, поля – Начислено.

Задание 2.

Используя типовую конфигурацию «Зарплата и Управление Персоналом», необходимо реализовать дополнительную функциональность согласно заданию с максимальным использованием «штатных» механизмов:

НЕ нашли? Не то? Что вы ищете?

Автоматизируемая задача:

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

Охрана офисов клиентов производится в дни и часы работы организации «Стражник» (40 часовая рабочая неделя с двумя выходными - суббота и воскресенье).

В последнюю пятницу каждого месяца в информационную базу вводится график охраны объектов на следующий месяц (один документ на все объекты), устанавливающий для каждого объекта охраны (первая колонка табличной части) по календарным дням месяца «1», «2» и т. д. (отдельные колонки табличной части) работника, осуществляющего его охрану. Считать, что в течение дня работник может охранять только один объект.

Необходимо:

1) Создать документ «График охраны объектов» для регистрации графика охраны объектов. Форма документа должна максимально соответствовать требованию заказчика (см. выше).

2) Реализовать автоматизированный расчет работникам подразделения «Отряд охраны» вознаграждения за труд, обеспечить его учет для целей налогообложения в соответствии с законодательством.

3) Создать настраиваемый отчет «Вознаграждения работников» (с использования схемы компоновки данных), позволяющий за произвольное количество расчетных периодов получать следующую информацию (форма отчета должна соответствовать образцу):

Вознаграждение работников

Организация:<Организация>

Подразделение:<Подразделение>

Работник

<Период 1>

<Период 2>

Отработано дней

Начислено за охрану объектов

Отработано дней

Начислено за охрану объектов

<Работник…> – всего

в том числе по объекту:

<объект охраны>

<Работник…> - всего

в том числе по объекту:

<объект охраны>

Итого:

<Период 1>, <Период 2> и т. д. - месяц и год, к которому относятся данные, например, январь 2008, февраль 2008 и т. д.

4) Создать в интерфейсе «Полный» отдельное подменю «Охрана объектов» для работы с добавленными объектами.

5) Представленная к защите конфигурация должна содержать данные о начислениях за несколько расчетных периодов, как минимум, не менее чем для 2-х работников по охране каждым не менее 2-х объектов.

Описание решения:

Читаем условие. Из условия выделяем основные пункты:

1)  Вид расчёта будем использовать типовой – тарифная ставка по дням

2)  Реквизит «Объект охраны» будем добавлять в регистр расчёта, регистр сведений и документ начисления

Добавим объекты.

Создадим справочник «Объекты охраны», для 8 билета периодический регистр сведений «Стоимость охраны»:

Будем считать, что тарифы задаются 1 раз в месяц (на предстоящий месяц). Поэтому регистр сведений делаем периодический в пределах месяца.

Для 7 билета нужно уточнить у преподавателя можно ли делать через данный регистр сведений. Как вариант – можно указывать дневную тарифную ставку в документе «График охраны объектов». Ну, или определять автоматически, исходя из данных указанных в приеме на работу.

В регистр сведений «Плановые начисления работников организаций» добавим реквизит «ОбъектОхраны». Такой же реквизит добавим в регистр расчёта основных начислений и в табличную часть документа начисления зарплаты.

Создадим документ «График охраны объектов:

Реквизиты «ДеньX» – ссылка на справочник сотрудников.

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

ДатаНачала = НачалоМесяца(ПериодРегистрации);

СтоимостьОхраны = Новый Соответствие;

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

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

"ВЫБРАТЬ

| СтоимостьОхраныСрезПоследних. Объект,

| СтоимостьОхраныСрезПоследних. Тариф

|ИЗ

| РегистрСведений. СтоимостьОхраны. СрезПоследних(&Дата, ) КАК СтоимостьОхраныСрезПоследних";

Запрос. УстановитьПараметр("Дата", ПериодРегистрации);

Результат = Запрос. Выполнить();

ВыборкаДетальныеЗаписи = Результат. Выбрать();

Пока ВыборкаДетальныеЗаписи. Следующий() Цикл

СтоимостьОхраны. Вставить(ВыборкаДетальныеЗаписи. Объект, ВыборкаДетальныеЗаписи. Тариф);

КонецЦикла;

// регистр ПлановыеНачисленияРаботниковОрганизаций

Движения. ПлановыеНачисленияРаботниковОрганизаций. Записывать = Истина;

Движения. ПлановыеНачисленияРаботниковОрганизаций. Очистить();

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

Для Инд = 1 По 31 Цикл

Если ЗначениеЗаполнено(ТекСтрокаГрафик["День" + Инд]) Тогда

Движение = Движения. ПлановыеНачисленияРаботниковОрганизаций. Добавить();

Движение. Период = ДатаНачала + (Инд - 1) *24*60*60;

Движение. ПериодЗавершения = Движение. Период + 24*60*60;

Движение. Действие = Перечисления. ВидыДействияСНачислением. Начать;

Движение. ДействиеЗавершения = Перечисления. ВидыДействияСНачислением. Прекратить;

Движение. Организация = Организация;

Движение. ОбъектОхраны = ТекСтрокаГрафик. ОбъектОхраны;

Движение. Сотрудник = ТекСтрокаГрафик["День" + Инд];

Движение. ВидРасчета = ВидРасчета;

Движение. ВидРасчетаИзмерение = ВидРасчета;

Движение. Показатель1 = СтоимостьОхраны. Получить(ТекСтрокаГрафик. ОбъектОхраны);

КонецЕсли;

КонецЦикла;

КонецЦикла;

Открываем модуль документа «Начисление зарплаты работникам организаций». Ищем строки:

Запрос. Текст = ОсновнойТекстЗапроса;

РезультатЗапроса = Запрос. Выполнить();

Нам нужны первые из всех найденных. Выше идёт интересующий нас текст запроса. Перед блоком «УПОРЯДОЧИТЬ ПО», где заканчиваются соединения, добавим наше соединение:

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений. ПлановыеНачисленияРаботниковОрганизаций КАК ОбъектыОхраны

ПО СписокНачислений. Сотрудник = ОбъектыОхраны. Сотрудник

И ОбъектыОхраны. Организация = &парамОрганизация

И СписокНачислений. Период = ОбъектыОхраны. Период

И СписокНачислений. ВидРасчета = ОбъектыОхраны. ВидРасчета

В списке выборки добавим поле «ОбъектыОхраны. ОбъектОхраны». Теперь опустимся чуть ниже строк, что мы искали. Ищем код «СтрокаПолейОсновныхНачислений="…» и дописываем в строчку «, ОбъектОхраны».

Поднимаемся выше по тексту. Там видим код «ТЗНачисления = СформироватьТаблицуНачислений(…». Переходим к фукнции «СформироватьТаблицуНачислений». Первым делом добавляем в таблицу начислений новую колонку (после ТЗНачисления. Колонки. Добавить("ВидВремени");):

ТЗНачисления. Колонки. Добавить("ОбъектОхраны");

Ищем строку «// Добавим новую строку начислений» и после добавления строки вставляем код:

НоваяСтрока. ОбъектОхраны = Начисления. ОбъектОхраны;

Заполнение документа готово. Приступим к расчёту. Ищем функцию СформироватьЗапросПоНачисления. В ней есть куча запросов, нас интересуют только 2 – первый и последний. В первом в поле выборки добавляем реквизит ОбъектОхраны (после «| СтрокиДокумента. РасчетнаяБазаЗаЕдиницуНормыВремени,» добавлем «| СтрокиДокумента. ОбъектОхраны»), во втором – его же в выборку из временной таблицы, полученной в первом запросе (после «| СтрокиНачисления. РасчетнаяБазаЗаЕдиницуНормыВремени,» добавляем «| СтрокиНачисления. ОбъектОхраны»).

Потом идёи в процедуру ДобавитьСтрокуОсновныхНачислений и туда дописываем текст:

Движение. ОбъектОхраны = ВыборкаПоСтрокамДокумента. ОбъектОхраны;

Расчёт готов!

Теперь добавим пустой отчёт «Вознаграждение работников» и вынесем объекты в интерфейс.

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

Теперь по готовым данным отчёт составить проще простого. Вот мой текст запроса:

ВЫБРАТЬ

ОсновныеНачисленияРаботниковОрганизаций. Сотрудник КАК Работник,

ОсновныеНачисленияРаботниковОрганизаций. ОбъектОхраны,

НАЧАЛОПЕРИОДА(ОсновныеНачисленияРаботниковОрганизаций. ПериодДействия, МЕСЯЦ) КАК Период,

ОсновныеНачисленияРаботниковОрганизаций. Результат КАК НачисленоЗаОхрану,

ОсновныеНачисленияРаботниковОрганизаций. ОплаченоДнейЧасов КАК ОтработаноДней

ИЗ

РегистрРасчета. ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций

ГДЕ

ОсновныеНачисленияРаботниковОрганизаций. ПериодДействия МЕЖДУ &НачалоПериода И &КонецПериода

И ОсновныеНачисленияРаботниковОрганизаций. ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета. ОсновныеНачисленияОрганизаций. ТарифДневной)

И ОсновныеНачисленияРаботниковОрганизаций. ОбъектОхраны <> ЗНАЧЕНИЕ(Справочник. ОбъектыОхраны. ПустаяСсылка)

Формат даты ДФ='ММММ гггг' (январь 2008, февраль 2008 и т. д.).

Сумма по ресурсам ОтработаноДней и НачисленоЗаОхрану.

Настройки: