Аттестация "1С:Специалист" > Аттестация "1С:Специалист" ЗУП

ЗУП 3.0 Программист Билет 1 ПОЕХАЛИ!!!

<< < (2/39) > >>

malknatal:
Я сделала регистр Фактические условия работы, для загрузки данных - обработку с формой выбора файла(пока документ не стала создавать для проведения).
 А вот на табличной части Графика работы в особых условиях остановилась - т.к. если сделать ТЧ Сотрудник, Дата начала, Дата окончания - получится, что по сотруднику можно указать только один период (допустим с 1 по 7 число), а как тогда указать два периода (с 1 по 7 и с 21 по 28, например)?
 (В задаче по ЗУП 2.5 данные в график на форме вводились по каждому дню, поэтому там несколько периодов можно было ввести без проблем)

nasurdinov:

--- Цитата: malknatal;35901 ---по сотруднику можно указать только один период
--- Конец цитаты ---


 А что мешает вводить несколько строк?

malknatal:
Да, можно и так

demos:
Алгоритм решения:
 1. Создаем РС УсловияСреды, периодический в пределах дня, с одним ресурсом "Условие". Добавляем возможность загрузки данных из текстового файла
 2. Создаем Начисление - "ЗаРаботуВОсобыхУсловиях": повременная оплата труда, ежемесячно, формула: ТарифнаяСтавкаЧасовая, учет времени: за работу полную смену, вид времени: "РаботаВОсобыхУсловиях".
 3. Создаем документ - "ГрафикРаботыВОсобыхУсловиях", который будет писать в РС - ПлановыеНачисления (с указанием действуетДО как конец месяца, чтобы начисление появлялось, в начислении зарплаты) и в РН - РабочееВремяСотрудников пишем Явку и РаботаВОсобыхУсловиях причем исключаем выходные через ВыборкаДанныхОВремени = Документы.ИндивидуальныйГрафик.ДанныеОВремениСотрудников(ЭтотОбъект);
 4. В модуле РасчетЗарплатыРасширенный процедура РассчитатьНачисленияОчередности
 создаем ВТЗаСложность, которая берет данные из ВТРабочееВремяПоДнямПоВидам и РС УсловияСреды и вычисляем Сумму процентов за сложность для строк начисления "ЗаРаботуВОсобыхУсловиях"
 5. в этой же процедуре после:
 РассчитатьСтрокуНачисления( ...
 ....
 добавляем:
     Если СтрокаРасчета.Начисление = ВидРасчетаЗаСложность Тогда
         ИсходныеДанные.Результат = ИсходныеДанные.Результат * Выборка.СуммаПроцентовЗаСложность / 100;
     КонецЕсли;

 6. Отчет через "Представления_"
 КодВЫБРАТЬ
      НачисленияДанныеГрафика.ПериодДействия,
      НачисленияДанныеГрафика.ПериодДействияКонец,
      НачисленияДанныеГрафика.Сотрудник,
      НачисленияДанныеГрафика.Результат КАК Доплата,
      НачисленияДанныеГрафика.ОтработаноДней КАК Факт,
      НачисленияДанныеГрафика.ОсновноеЗначениеБазовыйПериод КАК План,
      ВЫРАЗИТЬ(НачисленияДанныеГрафика.Результат / НачисленияДанныеГрафика.ОтработаноДней КАК ЧИСЛО(12, 2)) КАК СреднийРазмер
 ПОМЕСТИТЬ ВТВсеНачисления
 ИЗ
      РегистрРасчета.Начисления.ДанныеГрафика(
              ПериодДействия МЕЖДУ &НачалоПериода И &КонецПериода
                  И ВидРасчета = &ВидРасчета
                  И Активность = ИСТИНА) КАК НачисленияДанныеГрафика
 ;

 ////////////////////////////////////////////////////////////////////////////////
 ВЫБРАТЬ
      ВТВсеНачисления.Сотрудник КАК Сотрудник,
      ВТВсеНачисления.ПериодДействияКонец КАК Период
 ПОМЕСТИТЬ ВТСотрудники
 ИЗ
      ВТВсеНачисления КАК ВТВсеНачисления

 СГРУППИРОВАТЬ ПО
      ВТВсеНачисления.Сотрудник,
      ВТВсеНачисления.ПериодДействияКонец
 ;

 ////////////////////////////////////////////////////////////////////////////////
 ВЫБРАТЬ РАЗРЕШЕННЫЕ
      ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник,
      ЗНАЧЕНИЕ(Справочник.Должности.ПустаяСсылка) КАК Должность,
      ЗНАЧЕНИЕ(Справочник.РазрядыКатегорииДолжностей.ПустаяСсылка) КАК РазрядКатегория,
      ВТСотрудники.Период
 ПОМЕСТИТЬ Представления_КадровыеДанныеСотрудников
 ИЗ
      ВТСотрудники КАК ВТСотрудники
 ГДЕ
      "ТолькоРазрешенные" = ИСТИНА
 ;

 ////////////////////////////////////////////////////////////////////////////////
 ВЫБРАТЬ РАЗРЕШЕННЫЕ
      ВТВсеНачисления.ПериодДействия КАК Период,
      ВТВсеНачисления.Сотрудник КАК Сотрудник,
      Представления_КадровыеДанныеСотрудников.Должность КАК Должность,
      ВТВсеНачисления.План,
      ВТВсеНачисления.Факт,
      ВТВсеНачисления.Доплата,
      ВТВсеНачисления.СреднийРазмер
 ИЗ
      ВТВсеНачисления КАК ВТВсеНачисления
          ВНУТРЕННЕЕ СОЕДИНЕНИЕ Представления_КадровыеДанныеСотрудников КАК Представления_КадровыеДанныеСотрудников
          ПО ВТВсеНачисления.Сотрудник = Представления_КадровыеДанныеСотрудников.Сотрудник
              И ВТВсеНачисления.ПериодДействияКонец = Представления_КадровыеДанныеСотрудников.Период

tank-kras:

--- Цитата: demos;36439 ---... и вычисляем Сумму процентов за сложность для строк начисления "ЗаРаботуВОсобыхУсловиях"...
--- Конец цитаты ---

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

 
--- Цитата: demos;36439 ---ИсходныеДанные.Результат = ИсходныеДанные.Результат * Выборка.СуммаПроцентовЗаСложность / 100;
--- Конец цитаты ---


 а где идет умножение на отработанные часы?

 Скажите, пожалуйста, сколько у вас получается строк для начисления "ЗаРаботуВОсобыхУсловиях"? Судя по тому, что в РС ПлановыеНачисления идет одна запись, то получается одна строка?

 Я не много не так делал.
 1) Создаем вид начисления "ЗаРаботуВОсобыхУсловиях", "Дополнительная оплата за уже оплаченное время", ставим формулу РасчетнаяБаза * ПроцентНадбавкиПоОсобымУсловиям /100, где РасчетнаяБаза - ставим "Оплата по часовому тарифу"(нужно если будет вытеснение больничным или иным видом начисления), да и к тому же в задании сказано, что это доплата. Созданный показатель ПроцентНадбавкиПоОсобымУсловиям, который зависит от другого показателя УсловияТруда, ставим тип показателя "Числовой, зависящий от другого показателя", вводим шкалу процентов в зависимости от условий труда. Наверное надо было как у вас, через РС сделать, что было бы гибче. Но в задании не сказано, что процент премии может меняться. И опять же увеличивается время на экзамене на обработку разных случаев, если допустим процент поменялся много раз за месяц.
 2) Создаем документ "ГрафикРабот_В_ОсобыхУсловиях" - пишем данные в РС ГрафикПоОсобымУсловиямРабот - нужен для отчета
 3) Создаем документ "ФактическиеУсловияТруда" - куда загружаем данные из файла, добавляем также ТЧ с сотрудниками. Документ добавляет строки периодами в РС Плановые начисления, для всех сотрудников из ТЧ, по тем дням которые регистрировались прибором. В ресурс "Размер" записывается значение условие труда. То есть фактически делается запись:

 10.01.2014 - 15.01.2014 1
 16.01.2014 - 18.01.2014 0
 20.01.2014 - 25.01.2014 2

 Т.к. формула у нас идет от РасчетБазы, то получается что, если сотрудник работал в определенный период месяца, а в другой период, допустим, болел, то будет начислена доплата за отработанный период.
 И в документе Начисление зарплаты будут разбиты на столько строк, сколько записей в РС Плановые начисление, и визуально можно будет посмотреть в какой период времени было условие труда
 Далее в процедуре "РассчитатьНачисленияОчередности" перед РассчитатьСтрокуНачисления( обращаемся к РС ПлановыеНачсиления, вытягиваем условие труда для строки расчета конкретного периода и подсовываем в структуру ИсходныеДанные.УсловияТруда наше значение, далее все рассчитается само собой.

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

 Про РН РабочееВремяСотрудников - документ "Начисление зарплаты" сам пишет данные по виду расчета ЗаРаботуВОсобыхУсловиях

 demos, у вас есть еще решенные билеты, хотелось бы свериться с альтернативным взглядом? я решил пока 3, остальные 3 решу в эти выходные. Сдаю экзамен 10.10.2014

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Перейти к полной версии