Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Разовые начисления ЗУП обработка          
kinoma Подменю пользователя
сообщение 12.02.19, 21:07
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

Столкнулся с небольшой проблемой в Запросе. Я новичок.
Нужно автоматизировать разовое начисление (вредность) по формуле Оклад\Норма рабочего времени как Тарифная ставка.
И по табелю 75% времени - время по вредности как отработанное время для расчёта результата.
Я создал обработку, из которой хочу получить такие данные как всех Сотрудников определенного подразделения и должности если указана, Оклад, Норма рабочего времени и Отработанное время за период для того, чтобы вставить полученные данные в соответствующие поля табличного представления.

Сотрудников с окладом вытащить не проблема, проблема соединить их по отработанному времени без переданного параметра определенного сотрудника.

ВЫБРАТЬ
    Начисления.Сотрудник,
    ВЫБОР
        КОГДА Начисления.ТарифныйРазряд1 <> ЗНАЧЕНИЕ(Справочник.ТарифныеРазряды.ПустаяСсылка) ТОГДА РазмерТарифныхСтавок.Размер
        ИНАЧЕ Начисления.Показатель1
    КОНЕЦ КАК ОкладТариф
ИЗ
РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций.СрезПоследних(&парамДатаСобытия, ) КАК Начисления
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрСведений.РазмерТарифныхСтавок.СрезПоследних(&парамДатаСобытия, ) КАК РазмерТарифныхСтавок
ПО Начисления.ТарифныйРазряд1 = РазмерТарифныхСтавок.ТарифныйРазряд

ГДЕ
    Начисления.Сотрудник.ТекущееПодразделениеОрганизации = &подразделениеОрганизации
    И Начисления.Сотрудник.ТекущаяДолжностьОрганизации = &Должность
    И Начисления.Сотрудник.Актуальность = ИСТИНА
    И Начисления.ВидРасчета <> Начисления.ВидРасчетаИзмерение



Норма рабочего времени за период.

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


И обороты по табелю, которые нужно умножить на 75%.

ВЫБРАТЬ
    РабочееВремя.ЧасовОборот
ИЗ
РегистрНакопления.РабочееВремяРаботниковОрганизаций.Обороты(НАЧАЛОПЕРИОДА(&парамДатаСобытия, МЕСЯЦ), КОНЕЦПЕРИОДА(&парамДатаСобытия, МЕСЯЦ), МЕСЯЦ, Сотрудник=&парамНазначение) КАК РабочееВремя


Как правильно соединить эти таблицы в один запрос?

fly Подменю пользователя
сообщение 08.05.19, 16:01
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 237
Спасибо сказали: 51 раз
Рейтинг: 48

kinoma @ 12.02.19, 22:07 * ,
Вы ставишТЕ отбор:

 И НЕ ГрафикиРаботы.Документ ССЫЛКА 
Документ.ТабельУчетаРабочегоВремениОрганизации


УбериТЕ его, когда табель заполнит значение графиков работы - появится измерение Сотрудник.
Просто его и джойниТЕ, с другими таблицами:

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



 ! 

Правила: 1
 


Сообщение отредактировал Vofka - 08.05.19, 16:07

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 25.04.24, 2:34
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!