Где исправить количество дней в квартале с 91 на 92?

1. user1029657 04.12.18 11:25 Сейчас в теме
Функция СведенияОВнешнейОбработке() Экспорт
	
	РегистрационныеДанные = Новый Структура;
	
	РегистрационныеДанные.Вставить("БезопасныйРежим",Ложь);
	РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка");
	РегистрационныеДанные.Вставить("Наименование", "Пересчитать премию с вычетом неявок");
	РегистрационныеДанные.Вставить("Версия", "1.0");
	РегистрационныеДанные.Вставить("Информация", "Пересчитать премию с вычетом неявок");
	РегистрационныеДанные.Вставить("Назначение", РегистрационныеДанные.Наименование);
	
	ТЗКоманд = Новый ТаблицаЗначений;
	ТЗКоманд.Колонки.Добавить("Идентификатор");
	ТЗКоманд.Колонки.Добавить("Представление");
	ТЗКоманд.Колонки.Добавить("Модификатор");
	ТЗКоманд.Колонки.Добавить("ПоказыватьОповещение");
	ТЗКоманд.Колонки.Добавить("Использование");
	
	СтрокаКоманды = тзКоманд.Добавить();
	СтрокаКоманды.Идентификатор        = Новый УникальныйИдентификатор;
	СтрокаКоманды.Представление        = РегистрационныеДанные.Наименование;
	СтрокаКоманды.ПоказыватьОповещение = Истина;
	СтрокаКоманды.Использование        = "ОткрытиеФормы";
 	
	РегистрационныеДанные.Вставить("Команды", ТЗКоманд);  	
	
	Возврат РегистрационныеДанные;
	
КонецФункции

функция получитьКоэф(график,конКв)
	запрос = новый запрос;
	запрос.Текст = 
	"ВЫБРАТЬ
	|	СУММА(ГрафикиРаботыПоВидамВремени.ДополнительноеЗначение) КАК ДополнительноеЗначение,
	|	СУММА(ГрафикиРаботыПоВидамВремени.ДополнительноеЗначениеНорма) КАК ДополнительноеЗначениеНорма
	|ИЗ
	|	РегистрСведений.ГрафикиРаботыПоВидамВремени КАК ГрафикиРаботыПоВидамВремени
	|ГДЕ
	|	ГрафикиРаботыПоВидамВремени.ГрафикРаботы = &ГрафикРаботы
	|	И ГрафикиРаботыПоВидамВремени.Дата МЕЖДУ &НачПериода И &КонПериода
	|	И ГрафикиРаботыПоВидамВремени.ВидУчетаВремени = &ВидУчетаВремени"
	;
	запрос.УстановитьПараметр("ГрафикРаботы", график);
	запрос.УстановитьПараметр("НачПериода", началоКвартала(конКв));
	запрос.УстановитьПараметр("КонПериода",конКв);
	запрос.УстановитьПараметр("ВидУчетаВремени", Справочники.ВидыИспользованияРабочегоВремени.РабочееВремя);
	
	рез = запрос.Выполнить().Выбрать();
	если рез.Следующий() тогда
		возврат ?(рез.ДополнительноеЗначениеНорма = 0,1, Окр(рез.ДополнительноеЗначение/рез.ДополнительноеЗначениеНорма,1) );
	конецЕсли;
	
конецФункции	


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

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

	стрРег = регистрыСведений.ГрафикРаботыСотрудников.ПолучитьПоследнее(?( значениеЗаполнено(ТекДатаУвольнения),ТекДатаУвольнения - 1,конКв), новый структура("Сотрудник",сотрудник));
	
	СтрПоиск.Удалить("ТекущаяОрганизация");
	ТекРег = регистрыСведений.КадроваяИсторияСотрудников.Получить(КонКв,СтрПоиск);
	КоличествоСтавок = ТекРег.КоличествоСтавок;
	КоличествоСтавок = ?(ЗначениеЗаполнено(КоличествоСтавок), КоличествоСтавок, 1);
	
	коэфГрафика  = 1;
	если не стрРег.Количество() = 0 тогда
		график = стрРег.ГрафикРаботы;
		ставка = 1;
		если график.наименование = "Суммированный учет" или КоличествоСтавок<>1 и график.наименование = "Основной график" тогда  /// у них оклад стоит полный, оплата регулируется отработанными часами по табелю
			ставка = КоличествоСтавок;
		конецЕсли;	
		коэфГрафика = получитьКоэф(график, конКв) * ставка;
	конецЕсли;	
	
	если рез.Следующий() тогда
		//сообщить(""+сотрудник+"  "+рез.показатель1+ "  "+ коэфГрафика );
		возврат рез.показатель1*коэфГрафика;
	иначе
	конецЕсли;	
	
	
	
