|
Задачи 1С специалист по платформе 8.3 | ☑ | ||
---|---|---|---|---|
0
skupidom
17.12.21
✎
20:15
|
Коллеги, кто решал задачу ПР 1 с графиком опозданий, прошу Вас подскажите как считали оклад и штраф ?
|
|||
1
TheRoofIsOn Fire
17.12.21
✎
20:16
|
я задачи платформе решал в 2006 году, и с тех пор помню. Штраф это вытесняющий расчет.
|
|||
2
TheRoofIsOn Fire
17.12.21
✎
20:19
|
А вообще как человек, который подготовился к 10 спецам(или к 11) скажу. Что надо пойти в 1С или к Гилеву на курсы и после этого сдашь. Потому, что могут быть правильные, но модные или не модные решения. Если ты решишь не модно, то либо не успеешь за отведенное время, либо препод бал снимет, потому что это не модно.
|
|||
3
TheRoofIsOn Fire
17.12.21
✎
20:24
|
100% гарантия, что там все будет актуальное это сходить на очный курс в 1С. Если учится очно времени нет, то нужно купить оффлайн курс в 1С там с указанием партнерского кода вообще сущие копейки тыщи полторы. У Гилева - дорого, но качественно. Но может быть не актуально. Я так с последними двумя прокололся. Взял подготовка к спецу по доработке торговых решений, во первых читает не Гилев, а какой то мутный хрен, а во вторых там все не актуальное и ни на одной современной конфигурации пример не завелся без танцев с гуглом. Второй раз попал с оперативным учетом в erp, он у него года 3 как не актуальный, но его менеджеры бьют пяткой в грудь, что все актуально, что не может не расстраивать. Если бы я покупал за свои деньги, то очень бы расстроился, но дареному коню в зубы не смотрят и так сойдет.
|
|||
5
skupidom
17.12.21
✎
21:06
|
я запутался именно в определении формулы расчета
|
|||
6
skupidom
17.12.21
✎
21:08
|
// регистр ОсновныеНачисления
Движения.ОсновныеНачисления.Записывать = Истина; Для Каждого ТекСтрокаОсновныеНачисления Из ОсновныеНачисления Цикл Движение = Движения.ОсновныеНачисления.Добавить(); Движение.Сторно = Ложь; Движение.ВидРасчета = ТекСтрокаОсновныеНачисления.ВидРасчета; Движение.ПериодДействияНачало = ТекСтрокаОсновныеНачисления.ДатаНачала; Движение.ПериодДействияКонец = КонецДня(ТекСтрокаОсновныеНачисления.ДатаОкончания); Движение.ПериодРегистрации = Дата; Движение.Сотрудник = ТекСтрокаОсновныеНачисления.Сотрудник; Движение.Подразделение = ТекСтрокаОсновныеНачисления.Подразделение; Движение.График = ТекСтрокаОсновныеНачисления.График; //Движение.Размер = ТекСтрокаОсновныеНачисления.Размер; КонецЦикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // РАСЧЕТ ПО ОКЛАДУ Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОсновныеНачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки, | ФизическиеЛица.НачальноеЗначениеОклада КАК НачальноеЗначениеОклада, | ОсновныеНачисленияДанныеГрафика.ОпозданиеПериодДействия КАК ОпозданиеПериодДействия, | ОсновныеНачисленияДанныеГрафика.ОпозданиеФактическийПериодДействия КАК ОпозданиеФактическийПериодДействия |ИЗ | РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(Регистратор = &Регистратор) КАК ОсновныеНачисленияДанныеГрафика | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО ОсновныеНачисленияДанныеГрафика.Сотрудник = ФизическиеЛица.Ссылка" "ВЫБРАТЬ | ОсновныеНачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки, | ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия, 0) КАК Отработано |ИЗ | РегистрРасчета.ОсновныеНачисления.ДанныеГрафика( | Регистратор = &Регистратор | И ВидРасчета = &ВидРасчета) КАК ОсновныеНачисленияДанныеГрафика"; Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисления.Оклад); Запрос.УстановитьПараметр("Регистратор",Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДляОклада = РезультатЗапроса.Выбрать(); Для каждого СтрокаНабора Из Движения.ОсновныеНачисления Цикл Если СтрокаНабора.ВидРасчета <> ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда Продолжить; КонецЕсли; ВыборкаДляОклада.Сбросить(); ВыборкаДляОклада.НайтиСледующий(СтрокаНабора.НомерСтроки,"НомерСтроки"); СтрокаНабора.Результат = СтрокаНабора.Размер * ВыборкаДляОклада.Отработано; СтрокаНабора.Факт = ВыборкаДляОклада.Отработано; КонецЦикла; // РАСЧЕТ ШТРАФА Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОсновныеНачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки, | ОсновныеНачисленияДанныеГрафика.ОпозданиеФактическийПериодДействия КАК Невыходы, | ОсновныеНачисленияДанныеГрафика.Сотрудник КАК Сотрудник, | ОсновныеНачисленияДанныеГрафика.Подразделение КАК Подразделение |ПОМЕСТИТЬ ДанныеГрафика |ИЗ | РегистрРасчета.ОсновныеНачисления.ДанныеГрафика( | Регистратор = &Регистратор | И ВидРасчета = &ВидРасчета | И Подразделение = &Подразделение | И ПериодДействияНачало <= &Дата <= ПериодДействияКонец) КАК ОсновныеНачисленияДанныеГрафика | |ИНДЕКСИРОВАТЬ ПО | Сотрудник, | Подразделение |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДанныеГрафика.НомерСтроки КАК НомерСтроки, | ДанныеГрафика.Невыходы КАК Невыходы, | ЕСТЬNULL(СтавкиШтрафов.Ставка, 0) КАК СтавкаШтрафа |ИЗ | ДанныеГрафика КАК ДанныеГрафика | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтавкиШтрафов КАК СтавкиШтрафов | ПО ДанныеГрафика.Подразделение = СтавкиШтрафов.Подразделение"; Запрос.УстановитьПараметр("Регистратор",Ссылка); Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисления.Штраф); Запрос.УстановитьПараметр("Подразделение",Подразделение); Запрос.УстановитьПараметр("Дата",Дата); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДляШтрафа = РезультатЗапроса.Выбрать(); Для каждого СтрокаНабора Из Движения.ОсновныеНачисления Цикл Если СтрокаНабора.ВидРасчета <> ПланыВидовРасчета.ОсновныеНачисления.Штраф Тогда Продолжить; КонецЕсли; ВыборкаДляШтрафа.Сбросить(); ВыборкаДляШтрафа.НайтиСледующий(СтрокаНабора.НомерСтроки,"НомерСтроки"); СтрокаНабора.Результат = ВыборкаДляШтрафа.СтавкаШтрафа * ВыборкаДляШтрафа.Невыходы; СтрокаНабора.Факт = ВыборкаДляШтрафа.Невыходы; СтрокаНабора.Размер = ВыборкаДляШтрафа.СтавкаШтрафа; КонецЦикла; |
|||
7
skupidom
17.12.21
✎
21:08
|
это в модуле начисления зарплаты
|
|||
8
skupidom
17.12.21
✎
21:09
|
условие задачи:
Начисление зарплаты сотрудникам предприятия осуществляется ежемесячно с использованием метода отклонений. Каждый сотрудник может работать одновременно в нескольких подразделениях компании, то есть совместительство допускается. Все сотрудники работают по графику работы, установленному для каждого подразделения отдельно. Сотрудники предприятия получают оплату по окладу пропорционально отработанному времени в часах. Часовая ставка рассчитывается как начальное значение оклада, деленное на количество рабочих часов в том же периоде, что и фактически отработанные часы. Первоначальное значение оклада указывается для каждого сотрудника отдельно независимо от того в каком подразделении он работает. Оно может периодически изменяться, но не чаще, чем один раз в день. В информационной базе не надо хранить историю его изменения. Если сотрудник опоздал на работу, то за каждые целые 30 минут опоздания в течение одного дня начисляется штраф. Например, величина штрафа 100 руб. Сотрудник 01.10.2015 опоздал на 40 минут, тогда сумма штрафа равна 100. Если он опоздал на 20 минут, тогда сумма штрафа равна 0. Если он опоздал на 2 часа, тогда сумма штрафа равна 400. И так каждый день, когда есть опоздания. Величина штрафа указывается для каждого подразделения отдельно. Оно может изменяться не чаще, чем один раз в день, но берется на начало расчетного периода. В информационной базе необходимо хранить историю его изменения. Механизм перерасчетов в рамках данной задачи использовать не надо. Ввод всех начислений происходит документом «Начисление зарплаты». Документ в расчетном периоде может быть один (сразу для всех видов расчета), а может быть несколько (по одному для каждого отдельного вида расчета). Считать, что все данные вводятся только в пределах одного месяца, например, можно указать начисление оклада с 10.01 по 31.01, а запись оклад: с 10.01 по 03.02 вводить нельзя. В одном документе могут быть данные только за текущий расчетный период. |
|||
9
skupidom
17.12.21
✎
21:09
|
вокруг и около решения ..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |