8.х ЗУП Сменщики на окладе

Тема в разделе ""1С:Зарплата и управление персоналом ЗУП"", создана пользователем svet, 16 фев 2015.

  1. TopicStarter Overlay
    svet
    Offline

    svet Профессионал в 1С Команда форума

    Регистрация:
    9 ноя 2007
    Сообщения:
    1.971
    Симпатии:
    59
    Баллы:
    54
    1C8 УПП 1.3.60
    У наших очередной бзик, хотят всех перевести на оклады, причем рассчитывать хотят от среднемесячного времени (среднего за год).
    Пролазила всю программу, вроде как нет такой возможности - рассчитывать оклад от среднемесячного времени. Т.е. есть в настройках галка "при расчете месячного оклада в часовую ставку использовать - среднее за год количество часов в месяце", но она работает только на неосновное время типа сверхурочных и т.п., там даже в комментарии написано об этом.

    В связи со всем этим вопросы:
    Я точно все увидела, действительно 1Ска не умеет рассчитывать оклад по среднемесяному времени? Или я что-то где-то все-таки проглядела?
    А в ЗУПе тоже нет такой возможности?
    Кто-нибудь использует оплату по окладам по сменному режиму работы? Как считаете?
  2. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Программно в ЗУПе 2.5 получал з/п за 1 час в зависимости от оклада и производственного календаря:
    Функция РассчитатьТарифыСотрудников() Экспорт

    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    Запрос.УстановитьПараметр("Сотрудники", ОтработанноеВремя.ВыгрузитьКолонку("Сотрудник"));
    Запрос.УстановитьПараметр("ДатаАктуальности", Дата);
    Запрос.УстановитьПараметр("ТекущийМесяц", НачалоМесяца(Дата));
    Запрос.УстановитьПараметр("ДатаВалютногоУчета", НачалоМесяца(ПериодРегистрации));
    Запрос.УстановитьПараметр("РегламентВалюта", мВалютаРегламентированногоУчета);
    Запрос.УстановитьПараметр("Год", Год(Дата));

    Запрос.Текст =
    "ВЫБРАТЬ
    | СотрудникиОрганизаций.Ссылка КАК Сотрудник,
    | ВЫБОР
    | КОГДА СотрудникиОрганизаций.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
    | ТОГДА &ДатаАктуальности
    | ИНАЧЕ СотрудникиОрганизаций.ДатаУвольнения
    | КОНЕЦ КАК ДатаАктуальности
    |ПОМЕСТИТЬ ВТСписокСотрудников
    |ИЗ
    | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
    |ГДЕ
    | СотрудникиОрганизаций.Ссылка В(&Сотрудники)
    |
    |ИНДЕКСИРОВАТЬ ПО
    | Сотрудник,
    | ДатаАктуальности
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | СписокСотрудников.Сотрудник КАК Сотрудник,
    | МАКСИМУМ(ПлановыеНачисления.Период) КАК Период
    |ПОМЕСТИТЬ ВТПлановыеНачисленияДатыПоследнихДвижений
    |ИЗ
    | ВТСписокСотрудников КАК СписокСотрудников
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисления
    | ПО СписокСотрудников.Сотрудник = ПлановыеНачисления.Сотрудник
    | И СписокСотрудников.ДатаАктуальности >= ПлановыеНачисления.Период
    |ГДЕ
    | ПлановыеНачисления.ВидРасчетаИзмерение = НЕОПРЕДЕЛЕНО
    |
    |СГРУППИРОВАТЬ ПО
    | СписокСотрудников.Сотрудник
    |
    |ИНДЕКСИРОВАТЬ ПО
    | Сотрудник,
    | Период
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | ОсновныеНачисления.Регистратор,
    | ОсновныеНачисления.НомерСтроки,
    | ОсновныеНачисления.Сотрудник,
    | ОсновныеНачисления.Период,
    | ОсновныеНачисления.ПериодЗавершения,
    | ОсновныеНачисления.ВидРасчета,
    | ОсновныеНачисления.ВидРасчетаЗавершения,
    | ОсновныеНачисления.Показатель1,
    | ОсновныеНачисления.Валюта1,
    | ОсновныеНачисления.Валюта1Завершения,
    | ОсновныеНачисления.ТарифныйРазряд1,
    | ОсновныеНачисления.Показатель2,
    | ОсновныеНачисления.ТарифныйРазряд2,
    | ОсновныеНачисления.Показатель3,
    | ОсновныеНачисления.ТарифныйРазряд3,
    | ОсновныеНачисления.Показатель4,
    | ОсновныеНачисления.ТарифныйРазряд4,
    | ОсновныеНачисления.Показатель5,
    | ОсновныеНачисления.ТарифныйРазряд5,
    | ОсновныеНачисления.Показатель6,
    | ОсновныеНачисления.ТарифныйРазряд6,
    | ОсновныеНачисления.Показатель1Завершения,
    | ОсновныеНачисления.Показатель2Завершения,
    | ОсновныеНачисления.Показатель3Завершения,
    | ОсновныеНачисления.Показатель4Завершения,
    | ОсновныеНачисления.Показатель5Завершения,
    | ОсновныеНачисления.Показатель6Завершения,
    | ОсновныеНачисления.ТарифныйРазряд1Завершения,
    | ОсновныеНачисления.ТарифныйРазряд2Завершения,
    | ОсновныеНачисления.ТарифныйРазряд3Завершения,
    | ОсновныеНачисления.ТарифныйРазряд4Завершения,
    | ОсновныеНачисления.ТарифныйРазряд5Завершения,
    | ОсновныеНачисления.ТарифныйРазряд6Завершения
    |ПОМЕСТИТЬ ВТСтрокиОписанияНачислений
    |ИЗ
    | ВТПлановыеНачисленияДатыПоследнихДвижений КАК ПлановыеНачисленияДатыПоследнихДвижений
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ОсновныеНачисления
    | ПО ПлановыеНачисленияДатыПоследнихДвижений.Сотрудник = ОсновныеНачисления.Сотрудник
    | И ПлановыеНачисленияДатыПоследнихДвижений.Период = ОсновныеНачисления.Период
    | И (ОсновныеНачисления.ВидРасчетаИзмерение = НЕОПРЕДЕЛЕНО)";
    Запрос.Выполнить();

    ПроцедурыУправленияПерсоналом.ИзвлечьТарифнуюСтавкуИзПараметровНачисления(Запрос.МенеджерВременныхТаблиц);

    Запрос.Текст =
    "ВЫБРАТЬ
    | ОсновноеНачисление.Сотрудник,
    | ВЫБОР
    | КОГДА ОсновноеНачисление.ПериодЗавершения <= &ДатаАктуальности
    | И ОсновноеНачисление.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    | ТОГДА ТарифныеСтавки.РазмерностьТарифнойСтавкиЗавершения
    | ИНАЧЕ ТарифныеСтавки.РазмерностьТарифнойСтавки
    | КОНЕЦ КАК СпособРасчета,
    | ВЫБОР
    | КОГДА ОсновноеНачисление.ПериодЗавершения <= &ДатаАктуальности
    | И ОсновноеНачисление.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    | ТОГДА ВЫБОР
    | КОГДА ОсновноеНачисление.ВидРасчетаЗавершения.ТребуетВводаТарифногоРазряда
    | ТОГДА РазмерТарифныхСтавок.Размер
    | ИНАЧЕ ТарифныеСтавки.ТарифнаяСтавкаЗавершения
    | КОНЕЦ
    | ИНАЧЕ ВЫБОР
    | КОГДА ОсновноеНачисление.ВидРасчета.ТребуетВводаТарифногоРазряда
    | ТОГДА РазмерТарифныхСтавок.Размер
    | ИНАЧЕ ТарифныеСтавки.ТарифнаяСтавка
    | КОНЕЦ
    | КОНЕЦ * ВЫБОР
    | КОГДА ВЫБОР
    | КОГДА ОсновноеНачисление.ПериодЗавершения <= &ДатаАктуальности
    | И ОсновноеНачисление.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    | ТОГДА ВЫБОР
    | КОГДА ОсновноеНачисление.ВидРасчетаЗавершения.ТребуетВводаТарифногоРазряда
    | ТОГДА РазмерТарифныхСтавок.Валюта
    | ИНАЧЕ ОсновноеНачисление.Валюта1Завершения
    | КОНЕЦ
    | ИНАЧЕ ВЫБОР
    | КОГДА ОсновноеНачисление.ВидРасчета.ТребуетВводаТарифногоРазряда
    | ТОГДА РазмерТарифныхСтавок.Валюта
    | ИНАЧЕ ОсновноеНачисление.Валюта1
    | КОНЕЦ
    | КОНЕЦ В (&РегламентВалюта, ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка))
    | ТОГДА 1
    | ИНАЧЕ ЕСТЬNULL(Валюты.Курс / Валюты.Кратность, 0)
    | КОНЕЦ КАК ОкладТариф
    |ПОМЕСТИТЬ ВТРазмерОсновногоНачисления
    |ИЗ
    | ВТСтрокиОписанияНачислений КАК ОсновноеНачисление
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТТарифныеСтавкиНачислений КАК ТарифныеСтавки
    | ПО ОсновноеНачисление.Регистратор = ТарифныеСтавки.Регистратор
    | И ОсновноеНачисление.НомерСтроки = ТарифныеСтавки.НомерСтроки
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РазмерТарифныхСтавок.СрезПоследних(&ДатаВалютногоУчета, ) КАК РазмерТарифныхСтавок
    | ПО (ВЫБОР
    | КОГДА ОсновноеНачисление.ПериодЗавершения <= &ДатаАктуальности
    | И ОсновноеНачисление.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    | ТОГДА ТарифныеСтавки.ТарифныйРазрядЗавершения
    | ИНАЧЕ ТарифныеСтавки.ТарифныйРазряд
    | КОНЕЦ = РазмерТарифныхСтавок.ТарифныйРазряд)
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалютДляРасчетовСПерсоналом КАК Валюты
    | ПО (Валюты.Валюта = ВЫБОР
    | КОГДА ОсновноеНачисление.ПериодЗавершения <= &ДатаАктуальности
    | И ОсновноеНачисление.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    | ТОГДА ВЫБОР
    | КОГДА ОсновноеНачисление.ВидРасчетаЗавершения.ТребуетВводаТарифногоРазряда
    | ТОГДА РазмерТарифныхСтавок.Валюта
    | ИНАЧЕ ОсновноеНачисление.Валюта1Завершения
    | КОНЕЦ
    | ИНАЧЕ ВЫБОР
    | КОГДА ОсновноеНачисление.ВидРасчета.ТребуетВводаТарифногоРазряда
    | ТОГДА РазмерТарифныхСтавок.Валюта
    | ИНАЧЕ ОсновноеНачисление.Валюта1
    | КОНЕЦ
    | КОНЕЦ)
    | И (Валюты.Период = &ДатаВалютногоУчета)
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | СписокСотрудников.Сотрудник КАК Сотрудник,
    | МАКСИМУМ(РаботникиОрганизаций.Период) КАК Период
    |ПОМЕСТИТЬ ВТРаботникиОрганизацийДатыПоследнихДвижений
    |ИЗ
    | ВТСписокСотрудников КАК СписокСотрудников
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
    | ПО СписокСотрудников.Сотрудник = РаботникиОрганизаций.Сотрудник
    | И СписокСотрудников.ДатаАктуальности >= РаботникиОрганизаций.Период
    |
    |СГРУППИРОВАТЬ ПО
    | СписокСотрудников.Сотрудник
    |
    |ИНДЕКСИРОВАТЬ ПО
    | Сотрудник,
    | Период
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | РаботникиОрганизацийДатыПоследнихДвижений.Сотрудник КАК Сотрудник,
    | ВЫБОР
    | КОГДА РаботникиОрганизации.ПериодЗавершения <= &ДатаАктуальности
    | И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    | ТОГДА ВЫБОР
    | КОГДА РаботникиОрганизации.ГрафикРаботыЗавершения.СокращенноеРабочееВремя
    | И РаботникиОрганизации.ГрафикРаботыЗавершения.ГрафикПолногоРабочегоВремени <> ЗНАЧЕНИЕ(Справочник.ГрафикиРаботы.ПустаяСсылка)
    | ТОГДА РаботникиОрганизации.ГрафикРаботыЗавершения.ГрафикПолногоРабочегоВремени
    | ИНАЧЕ РаботникиОрганизации.ГрафикРаботыЗавершения
    | КОНЕЦ
    | КОГДА РаботникиОрганизации.ГрафикРаботы.СокращенноеРабочееВремя
    | И РаботникиОрганизации.ГрафикРаботы.ГрафикПолногоРабочегоВремени <> ЗНАЧЕНИЕ(Справочник.ГрафикиРаботы.ПустаяСсылка)
    | ТОГДА РаботникиОрганизации.ГрафикРаботы.ГрафикПолногоРабочегоВремени
    | ИНАЧЕ РаботникиОрганизации.ГрафикРаботы
    | КОНЕЦ КАК ГрафикРаботы,
    | ВЫБОР
    | КОГДА РаботникиОрганизации.ПериодЗавершения <= &ДатаАктуальности
    | И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    | ТОГДА ВЫБОР
    | КОГДА РаботникиОрганизации.ГрафикРаботыЗавершения.СокращенноеРабочееВремя
    | И РаботникиОрганизации.ГрафикРаботыЗавершения.ГрафикПолногоРабочегоВремени <> ЗНАЧЕНИЕ(Справочник.ГрафикиРаботы.ПустаяСсылка)
    | ТОГДА РаботникиОрганизации.ГрафикРаботыЗавершения.ГрафикПолногоРабочегоВремени.ДлительностьРабочейНедели
    | ИНАЧЕ РаботникиОрганизации.ГрафикРаботыЗавершения.ДлительностьРабочейНедели
    | КОНЕЦ
    | КОГДА РаботникиОрганизации.ГрафикРаботы.СокращенноеРабочееВремя
    | И РаботникиОрганизации.ГрафикРаботы.ГрафикПолногоРабочегоВремени <> ЗНАЧЕНИЕ(Справочник.ГрафикиРаботы.ПустаяСсылка)
    | ТОГДА РаботникиОрганизации.ГрафикРаботы.ГрафикПолногоРабочегоВремени.ДлительностьРабочейНедели
    | ИНАЧЕ РаботникиОрганизации.ГрафикРаботы.ДлительностьРабочейНедели
    | КОНЕЦ КАК ДлительностьРабочейНедели,
    | ВЫБОР
    | КОГДА РаботникиОрганизации.ПериодЗавершения <= &ДатаАктуальности
    | И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    | ТОГДА РаботникиОрганизации.ГрафикРаботыЗавершения.ВидГрафика
    | ИНАЧЕ РаботникиОрганизации.ГрафикРаботы.ВидГрафика
    | КОНЕЦ КАК ВидГрафика
    |ПОМЕСТИТЬ ВТДанныеРаботника
    |ИЗ
    | ВТРаботникиОрганизацийДатыПоследнихДвижений КАК РаботникиОрганизацийДатыПоследнихДвижений
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизации
    | ПО (РаботникиОрганизации.Сотрудник = РаботникиОрганизацийДатыПоследнихДвижений.Сотрудник)
    | И (РаботникиОрганизации.Период = РаботникиОрганизацийДатыПоследнихДвижений.Период)
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | СводныеИндивидуальныеГрафики.Часов КАК Часов,
    | СводныеИндивидуальныеГрафики.Сотрудник
    |ПОМЕСТИТЬ ВТНормаВремениПоСводнымИндивидуальнымГрафикам
    |ИЗ
    | РегистрСведений.СводныеИндивидуальныеГрафики КАК СводныеИндивидуальныеГрафики
    |ГДЕ
    | СводныеИндивидуальныеГрафики.Сотрудник В(&Сотрудники)
    | И СводныеИндивидуальныеГрафики.Месяц = &ТекущийМесяц
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | СУММА(ГрафикиРаботыПоВидамВремени.ДополнительноеЗначение) КАК ЧасовЗаМесяц,
    | ГрафикиРаботыПоВидамВремени.ГрафикРаботы КАК Сотрудник
    |ПОМЕСТИТЬ ВТНормаВремениПоЕжедневнымИндивидуальнымГрафикам
    |ИЗ
    | РегистрСведений.ГрафикиРаботыПоВидамВремени КАК ГрафикиРаботыПоВидамВремени
    |ГДЕ
    | ГрафикиРаботыПоВидамВремени.ГрафикРаботы В(&Сотрудники)
    | И ГрафикиРаботыПоВидамВремени.Месяц = &ТекущийМесяц
    | И ГрафикиРаботыПоВидамВремени.План
    | И ГрафикиРаботыПоВидамВремени.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
    |
    |СГРУППИРОВАТЬ ПО
    | ГрафикиРаботыПоВидамВремени.ГрафикРаботы
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | СУММА(ГрафикиРаботыПоВидамВремени.ДополнительноеЗначение) КАК ЧасовЗаМесяц,
    | ДанныеРаботника.Сотрудник
    |ПОМЕСТИТЬ ВТНормаВремениПоОбщимГрафикам
    |ИЗ
    | ВТДанныеРаботника КАК ДанныеРаботника
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикиРаботыПоВидамВремени КАК ГрафикиРаботыПоВидамВремени
    | ПО (ГрафикиРаботыПоВидамВремени.ГрафикРаботы = ДанныеРаботника.ГрафикРаботы)
    |ГДЕ
    | ГрафикиРаботыПоВидамВремени.Месяц = &ТекущийМесяц
    | И ГрафикиРаботыПоВидамВремени.План
    | И ГрафикиРаботыПоВидамВремени.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
    |
    |СГРУППИРОВАТЬ ПО
    | ДанныеРаботника.Сотрудник
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | СУММА(ВЫБОР
    | КОГДА РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)
    | ТОГДА 1
    | ИНАЧЕ 0
    | КОНЕЦ) КАК ЧислоРабочихДней,
    | СУММА(ВЫБОР
    | КОГДА РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)
    | ТОГДА 1
    | ИНАЧЕ 0
    | КОНЕЦ) КАК ЧислоПредпраздничныхДней
    |ПОМЕСТИТЬ ВТДанныеПроизводственногоКалендаря
    |ИЗ
    | РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
    |ГДЕ
    | РегламентированныйПроизводственныйКалендарь.Год = &Год
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | СУММА(ВЫБОР
    | КОГДА РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)
    | ТОГДА 1
    | ИНАЧЕ 0
    | КОНЕЦ) КАК ЧислоРабочихДней,
    | СУММА(ВЫБОР
    | КОГДА РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)
    | ТОГДА 1
    | ИНАЧЕ 0
    | КОНЕЦ) КАК ЧислоПредпраздничныхДней
    |ПОМЕСТИТЬ ВТДанныеПроизводственногоКалендаряЗаМесяц
    |ИЗ
    | РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
    |ГДЕ
    | НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, МЕСЯЦ) = &ТекущийМесяц
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | ДанныеРаботника.Сотрудник,
    | ВЫБОР
    | КОГДА ОсновноеНачисление.СпособРасчета В (ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоЧасовойТарифнойСтавке), ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.СдельныйЗаработок))
    | ТОГДА ОсновноеНачисление.ОкладТариф
    | КОГДА ОсновноеНачисление.СпособРасчета В (ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоМесячнойТарифнойСтавкеПоЧасам), ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоМесячнойТарифнойСтавкеПоДням))
    | ТОГДА ВЫРАЗИТЬ(ВЫБОР
    | КОГДА ЕСТЬNULL(ВариантыВстроенныхАлгоритмовРасчетаЗарплаты.ПорядокПересчетаМесячнойСтавкиВЧасовую, ЗНАЧЕНИЕ(Перечисление.ПорядкиПересчетаМесячнойСтавкиВЧасовую.ПоСреднемуКоличествуЧасовВМесяце)) = ЗНАЧЕНИЕ(Перечисление.ПорядкиПересчетаМесячнойСтавкиВЧасовую.ПоСреднемуКоличествуЧасовВМесяце)
    | ТОГДА ВЫБОР
    | КОГДА ЕСТЬNULL(ДанныеПроизводственногоКалендаря.ЧислоРабочихДней, 0) = 0
    | ТОГДА 0
    | КОГДА ДанныеРаботника.ДлительностьРабочейНедели = 0
    | ТОГДА 0
    | ИНАЧЕ ОсновноеНачисление.ОкладТариф / (ДанныеРаботника.ДлительностьРабочейНедели / 5 * (ЕСТЬNULL(ДанныеПроизводственногоКалендаря.ЧислоРабочихДней, 0) + ЕСТЬNULL(ДанныеПроизводственногоКалендаря.ЧислоПредпраздничныхДней, 0)) - ЕСТЬNULL(ДанныеПроизводственногоКалендаря.ЧислоПредпраздничныхДней, 0)) * 12
    | КОНЕЦ
    | КОГДА ВариантыВстроенныхАлгоритмовРасчетаЗарплаты.ПорядокПересчетаМесячнойСтавкиВЧасовую = ЗНАЧЕНИЕ(Перечисление.ПорядкиПересчетаМесячнойСтавкиВЧасовую.ПоМесячнойНормеПоПроизводственномуКалендарю)
    | ТОГДА ВЫБОР
    | КОГДА ЕСТЬNULL(ДанныеПроизводственногоКалендаряЗаМесяц.ЧислоРабочихДней, 0) = 0
    | ТОГДА 0
    | КОГДА ДанныеРаботника.ДлительностьРабочейНедели = 0
    | ТОГДА 0
    | ИНАЧЕ ОсновноеНачисление.ОкладТариф / (ДанныеРаботника.ДлительностьРабочейНедели / 5 * (ЕСТЬNULL(ДанныеПроизводственногоКалендаряЗаМесяц.ЧислоРабочихДней, 0) + ЕСТЬNULL(ДанныеПроизводственногоКалендаряЗаМесяц.ЧислоПредпраздничныхДней, 0)) - ЕСТЬNULL(ДанныеПроизводственногоКалендаряЗаМесяц.ЧислоПредпраздничныхДней, 0))
    | КОНЕЦ
    | КОГДА ВЫБОР
    | КОГДА СводныеИндивидуальныеГрафики.Часов ЕСТЬ НЕ NULL
    | ТОГДА СводныеИндивидуальныеГрафики.Часов
    | КОГДА НормаВремениПоЕжедневнымИндивидуальнымГрафикам.ЧасовЗаМесяц ЕСТЬ НЕ NULL
    | ТОГДА НормаВремениПоЕжедневнымИндивидуальнымГрафикам.ЧасовЗаМесяц
    | ИНАЧЕ ЕСТЬNULL(ГрафикиРаботыПоВидамВремени.ЧасовЗаМесяц, 0)
    | КОНЕЦ = 0
    | ТОГДА 0
    | ИНАЧЕ ОсновноеНачисление.ОкладТариф / ВЫБОР
    | КОГДА СводныеИндивидуальныеГрафики.Часов ЕСТЬ НЕ NULL
    | ТОГДА СводныеИндивидуальныеГрафики.Часов
    | КОГДА НормаВремениПоЕжедневнымИндивидуальнымГрафикам.ЧасовЗаМесяц ЕСТЬ НЕ NULL
    | ТОГДА НормаВремениПоЕжедневнымИндивидуальнымГрафикам.ЧасовЗаМесяц
    | ИНАЧЕ ЕСТЬNULL(ГрафикиРаботыПоВидамВремени.ЧасовЗаМесяц, 0)
    | КОНЕЦ
    | КОНЕЦ КАК ЧИСЛО(15, 3))
    | КОГДА ОсновноеНачисление.СпособРасчета = ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоДневнойТарифнойСтавке)
    | ТОГДА ВЫРАЗИТЬ(ВЫБОР
    | КОГДА ДанныеРаботника.ДлительностьРабочейНедели = 0
    | ТОГДА 0
    | ИНАЧЕ ОсновноеНачисление.ОкладТариф / ДанныеРаботника.ДлительностьРабочейНедели * ВЫБОР
    | КОГДА ДанныеРаботника.ВидГрафика = ЗНАЧЕНИЕ(Перечисление.ВидыРабочихГрафиков.Шестидневка)
    | ТОГДА 6
    | ИНАЧЕ 5
    | КОНЕЦ
    | КОНЕЦ КАК ЧИСЛО(15, 3))
    | ИНАЧЕ 0
    | КОНЕЦ КАК Размер
    |ИЗ
    | ВТДанныеРаботника КАК ДанныеРаботника
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВариантыВстроенныхАлгоритмовРасчетаЗарплаты КАК ВариантыВстроенныхАлгоритмовРасчетаЗарплаты
    | ПО (ИСТИНА)
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
    | ПО (ИСТИНА)
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТРазмерОсновногоНачисления КАК ОсновноеНачисление
    | ПО ДанныеРаботника.Сотрудник = ОсновноеНачисление.Сотрудник
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеПроизводственногоКалендаряЗаМесяц КАК ДанныеПроизводственногоКалендаряЗаМесяц
    | ПО (ИСТИНА)
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТНормаВремениПоСводнымИндивидуальнымГрафикам КАК СводныеИндивидуальныеГрафики
    | ПО ДанныеРаботника.Сотрудник = СводныеИндивидуальныеГрафики.Сотрудник
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТНормаВремениПоОбщимГрафикам КАК ГрафикиРаботыПоВидамВремени
    | ПО ДанныеРаботника.Сотрудник = ГрафикиРаботыПоВидамВремени.Сотрудник
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТНормаВремениПоЕжедневнымИндивидуальнымГрафикам КАК НормаВремениПоЕжедневнымИндивидуальнымГрафикам
    | ПО ДанныеРаботника.Сотрудник = НормаВремениПоЕжедневнымИндивидуальнымГрафикам.Сотрудник";

    Выборка = Запрос.Выполнить().Выбрать();
    Для каждого СтрокаТЧ Из ОтработанноеВремя Цикл
    ТарифСотрудника = 0;
    КонецЦикла;
    Пока Выборка.Следующий() Цикл
    СтрокиТЧ = ОтработанноеВремя.НайтиСтроки(Новый Структура("Сотрудник", Выборка.Сотрудник));
    Для каждого СтрокаТЧ Из СтрокиТЧ Цикл
    ТарифСотрудника = Выборка.Размер;
    //Сообщить(ТарифСотрудника);
    Возврат ТарифСотрудника;
    КонецЦикла;
    КонецЦикла;

    КонецФункции
    ЗЫ: взята и немного изменена из ОбщегоМодуля.ПроцедурыУправленияПерсоналом.ЧасоваяТарифнаяСтавкаРаботникаОрг
    svet нравится это.
  3. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Светлана. добрый день!

    Сразу несколько вопросов, что значит расчитывать от "от среднемесячного времени (среднего за год)."?
    Поясню. Оклад = Размер оклада *факт/норму.

    Тут все стандартно. из этой формулы единственное что можно учитываь как среднемесяцное - это Норма.

    Соответвеноо рах это норма, то у сотрудника график работы должен этому соответвовать.
    По этому У Вас какой есть выход создать график(и) работы у которых количество часво в месяце будет рано среднемесячному ну и считайте как обычно.
    Иначе я бы на месе человека написал бы в трудовую инспексицию с вопросом разобраться т.к нрафик работы у меня 40 часов, а расчитывают по среднемесячному....На основании чего?

    Повторюсь. стандарно можно решить через графики.
    svet нравится это.
  4. TopicStarter Overlay
    svet
    Offline

    svet Профессионал в 1С Команда форума

    Регистрация:
    9 ноя 2007
    Сообщения:
    1.971
    Симпатии:
    59
    Баллы:
    54
    Я лет 5 назад то же самое пробовала делать, наткнулась на несколько неприятностей (уже забыла каких) и начала всех пинать, чтобы сменщиков перевели на тарифы.
    Т.е. вопрос с переписыванием понятный, но уж оченьт не хочется еще и основной расчет переписывать, и так уже вся программа перепахана...
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Ну вот яже и спрашиваю в чем проблема на новы графики перевести, ведь по идее так и должно быть.
  6. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Ну я добавил свой документ подобный ТабелюОтработанногоВремени(здесь расчет сверхурочных, выходных) + Регистр, затем обработкой заполняют документ РегистрацияРазовыхНачислений...
  7. TopicStarter Overlay
    svet
    Offline

    svet Профессионал в 1С Команда форума

    Регистрация:
    9 ноя 2007
    Сообщения:
    1.971
    Симпатии:
    59
    Баллы:
    54
    Да, норма, хотят чтобы оклад делился на 164.25. Естественно, в графики запихнуть это можно - самый простой, казалось бы, вариант. Вопрос, как эти 164.25 разбить на дни так, чтобы часы всех устроили.
    У нас есть еще кадровики, которые хотят, чтобы у него в графике сменности стояло 10,75 часа и в норме было столько же.
    И еще у нас есть десятка полтора девочек, которые эти графики забивают - иногда левой пяткой - и они таких графиков набьют, что потом ни невыходы толком не возьмутся, ни переработку не посчитаешь.

    У меня-то главный вопрос - СТАНДАРТНО 1С-ка только через инд. графики это делает, я точно ничего не упустила?
    А то вопрос на уровне директора решается, неудобно будет, если я однозначно прокричу, что "программа не считает", а она вдруг считает. :)
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Программа оклад считает по той формуле, по которой я написал. соответвенно норму в данном случае она может взять либо из установленного графика, либо из индивидуального.Больше неокуда.
    Просто я бы на работе мог возмутиться по этому поводу.т.к пришел я работать, например в начале года, когда январь и май, когда у меня при делении на среднее будет занижаться ЗП, потом я увольняюсь, получается что яв деньгах теряю. Т.е не выгодно увольняться до конца года то....
    Вы просто учитывайте что у Вас и при расчете среднего тогда то же все это будет учитываться исходя из среднего за год .....

    Я бы если уж делала, то все делал через графики, что бы вообще ник чему придраться не смогли. Может сначало будет сложновато, но а что хотели, все по и сразу....
    svet нравится это.
  9. TopicStarter Overlay
    svet
    Offline

    svet Профессионал в 1С Команда форума

    Регистрация:
    9 ноя 2007
    Сообщения:
    1.971
    Симпатии:
    59
    Баллы:
    54
    У вас по окладу разовыми начисляется? Или я не поняла.
  10. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Весь расчет в добавленном доке ТабельХ, в регистрацию разовых загружаются суммы/дни/часы из добавленного регистра
    svet нравится это.
  11. TopicStarter Overlay
    svet
    Offline

    svet Профессионал в 1С Команда форума

    Регистрация:
    9 ноя 2007
    Сообщения:
    1.971
    Симпатии:
    59
    Баллы:
    54
    И средний, и доплаты все загадочно будут считаться, - я о том же и возмущаюсь.

    Я вообще считаю, что самый простой в таком случае вариант - по тарифу - и расчет простой, и получил сколько заработал, и все давольны. У начальства проблема - не хотят платить доп. вознаграждение за праздники. Из-за этого весь кипеш.
  12. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    А что значит "доп вознаграждения за праздники"? типа из за того что пол месяца народ отдыхает, а оклад получает? Ну это наверное к правительству. они то может и рады были то работать, но за бесплатно нико кнечно не будет.
    Можно конечно перейти на суммированный учет рабочего времени там есть свои особенности. ну это уже пусть Ваш кадровик разбирается, его же потом трудовая инспекция накрывать будет
  13. TopicStarter Overlay
    svet
    Offline

    svet Профессионал в 1С Команда форума

    Регистрация:
    9 ноя 2007
    Сообщения:
    1.971
    Симпатии:
    59
    Баллы:
    54
    То, что окладник все-равно получает оклад, а тарифник в январе получает мало и правительство ему велело доплатить :
    "Работникам, за исключением работников, получающих оклад (должностной оклад), за нерабочие праздничные дни, в которые они не привлекались к работе, выплачивается дополнительное вознаграждение. Размер и порядок выплаты указанного вознаграждения определяются коллективным договором, соглашениями, локальным нормативным актом, принимаемым с учетом мнения выборного органа первичной профсоюзной организации, трудовым договором. Суммы расходов на выплату дополнительного вознаграждения за нерабочие праздничные дни относятся к расходам на оплату труда в полном размере." - статья 112 ТК РФ.

    Они у нас как раз на суммированном все и сидят...

Поделиться этой страницей