Данный из таблицы

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


Вот вроде достает

СписокПоказателейОклад = Новый СписокЗначений;
		Попытка СписокПоказателейОклад.Добавить(Справочники.ПоказателиРасчетаЗарплаты.Оклад); Исключение КонецПопытки;
Запрос.УстановитьПараметр("СписокПоказателейОклад",СписокПоказателейОклад);

СписокПоказателейНадбавка = Новый СписокЗначений;
		Попытка СписокПоказателейНадбавка.Добавить(Справочники.ПоказателиРасчетаЗарплаты.ПроцентНадбавкиЗаВредность); Исключение КонецПопытки;
Запрос.УстановитьПараметр("СписокПоказателейНадбавка",СписокПоказателейНадбавка);
Запрос.Выполнить();

вот оклад находит и надбавку за вредность

Область.Параметры.СуммаНадбавки = ВыборкаЗапроса.СуммаНадбавки;

вот вывожу его

Подскажите пожалуйста как можно вывести стаж и качество примерно также. Пожалуйста только не надо унижать и если что-то не правильно то простите, новичок.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
6. Bene_Valete 190 06.12.18 08:14 Сейчас в теме
Можно воспользоваться стандартной функцией
// Вычисляет разность между двумя датами: в годах, месяцах, днях
Процедура ПолучитьСтажЗаПериод(Знач ДатаОкончанияПериода, Знач ДатаНачалаПериода, Лет=0, Месяцев=0, Дней=0) Экспорт 
	
	Если ДатаОкончанияПериода >= ДатаНачалаПериода Тогда
		
		Лет1		=	Год(ДатаОкончанияПериода);
		Месяцев1	=	Месяц(ДатаОкончанияПериода);
		
		Если НачалоДня(ДатаОкончанияПериода) <> НачалоДня(КонецМесяца(ДатаОкончанияПериода)) Тогда
			Дней1		=	День(ДатаОкончанияПериода);
		Иначе
			Дней1		=	30;//В каждом месяце ровно 30 дней
		КонецЕсли;	 
		
		Лет2		=	Год(ДатаНачалаПериода);
		Месяцев2	=	Месяц(ДатаНачалаПериода);
		Если НачалоДня(ДатаНачалаПериода) <> НачалоДня(КонецМесяца(ДатаНачалаПериода)) Тогда
			Дней2		=	День(ДатаНачалаПериода);
		Иначе
			Дней2		=	30;//В каждом месяце ровно 30 дней
		КонецЕсли;	 
		
		Лет		=	Лет1		-	Лет2;
		Месяцев	=	Месяцев1	-	Месяцев2;
		Дней	=	Дней1		-	Дней2 + 1;//1 день на увольнение
	Иначе
		Лет = 0; 
		Месяцев = 0;
		Дней = 0;
	КонецЕсли;	
КонецПроцедуры 
Показать


Либо использовать в своем запросе РегистрСведений.НакопленныеСтажиФизическихЛиц
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. Denis_CFO 49 06.12.18 07:10 Сейчас в теме
(1)
ВЫБРАТЬ РАЗЛИЧНЫЕ
	Т.Регистратор КАК Регистратор,
	Т.Период КАК Период,
	Т.НомерСтроки КАК НомерСтроки,
	Т.Активность КАК Активность,
	Т.Сотрудник КАК Сотрудник,
	Т.Организация КАК Организация,
	Т.ФизическоеЛицо КАК ФизическоеЛицо,
	Т.Показатель КАК Показатель,
	Т.ДокументОснование КАК ДокументОснование,
	Т.Значение КАК Значение,
	Т.ДействуетДо КАК ДействуетДо
ИЗ
	РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников КАК Т
ГДЕ
	Т.Регистратор = &Регистратор
Показать
2. Krey_ 05.12.18 17:30 Сейчас в теме
Простите тупой, оклад
Попытка СписокПоказателейНадбавка.Добавить(Справочники.ПоказателиРасчетаЗарплаты.НайтиПоНаименованию("За качество",Истина)); Исключение КонецПопытки;


А вот вывести стаж так и не могу
3. Bene_Valete 190 06.12.18 05:54 Сейчас в теме
А какая у вас конечная задача? Т.е. Вы пытаетесь получить в целом перечень надбавок сотрудника для какой-то цели, или необходимо их получить конкретно в разрезе документов кадровых переводов?
4. Krey_ 06.12.18 06:48 Сейчас в теме
(3)
Сейчас мне нужно вывести процент надбавки за стаж в печатной форме
7. Denis_CFO 49 06.12.18 08:24 Сейчас в теме
(4) у меня в результате выдает значения показателей. Или Вам нужно стаж в днях?
8. Krey_ 06.12.18 08:37 Сейчас в теме
(7)
Процент чтобы выводился
Прикрепленные файлы:
9. Krey_ 06.12.18 08:39 Сейчас в теме
(7)
ВЫБРАТЬ
	НакопленныеСтажиФизическихЛиц.РазмерМесяцев КАК РазмерМесяцев
ИЗ
	РегистрСведений.НакопленныеСтажиФизическихЛиц КАК НакопленныеСтажиФизическихЛиц
ГДЕ
	НакопленныеСтажиФизическихЛиц.ФизическоеЛицо = &ФизическоеЛицо
	И НакопленныеСтажиФизическихЛиц.ВидСтажа = &ВидСтажа



Вот месяцы вроде выводятся, но мне кажется что неправильно
6. Bene_Valete 190 06.12.18 08:14 Сейчас в теме
Можно воспользоваться стандартной функцией
// Вычисляет разность между двумя датами: в годах, месяцах, днях
Процедура ПолучитьСтажЗаПериод(Знач ДатаОкончанияПериода, Знач ДатаНачалаПериода, Лет=0, Месяцев=0, Дней=0) Экспорт 
	
	Если ДатаОкончанияПериода >= ДатаНачалаПериода Тогда
		
		Лет1		=	Год(ДатаОкончанияПериода);
		Месяцев1	=	Месяц(ДатаОкончанияПериода);
		
		Если НачалоДня(ДатаОкончанияПериода) <> НачалоДня(КонецМесяца(ДатаОкончанияПериода)) Тогда
			Дней1		=	День(ДатаОкончанияПериода);
		Иначе
			Дней1		=	30;//В каждом месяце ровно 30 дней
		КонецЕсли;	 
		
		Лет2		=	Год(ДатаНачалаПериода);
		Месяцев2	=	Месяц(ДатаНачалаПериода);
		Если НачалоДня(ДатаНачалаПериода) <> НачалоДня(КонецМесяца(ДатаНачалаПериода)) Тогда
			Дней2		=	День(ДатаНачалаПериода);
		Иначе
			Дней2		=	30;//В каждом месяце ровно 30 дней
		КонецЕсли;	 
		
		Лет		=	Лет1		-	Лет2;
		Месяцев	=	Месяцев1	-	Месяцев2;
		Дней	=	Дней1		-	Дней2 + 1;//1 день на увольнение
	Иначе
		Лет = 0; 
		Месяцев = 0;
		Дней = 0;
	КонецЕсли;	
КонецПроцедуры 
Показать


Либо использовать в своем запросе РегистрСведений.НакопленныеСтажиФизическихЛиц
Оставьте свое сообщение

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