ЗУП 3.0 Специалист. Билет 4.

Публикация № 409295

Разработка - Решение задач на 1С:Специалист

ЗУП специалист

Пример решения 4-го билета для экзамена на специалиста по ЗУП 3.0. В публикации представлено собственное решение.

Готовиться к экзамену начал в апреле 2015-го и, к сожалению, не нашел в сети решений, которые бы полностью меня устроили.
Для публикации выбрал 4-й билет, т.к. в нем показана работа с собственными предопределенными показателями расчета ЗП, работа с представлениями в коде и использован типовой документ «Данные для расчета зарплаты».

Экзаменационные билеты можно скачать с сайта 1С.


          1. ОБЩИЕ ВЕДЕНИЯ

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

   Мин(
   Макс(ФактическаяКвПлатаНарИт -ФактическиВозмещено, 0),
   Макс(ЗаработанныйЛимитНарИт - ФактическиВозмещено, 0))

(т.е. минимальное значение из остатка лимита и остатка невозмещенных расходов)

Где

    ФактическаяКвПлатаНарИт – фактический расход сотрудника с начала года

    ЗаработанныйЛимитНарИт – заработанный лимит с начала года

    ФактическиВозмещено – сумма возмещенная предприятием с начала года

Подробнее

а) ФактическаяКвПлатаНарИт – сумма показателей ФактическаяКвПлатаМес с начала года, ФактическаяКвПлатаМес – фактический расход сотрудника в текущем месяце, вводится в систему типовым документом «Данные для расчета зарплаты».

б) ЗаработанныйЛимитНарИт – сумма показателей ЗаработанныйЛимитМес с начала года, ЗаработанныйЛимитМес вводится в систему новым документом «Расчет лимитов».

в) ФактическиВозмещено  – сумма по регистру расчета «Начисления» с начала года по текущему виду расчета.

Объекты, добавленные в конфигурацию.

 


           2 ПОДГОТАВЛИВАЕМ СТРУКТУРУ

Снимаем конфигурацию с поддержки, и создаем подсистему "Экзамен" с дочерними.

 

Создаем перечисление «Категории должностей».

 

Далее нужно привязать категорию к должности. С предопределенной характеристикой больше возни и она отвлекает при обновлении конфигурации, так что регистр сведений в данном случае - меньшее зло.

 

Привязываем к категории должности норму возмещения окладов в год.

 

Добавляем документ.

 

И добавляем отчет «Возмещение расходов», не забываем сразу создать схему компоновки данных и указать хранилище вариантов в прочих.

          3. НАСТРАИВАЕМ ПРЕДПРИЯТИЕ

   3.1 Запускаем предприятие.

Наша панель.

 

Утверждаем штатное расписание на три должности, принимаем трех сотрудников на работу на оклад.

   3.2 В справочник «Показатели расчета зарплаты» добавляем новые показатели (для сотрудника,  разовое использование).

Показатели: ЗаработанныйЛимитМес, ЗаработанныйЛимитНарИт, ФактическаяКвПлатаМес, ФактическаяКвПлатаНарИт, ФактическиВозмещено.

 

   3.3 Далее Настройки/Шаблоны ввода исходных данных

Добавляем новый шаблон для ввода показателя ФактическаяКвПлатаМес по сотрудникам.

 

Далее Зарплата/Данные для расчета зарплаты.

Вводим документы фактических расходов за три месяца, пример:

 

   3.4 Создаем новый вид расчета «Возмещение кварт платы», указываем назначение использования «Компенсационные выплаты» и начисление выполняется «Только если введено значение показателя».

Формула расчета (описана выше):

   

Мин(
   Макс(ФактическаяКвПлатаНарИт -ФактическиВозмещено, 0),
   Макс(ЗаработанныйЛимитНарИт - ФактическиВозмещено, 0))
   //ЗаработанныйЛимитМес

Комментарий с показателем ЗаработанныйЛимитМес нужен для того, чтобы можно было указать его в реквизите «Начисление выполняется», т.к. все остальные показатели не вводятся в систему, а рассчитываются.

   3.5 Создаем документ отсутствия на работе (нужно по ТЗ).

 

   3.6 Заполняем РС «Категории должностей» и РС «Норма возмещения по категории».

 

 

          4. РАЗРАБОТКА

   4.1 Делаем наши показатели предопределенными.

Переключаемся в конфигуратор. Открываем предопределенные элементы справочника ПоказателиРасчетаЗарплаты. Добавляем ЗаработанныйЛимитМес, ЗаработанныйЛимитНарИт, ФактическаяКвПлатаМес, ФактическаяКвПлатаНарИт, ФактическиВозмещено.

Обратите внимание Имя = Наименование.

Создаем обработку с кодом

            

               об = Реквизит1.ПолучитьОбъект();
               об.ИмяПредопределенныхДанных = об.Наименование;
               об.Записать();

Где Реквизит1 – тип Справочник.ПоказателиРасчетаЗарплаты. Запускаем предприятие и обрабатываем наши показатели, теперь они предопределенные.

   4.2 Разработка документа «Расчет лимитов»

4.2.1. Создаем форму и переносим управление периодом регистрации (реквизиты формы и процедуры) из соседнего документа, например «Увольнение», также забираем и Дата/номер

Процедуры: МесяцНачисленияСтрокойПриИзменении, МесяцНачисленияСтрокойНачалоВыбора,.. в общем, все, что касается месяца. Также добавляем «ПриСозданииНаСервере»              

               Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
                   //это новый
                   Объект.ПериодРегистрации = НачалоМесяца(ТекущаяДата());
               КонецЕсли;
              
               МесяцНачисленияСтрокой = ЗарплатаКадрыКлиентСервер.ПолучитьПредставлениеМесяца(Объект.ПериодРегистрации);

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

Итак, для заполнения нам нужно отобрать всех сотрудников организации с датами приема, увольнения, тарифной ставкой и должностью. В этом нам поможет Представления_КадровыеДанныеСотрудников, пример берем из макета отчета, где оно используется. Поиск по макетам