|  13.05.2008, 08:28 | #1 | 
| Участник | 
			
			Для Вычисления Премии мес %, производят шаги: Код: Базовая Сумма Сум=СТАВКА% КАЛ ЧАС КОРР = СУМ СУМ = НАЛ\ОБЛ СУМ = СУМ Х КОРР т.е. вся проблема в Базовой Сумме... Как мне взять Базовую сумму с прошлого месяца??? в функции BaseAmountRu в 14804 кодеюните, так и не разобрался.... | 
|  | 
|  13.05.2008, 16:43 | #2 | 
| Участник | Цитата: 
		
			Сообщение от by_HT
			   Для Вычисления Премии мес %, производят шаги: Код: Базовая Сумма Сум=СТАВКА% КАЛ ЧАС КОРР = СУМ СУМ = НАЛ\ОБЛ СУМ = СУМ Х КОРР т.е. вся проблема в Базовой Сумме... Как мне взять Базовую сумму с прошлого месяца??? в функции BaseAmountRu в 14804 кодеюните, так и не разобрался.... - взять и отнять от текущей даты учетный период; - получить исходные данные для расчета и расчитать? | 
|  | 
|  14.05.2008, 10:27 | #3 | 
| Участник | 
			
			такое ощущение что я ищу иголку в стоге сена!
		 | 
|  | 
|  14.05.2008, 14:41 | #4 | 
| Участник | 
			
			Не могу найти, где происходит расчет поля Payroll Amount, на форме "Журнал Расчета Зарплаты" Form 14839. Перерыл отчет - Payroll Calculation, кодеюниты - Payroll Journal Management, Payroll - Calculation, Payroll Transfer Fields | 
|  | 
|  22.05.2008, 09:43 | #5 | 
| Участник | 
			
			В кратце.... 1) Создаем Элемент, присваеваем ему шаги.... 2) в 14804 кодеюните создаем шаг и пишим: Код: "Taxable Amount" := "Taxable Amount" + BaseAmountRUHT(Rec,MethodStep."Basic Line No."); Код: // BaseAmountRUHT
Base := 0;
LineCounter := 0;
WITH RecPayLedEntry DO BEGIN
RESET;
  SETCURRENTKEY(
	"Employee No.","Posting Date","Document Type","Document No.","Ending Payment Date");
SETRANGE("Batch Name",PayrollJnlLine."Batch Name");
SETRANGE("Employee No.",PayrollJnlLine."Employee No.");
SETRANGE("Document Type",PayrollJnlLine."Document Type");
SETFILTER("Starting Account Date",'=%1',CALCDATE('<-1M>',PayrollJnlLine."Starting Date Account Period"));
PayrollBaseAmount.SETRANGE("Element Code",PayrollJnlLine."Element Code");
PayrollBaseAmount.FIND('-');
REPEAT
  LineCounter := LineCounter + 1;
  // Skip blank entries and entries we don't care about
  IF ((PayrollBaseAmount."Element Code Filter" <> '') OR
	  (PayrollBaseAmount."Type Filter" <> '') OR
	  (PayrollBaseAmount."Name Filter" <> '') OR
	  (PayrollBaseAmount."Administrate Type Filter" <> '') OR
	  (PayrollBaseAmount."Region Filter" <> '') OR
	  (PayrollBaseAmount."Local Filter" <> '') OR
	  (PayrollBaseAmount."Gen. Post Type Filter" <> '')) AND
	 ((LineToUse = 0) OR
	  (LineToUse = LineCounter))
  THEN
	WITH RecPayLedEntry DO BEGIN
	  // Set up the filters according to what is in the BaseAmount record
	  IF PayrollBaseAmount."Element Code Filter" = '' THEN
		SETRANGE("Element Code")
	  ELSE
		SETFILTER("Element Code",PayrollBaseAmount."Element Code Filter");
	 IF PayrollBaseAmount."Type Filter" = '' THEN
		SETRANGE("Element Type")
	  ELSE BEGIN
		SETCURRENTKEY(
		"Employee No.","Posting Date","Document Type","Document No.","Ending Payment Date");
		SETFILTER("Element Type",PayrollBaseAmount."Type Filter");
	  END;
	  IF PayrollBaseAmount."Name Filter" = '' THEN
		SETRANGE("Element Name")
	  ELSE
		SETFILTER("Element Name",PayrollBaseAmount."Name Filter");
	  IF PayrollBaseAmount."Administrate Type Filter" = '' THEN
		SETRANGE("Administrative Type")
	  ELSE BEGIN
		SETCURRENTKEY(
"Administrative Type",Region,"Local","Element Type","Posting Date","Ending Payment Date");
		SETFILTER("Administrative Type",PayrollBaseAmount."Administrate Type Filter");
	  END;
	  IF PayrollBaseAmount."Region Filter" = '' THEN
		SETRANGE(Region)
	  ELSE
		SETFILTER(Region,PayrollBaseAmount."Region Filter");
	  IF PayrollBaseAmount."Local Filter" = '' THEN
		SETRANGE("Local")
	  ELSE
		SETFILTER("Local",PayrollBaseAmount."Local Filter");
	  IF PayrollBaseAmount."Gen. Post Type Filter" = '' THEN
		SETRANGE("Gen. Post Type")
	  ELSE
		SETFILTER("Gen. Post Type",PayrollBaseAmount."Gen. Post Type Filter");
	  IF FIND('-') THEN
	  REPEAT BEGIN
	  MESSAGE('Am =%1',Amount);
	  Base := Base + Amount;
	  END;
	  UNTIL NEXT = 0;
	END;
UNTIL PayrollBaseAmount.NEXT = 0;
END;
EXIT(Base); | 
|  |