|
Получение базы по периоду регистрации при зависимости от базы по периоду действ. | ☑ | ||
---|---|---|---|---|
0
maz
17.03.14
✎
14:04
|
Собственно вопрос в заголовке темы:)
Кто-то получал? Разрезами ничего у меня не выходит. Сдается мне что можно только топорным способом по реальным таблицам... В общем, кто как делал, поделитесь? :) |
|||
1
vicof
17.03.14
✎
14:05
|
Галка период действия является периодом регистрации не?
|
|||
2
maz
17.03.14
✎
14:10
|
может и да, где такая галка? ))))
|
|||
3
vicof
17.03.14
✎
14:11
|
в предопределенном виде расчета
|
|||
4
maz
17.03.14
✎
14:15
|
хехе, намёк понял, попробую
За наводку спасибо |
|||
5
maz
17.03.14
✎
14:51
|
Пока не вышло. Если галку убрать, то почему-то вообще ругается что база не определена...
Смотрю дальше |
|||
6
maz
17.03.14
✎
14:53
|
ой. куда все делись-то
|
|||
7
maz
17.03.14
✎
14:53
|
ап))
|
|||
8
Brook
17.03.14
✎
14:57
|
приведи пример
|
|||
9
maz
17.03.14
✎
14:59
|
Основное начисление по формуле считает процент от расчетной базы, а расчетная база должна браться по периоду регистрации. Т.е. например оклад, и отпуск (весь, в т.ч. переходящий на след месяц). Соответственно в следующем месяце отпуск уже браться не должен
|
|||
10
maz
17.03.14
✎
15:02
|
как подметил vicof, в предопределенном элементе ПВР есть флаг "период действия является базовым периодом". Соответственно если создать предопр ВР и включить этот флаг, то считается по периоду действия, т.е. например в базу попадает оклад, и часть переходящего отпуска за этот месяц.
Если же галку убрать, то в рассчетную базу почему-то не попадает вообще ничего. "Не определены базовые начисления " |
|||
11
maz
17.03.14
✎
15:06
|
Здается мне, что для предопределенного ВР, показатель схем мотивации РассчетнаяБаза по формуле не рассчитывается.
Вот так:( |
|||
12
maz
17.03.14
✎
15:08
|
Ну точней рассчитывается только если галка включена
|
|||
13
maz
17.03.14
✎
15:14
|
хотя не понятно.. Один и тот же запрос, водном случае выдает результат (по периоду действия), а в другом выдает пустоту
|
|||
14
maz
17.03.14
✎
15:19
|
т.е. если резюмировать:
1. В предопределенном ВР, включен флаг "период действия является базовым периодом". Прописана формула расчета "РасчетнаяБаза * Процент" Запрос к вирт таблице с базой выдает результат только по периоду действия (отсекая переходящие отпуска на другой месяц) 2. В предопределенном ВР, снят флаг "период действия является базовым периодом". Всё остальное тоже самое. Запрос ничего не выфдает |
|||
15
maz
17.03.14
✎
15:35
|
если запрос свести к минимуму, то самай главная его часть будет выглядеть вот так:
ВЫБРАТЬ База1.ВидРасчета, База1.РезультатБаза КАК РезультатБаза, База1.Регистратор КАК Регистратор, База1.НомерСтроки КАК НомерСтроки ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.БазаОсновныеНачисленияРаботниковОрганизаций( &парамИзмеренияОсновного, &парамИзмеренияБазового, &парамРазрезы, ВидРасчета.КатегорияРасчета = &парамКатегорияНачисления И Регистратор = &парамРегистратор И Авторасчет) КАК База1 ГДЕ (НЕ База1.Сторно ИЛИ База1.ПериодРегистрацииРазрез < База1.ПериодРегистрации) |
|||
16
maz
17.03.14
✎
15:40
|
Вопрос сводится теперь только к тому, как флаг "период действия является базовым периодом" поставленный в конфигураторе для предопределенного ВР влияет на результат данного запроса:)
|
|||
17
maz
17.03.14
✎
15:41
|
И теперь вопрос сводится только к тому, как флаг "период действия является базовым периодом", установленный в конфигураторе для предопределенного ВР влияет на результат приведенного запроса:)
|
|||
18
maz
17.03.14
✎
15:45
|
параметры запроса:
&парамИзмеренияОсновного = &парамИзмеренияБазового это массив, состоит из одного элемента - строка "Сотрудник" &парамРазрезы это тоже массив, состоит из одного элемента - строка "ПериодРегистрации" &парамКатегорияНачисления - категория начисления текущего ВР (допустим категория первого уровня) ну и сам регистратор |
|||
19
maz
17.03.14
✎
16:25
|
ну и хрень. Неужели никак нельзя нужную базу получить?
|
|||
20
maz
17.03.14
✎
16:51
|
Думается мне, что нужно в таком случае (ВР предопределенный и флаг "период действия является базовым периодом" снят) определять максимально возможный базовый период действия, и прописывать его при добавлении записи в движения.
Пожалуй начну лопатить в этом направлени |
|||
21
maz
18.03.14
✎
11:58
|
Да. Так начинает получаться, что-то похожее.
Но плюс к этому, необходимо так же учесть будет, что бы в "следующем" месяце повторно не учитывался переходящий отпуск. Т.е. в запросе поставить условие, что бы в базу попадал только актуальный ПериодРегистрацииРазрез. Ладно. Всем спасибо. Задача наконец сформулировалась, теперь дело за малым, реализовать это всё как-то:) |
|||
22
maz
19.03.14
✎
15:25
|
Да. Таким образом получилось.
1. Создаю предопределенный ВР "НашВР" в основных начислениях с отключенной галкой "период действия является базовым периодом". 2. В модуле документа НачислениеЗП (процедура СформироватьЗапросПоНачисления() ) добавляю запрос, который формирует данные во временную таблицу по всем начислениям, входящим в базу "Нашего ВР", с фактическим периодом действия, превышающим текущий месяц начисления. Потом эту ВТ "встраиваю" в основной запрос по начислениям и из него же беру рассчитанные базовые периоды (с проверкой на "НашВР", что бы других случаев эот не касалось, т.к. там по умолчанию для базового периода пустые даты). Это нам даёт максимально возможный период действия, который будет писаться в базовый период записей регистра расчетов с "Нашим ВР". 3. И заключительный этап - отсечение возможных данных переходящих отпусков и прочего с прошлых периодов (т.к. они уже посчитаны в п.2) Это делаю в общем модуле ПроведениеРассчетовПереопределяемый в процедуре ПолучитьДанныеДляРасчета(). Там в ветке условий "Если НеобходимаБаза Тогда" формируется запрос (а точней их два, один для комментария другой без, так что править надо оба) по расчетной базе начислений. В нем добавляю условие, что бы исключал "НашВР" и объединяю с запросом, в котором наоборот, условие только для "НашВР" и главное условие что бы "ПериодРегистрацииРазрез = ПериодРегистрации" Всё. Работает как часики. Возможно немного замудреновато, но другого способа я не придумал. Если кто-нить делали ещё как-то - сообщите, было бы интересно. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |