1. Krey__ 05.12.18 16:50 Сейчас в теме

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

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


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

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

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

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

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

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

Подскажите пожалуйста как можно вывести стаж и качество примерно также. Пожалуйста только не надо унижать и если что-то не правильно то простите, новичок.
Прикрепленные файлы:
Найденные решения
6. Bene_Valete 40 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 13 06.12.18 07:10 Сейчас в теме
(1)
ВЫБРАТЬ РАЗЛИЧНЫЕ
	Т.Регистратор КАК Регистратор,
	Т.Период КАК Период,
	Т.НомерСтроки КАК НомерСтроки,
	Т.Активность КАК Активность,
	Т.Сотрудник КАК Сотрудник,
	Т.Организация КАК Организация,
	Т.ФизическоеЛицо КАК ФизическоеЛицо,
	Т.Показатель КАК Показатель,
	Т.ДокументОснование КАК ДокументОснование,
	Т.Значение КАК Значение,
	Т.ДействуетДо КАК ДействуетДо
ИЗ
	РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников КАК Т
ГДЕ
	Т.Регистратор = &Регистратор
Показать
2. Krey__ 05.12.18 17:30 Сейчас в теме
Простите тупой, оклад
Попытка СписокПоказателейНадбавка.Добавить(Справочники.ПоказателиРасчетаЗарплаты.НайтиПоНаименованию("За качество",Истина)); Исключение КонецПопытки;


А вот вывести стаж так и не могу
3. Bene_Valete 40 06.12.18 05:54 Сейчас в теме
А какая у вас конечная задача? Т.е. Вы пытаетесь получить в целом перечень надбавок сотрудника для какой-то цели, или необходимо их получить конкретно в разрезе документов кадровых переводов?
4. Krey__ 06.12.18 06:48 Сейчас в теме
(3)
Сейчас мне нужно вывести процент надбавки за стаж в печатной форме
7. Denis_CFO 13 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 40 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;
	КонецЕсли;	
КонецПроцедуры 
Показать


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

Вакансии

Старший Программист 1С НОВОСИБИРСК
Новосибирск
зарплата до 130 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 75 000 руб.
Полный день



Руководитель проектов 1С
Санкт-Петербург
По совместительству