КонецФункции


процедура Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта) экспорт
	//ЕБТ
	//для каждого стр из объект.ДополнительныеНачисления цикл
	начКв = началоКвартала(Объект.ДатаНачалаБазовогоПериода) ;
	конКв = конецКвартала(Объект.ДатаОкончанияБазовогоПериода) ;
	днейКв = Цел((конКв-начКв) /(60*60*24))+1;
	для каждого стр из объект.Начисления цикл
	//----
		//если стр.ФиксРасчет тогда
		//	продолжить;
		//конецЕсли;	
		
		//начКв = началоКвартала(стр.ДатаНачала) ;
		//конКв = конецКвартала(стр.ДатаОкончания) ;
		//днейКв = Цел((конКв-начКв) /(60*60*24))+1;
		
		//ЕБТ
		стр.Результат = получитьОклад(стр.сотрудник, конКв);
		//стр.показатель1 = получитьОклад(стр.сотрудник, конКв);
		//----
	
		если Объект.ДатаНачалаБазовогоПериода <> начКв или конецДня(Объект.ДатаОкончанияБазовогоПериода) <> конКв или стр.результат = 0 тогда
			дней =Цел((конецДня(Объект.ДатаОкончанияБазовогоПериода) - Объект.ДатаНачалаБазовогоПериода) /(60*60*24))+1;
		Иначе
			дней=днейКв;
		КонецЕсли;
		//если стр.датаНачала <> начКв или конецДня(стр.ДатаОкончания) <> конКв или стр.результат = 0 тогда
		//	дней =Цел((конецДня(стр.ДатаОкончания) - стр.ДатаНачала) /(60*60*24))+1;
		//Иначе
		//	дней=днейКв;
		//КонецЕсли;
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА СостояниеРаботниковОрганизаций.Период < &НачалоКвартала
		|			ТОГДА &НачалоКвартала
		|		ИНАЧЕ СостояниеРаботниковОрганизаций.Период
		|	КОНЕЦ КАК НачалоНеявки,
		|	СостояниеРаботниковОрганизаций.Сотрудник КАК Сотрудник,
		|	ВЫБОР
		|		КОГДА СостояниеРаботниковОрганизаций.ДействуетДо > &КонецКвартала
		|			ТОГДА &КонецКвартала
		|		ИНАЧЕ ДОБАВИТЬКДАТЕ(СостояниеРаботниковОрганизаций.ДействуетДо, ДЕНЬ, -1)
		|	КОНЕЦ КАК КонецНеявки,
		|	СостояниеРаботниковОрганизаций.Состояние КАК Состояние
		|ПОМЕСТИТЬ Неявки
		|ИЗ
		|	РегистрСведений.СостоянияСотрудников КАК СостояниеРаботниковОрганизаций
		|ГДЕ
		|	(СостояниеРаботниковОрганизаций.ДействуетДо >= &НачалоКвартала
		|				И СостояниеРаботниковОрганизаций.ДействуетДо <= &КонецКвартала
		|			ИЛИ СостояниеРаботниковОрганизаций.Период >= &НачалоКвартала
		|				И СостояниеРаботниковОрганизаций.Период <= &КонецКвартала
		|			ИЛИ СостояниеРаботниковОрганизаций.Период <= &НачалоКвартала
		|				И СостояниеРаботниковОрганизаций.ДействуетДо >= &КонецКвартала)
		|	И СостояниеРаботниковОрганизаций.Сотрудник = &Сотрудник
		|	И СостояниеРаботниковОрганизаций.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Болезнь)
		|	И СостояниеРаботниковОрганизаций.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Работа)
		|	И СостояниеРаботниковОрганизаций.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Командировка)
		|	И СостояниеРаботниковОрганизаций.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтсутствиеПоНевыясненнымПричинам)
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА СостояниеРаботниковОрганизацийБолеет.Период < &НачалоКвартала
		|			ТОГДА &НачалоКвартала
		|		ИНАЧЕ СостояниеРаботниковОрганизацийБолеет.Период
		|	КОНЕЦ,
		|	СостояниеРаботниковОрганизацийБолеет.Сотрудник,
		|	МИНИМУМ(ВЫБОР
		|			КОГДА ДОБАВИТЬКДАТЕ(СостояниеРаботниковОрганизаций.Период, ДЕНЬ, -1) > &КонецКвартала
		|					ИЛИ ЕСТЬNULL(СостояниеРаботниковОрганизаций.Период, 0) = 0
		|				ТОГДА &КонецКвартала
		|			ИНАЧЕ ДОБАВИТЬКДАТЕ(СостояниеРаботниковОрганизаций.Период, ДЕНЬ, -1)
		|		КОНЕЦ),
		|	СостояниеРаботниковОрганизацийБолеет.Состояние
		|ИЗ
		|	РегистрСведений.СостоянияСотрудников КАК СостояниеРаботниковОрганизацийБолеет
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияСотрудников КАК СостояниеРаботниковОрганизаций
		|		ПО СостояниеРаботниковОрганизацийБолеет.Сотрудник = СостояниеРаботниковОрганизаций.Сотрудник
		|			И (ВЫБОР
		|				КОГДА СостояниеРаботниковОрганизацийБолеет.Период < &НачалоКвартала
		|					ТОГДА &НачалоКвартала
		|				ИНАЧЕ СостояниеРаботниковОрганизацийБолеет.Период
		|			КОНЕЦ < ВЫБОР
		|				КОГДА ДОБАВИТЬКДАТЕ(СостояниеРаботниковОрганизаций.Период, ДЕНЬ, -1) > &КонецКвартала
		|					ТОГДА &КонецКвартала
		|				ИНАЧЕ ДОБАВИТЬКДАТЕ(СостояниеРаботниковОрганизаций.Период, ДЕНЬ, -1)
		|			КОНЕЦ)
		|			И (СостояниеРаботниковОрганизаций.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Работа))
		|			И (СостояниеРаботниковОрганизаций.Период >= &НачалоКвартала
		|					И СостояниеРаботниковОрганизаций.Период <= &КонецКвартала
		|				ИЛИ СостояниеРаботниковОрганизацийБолеет.Период >= &НачалоКвартала
		|					И СостояниеРаботниковОрганизацийБолеет.Период <= &КонецКвартала
		|				ИЛИ СостояниеРаботниковОрганизацийБолеет.Период <= &НачалоКвартала
		|					И СостояниеРаботниковОрганизаций.Период >= &КонецКвартала)
		|ГДЕ
		|	СостояниеРаботниковОрганизацийБолеет.Сотрудник = &Сотрудник
		|	И СостояниеРаботниковОрганизацийБолеет.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Болезнь)
		|	И СостояниеРаботниковОрганизацийБолеет.Период <= &КонецКвартала
		|	И НЕ(ЕСТЬNULL(СостояниеРаботниковОрганизаций.Период, 0) = 0
		|				И СостояниеРаботниковОрганизацийБолеет.Период < &НачалоКвартала)
		|
		|СГРУППИРОВАТЬ ПО
		|	ВЫБОР
		|		КОГДА СостояниеРаботниковОрганизацийБолеет.Период < &НачалоКвартала
		|			ТОГДА &НачалоКвартала
		|		ИНАЧЕ СостояниеРаботниковОрганизацийБолеет.Период
		|	КОНЕЦ,
		|	СостояниеРаботниковОрганизацийБолеет.Сотрудник,
		|	СостояниеРаботниковОрганизацийБолеет.Состояние
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА СостояниеРаботниковОрганизаций.Период < &НачалоКвартала
		|			ТОГДА &НачалоКвартала
		|		ИНАЧЕ СостояниеРаботниковОрганизаций.Период
		|	КОНЕЦ,
		|	СостояниеРаботниковОрганизаций.Сотрудник,
		|	&КонецКвартала,
		|	СостояниеРаботниковОрганизаций.Состояние
		|ИЗ
		|	РегистрСведений.СостоянияСотрудников КАК СостояниеРаботниковОрганизаций
		|ГДЕ
		|	СостояниеРаботниковОрганизаций.Период <= &КонецКвартала
		|	И СостояниеРаботниковОрганизаций.Сотрудник = &Сотрудник
		|	И СостояниеРаботниковОрганизаций.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтсутствиеПоНевыясненнымПричинам)
		|	И СостояниеРаботниковОрганизаций.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	Неявки.Сотрудник КАК Сотрудник,
		|	Неявки.НачалоНеявки КАК НачалоНеявки,
		|	Неявки.КонецНеявки КАК КонецНеявки,
		|	Неявки.Состояние КАК Состояние,
		|	РАЗНОСТЬДАТ(Неявки.НачалоНеявки, Неявки.КонецНеявки, ДЕНЬ) + 1 КАК КоличествоДнейНеявок
		|ПОМЕСТИТЬ ТаблКолНеявок
		|ИЗ
		|	Неявки КАК Неявки
		|ГДЕ
		|	ЕСТЬNULL(Неявки.Сотрудник, 0) <> 0
		|	И Неявки.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускОсновной)
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	Неявки.Сотрудник,
		|	Неявки.НачалоНеявки,
		|	Неявки.КонецНеявки,
		|	Неявки.Состояние,
		|	СУММА(ВЫБОР
		|			КОГДА РегламентированныйПроизводственныйКалендарь.ВидДня <> ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Праздник)
		|				ТОГДА 1
		|			ИНАЧЕ 0
		|		КОНЕЦ)
		|ИЗ
		|	РегистрСведений.ДанныеПроизводственногоКалендаря КАК РегламентированныйПроизводственныйКалендарь
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Неявки КАК Неявки
		|		ПО РегламентированныйПроизводственныйКалендарь.Дата >= Неявки.НачалоНеявки
		|			И РегламентированныйПроизводственныйКалендарь.Дата <= Неявки.КонецНеявки
		|ГДЕ
		|	ЕСТЬNULL(Неявки.Сотрудник, 0) <> 0
		|	И Неявки.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускОсновной)
		|
		|СГРУППИРОВАТЬ ПО
		|	Неявки.Сотрудник,
		|	Неявки.НачалоНеявки,
		|	Неявки.КонецНеявки,
		|	Неявки.Состояние
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	ТаблКолНеявок.Сотрудник КАК Сотрудник,
		|	СУММА(ТаблКолНеявок.КоличествоДнейНеявок) КАК КоличествоНеявок
		|ИЗ
		|	ТаблКолНеявок КАК ТаблКолНеявок
		|
		|СГРУППИРОВАТЬ ПО
		|	ТаблКолНеявок.Сотрудник";
		
		//Запрос.УстановитьПараметр("НачалоКвартала", стр.ДатаНачала);
		//Запрос.УстановитьПараметр("КонецКвартала", стр.ДатаОкончания);
		Запрос.УстановитьПараметр("НачалоКвартала", Объект.ДатаНачалаБазовогоПериода);
		Запрос.УстановитьПараметр("КонецКвартала", Объект.ДатаОкончанияБазовогоПериода);
		Запрос.УстановитьПараметр("Сотрудник", стр.Сотрудник);
		
		Результат = Запрос.Выполнить();
		
		ВыборкаДетальныеЗаписи = Результат.Выбрать();
		
		ВыборкаДетальныеЗаписи.Следующий();
		КоличествоНеявок=ВыборкаДетальныеЗаписи.КоличествоНеявок;
		Если НЕ ЗначениеЗаполнено(КоличествоНеявок) Тогда
			КоличествоНеявок=0;
		КонецЕсли;
		
		//ЕБТ
		стр.результат = стр.Результат / днейКв * ?( дней<КоличествоНеявок,0,(дней-КоличествоНеявок));
		//стр.результат = стр.показатель1 / днейКв * ?( дней<КоличествоНеявок,0,(дней-КоличествоНеявок));
		//----
		
	конецЦикла;
	
	Объект.Записать(РежимЗаписиДокумента.Запись);
	Объект.Записать(РежимЗаписиДокумента.Проведение);
конецПроцедуры
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. harvester_sorrow 24 04.12.18 12:08 Сейчас в теме
Как насчет убрать +1 ?
дней =Цел((конецДня(Объект.ДатаОкончанияБазовогоПериода) - Объект.ДатаНачалаБазовогоПериода) /(60*60*24))+1;
3. harvester_sorrow 24 04.12.18 12:10 Сейчас в теме
А так собственно вопрос
В какой переменной Вам необходимо получить 92 дня?
4. Bene_Valete 188 04.12.18 12:13 Сейчас в теме
А для чего Вам нужно получать именно такое количество, т.е. отличное от получаемого?
5. YannikAlx 43 04.12.18 13:16 Сейчас в теме
(4) Да , Очень хотелось бы узнать причину потребности!
А то нафантазируют... а задача решается по другому и проще...
6. user1029657 04.12.18 13:34 Сейчас в теме
причина данная обработка рассчитывает квартальную премию,и бухгалтерия утверждает что обработка отрабатывает не верно, и надо указать 92 дня в квартале место 91,хотя как я понимаю количество дней берется в зависимости от указанного периода
8. Bene_Valete 188 05.12.18 03:19 Сейчас в теме
(6) Постарайтесь разобраться самостоятельно, действительно ли типовая конфигурация считает неправильно (а это также возможно благодаря ошибкам релиза), либо считает правильно, но у вас какой-то особенный учет, где теоретически, действительно нужно прибавлять один день к кварталу, либо третий вариант - бухгалтерия втирает вам какую-то дичь про 92 дня. Исходя из этого Вам уже нужно действовать, потому как если вы просто добавите один день в функционале, то возможно где-то он вылезет лишним, никто этого не заметит, людям уйдет лишняя оплата, а крайним останетесь Вы..
7. YannikAlx 43 04.12.18 13:43 Сейчас в теме
Ну в каждом квартале разное количество дней причем разное по годам....
Если обработка неверно считает рабочие дни , то нужно просто заставить ее считать правильно, а не заменить 91 вместо 92...

А в следующем квартале она снова накосячит?
Тогда просто выведите на форму реквизит РабочихДнейВКвартале и подставляйте куда надо....
Bene_Valete; +1 Ответить
9. user1029657 05.12.18 08:15 Сейчас в теме
Да проблема в том что бухгалтерия реально не понимает что хочет,а расчет квартальной премии у нас не стандартный поэтому и пользуюсь этой обработкой,расчет происходит в зависимости от оклада с учетом выхода на рабочее место(то есть должны вычитаться дни отпуска,больничных,и тд)
10. Stref75 06.12.18 11:39 Сейчас в теме
(9) была подобная задача. у нас часть начислений рассчитывается в зависимости от отработанного времени. Через стандартные показатели ВремяВДнях, ВремяВЧасах и т.п. решить не получилось. Отрабатывали не так как хотелось бы.
Задачу решили следующим образом: Ввели показатель - КоэффициентОтработанногоВремени, который заполняется в документе "Данные для расчета зарплаты" и участвует в начислениях месяца.
Для заполнения сделал в расширении кнопку, которая автоматом все рассчитывает, но если расчетчик не согласен, он может вручную изменить значение показателя.
Если интересует, кодом поделюсь.
11. user1029657 06.12.18 14:03 Сейчас в теме
stref 75 буду благодарен если поделитесь,почта ,mps7017@yandex.ru
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот