Как из запроса убрать сторнированные часы?

1. VID1234 147 06.09.21 13:27 Сейчас в теме
Здраствуйте. Есть такой запрос
ВЫБРАТЬ РАЗЛИЧНЫЕ
			Начисления.Сотрудник КАК Сотрудник,
			ЕСТЬNULL(Начисления.ОтработаноЧасов, 0) КАК ОтработаноЧасов,
			Начисления.Регистратор КАК Регистратор,
			Начисления.ВидРасчета Как ВидРасчета
					
		ИЗ
			РегистрРасчета.Начисления КАК Начисления
		ГДЕ
		   (Начисления.ВидРасчета.Наименование ПОДОБНО "%Оплата по окладу%" ИЛИ Начисления.ВидРасчета.Наименование ПОДОБНО "%Персональная надбавка%" ИЛИ Начисления.ВидРасчета.Наименование ПОДОБНО "%Премия разовая%")
		   И Начисления.Результат > 0
		   И Начисления.ПериодРегистрации МЕЖДУ &НачПериода И &КонПериода
Показать
В этот регистр заносятся данные с документа увольнения, а там есть вкладка начисления, данные попадают как нужно, но также есть вкладка пересчет начислений, где часть времени сторнируют. Допустим, от уже начисленного оклада программа автоматически пересчитывает, нужную сумму и сторнирует ее и это время попадает в запрос, а мне нужно, чтобы попадали только данные, которые на первой вкладке "Начисления"
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. WasiliyMay 8 06.09.21 14:06 Сейчас в теме
(1)Можно по идентификатору строки соединение регистра расчета с табличной частью с перерасчетами сделать и их исключить из результата.
3. VID1234 147 06.09.21 14:15 Сейчас в теме
(2)Здравствуйте. А полностью можно исключить эту ТЧ! Идентификатор каждый раз будет новый для нового документа, мне необходимо будет прописывать постоянно?
4. WasiliyMay 8 06.09.21 14:44 Сейчас в теме
(3)Нет. Каждый раз не нужно ничего будет ничего делать. Судя по названиям начислений, вам нужны начисления только из ТЧ "Начисления"?
Будет примерно такой запрос:

ВЫБРАТЬ РАЗЛИЧНЫЕ
	Начисления.Сотрудник КАК Сотрудник,
	ЕСТЬNULL(Начисления.ОтработаноЧасов, 0) КАК ОтработаноЧасов,
	Начисления.Регистратор КАК Регистратор,
	Начисления.ВидРасчета КАК ВидРасчета,
	Начисления.ИдентификаторСтроки КАК ИдентификаторСтроки
ПОМЕСТИТЬ ВТНачисления
ИЗ
	РегистрРасчета.Начисления КАК Начисления
ГДЕ
	(Начисления.ВидРасчета.Наименование ПОДОБНО "%Оплата по окладу%"
			ИЛИ Начисления.ВидРасчета.Наименование ПОДОБНО "%Персональная надбавка%"
			ИЛИ Начисления.ВидРасчета.Наименование ПОДОБНО "%Премия разовая%")
	И Начисления.Результат > 0
	И Начисления.ПериодРегистрации МЕЖДУ &НачПериода И &КонПериода
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТНачисления.Сотрудник КАК Сотрудник,
	ВТНачисления.ОтработаноЧасов КАК ОтработаноЧасов,
	ВТНачисления.Регистратор КАК Регистратор,
	ВТНачисления.ВидРасчета КАК ВидРасчета
ИЗ
	ВТНачисления КАК ВТНачисления
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Увольнение.Начисления КАК УвольнениеНачисления
		ПО (ВТНачисления.ИдентификаторСтроки = УвольнениеНачисления.ИдентификаторСтрокиВидаРасчета)
			И (ВТНачисления.Регистратор = УвольнениеНачисления.Ссылка)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ВТНачисления.Сотрудник,
	ВТНачисления.ОтработаноЧасов,
	ВТНачисления.Регистратор,
	ВТНачисления.ВидРасчета
ИЗ
	ВТНачисления КАК ВТНачисления
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.УвольнениеСписком.Начисления КАК УвольнениеСпискомНачисления
		ПО (ВТНачисления.ИдентификаторСтроки = УвольнениеСпискомНачисления.ИдентификаторСтрокиВидаРасчета
				И ВТНачисления.Регистратор = УвольнениеСпискомНачисления.Ссылка
				И ВТНачисления.Сотрудник = УвольнениеСпискомНачисления.Сотрудник)
Показать
8. VID1234 147 06.09.21 18:58 Сейчас в теме
(4) С увольнением вроде заработало, спасибо, но теперь такая же возня, по документу ОТПУСК, данные дублируются
Во вкладке начисления (подробно) есть 5 строк:
Оплата по окладу 80 часов (5000)
Персональная надбавка 80 часов (10000)
Оплата по окладу 28 часов 6000
персональная надбавка 28 часов 7000
отпуск (он не попадает все ок)
Запрос должен выдать так:
Иванов Иван ИВанович 80 часов 5000 руб. ( это оплата по окладу)
Иванов Иван ИВанович 28 часов 6000 руб (это персональная надбавка)
Иванов Иван ИВанович без часов 10000 руб (это оплата по окладу)
Иванов Иван ИВанович без часов 7000 руб. (это персональная надбавка)

А у меня выходит так:
Иванов Иван ИВанович без часов 10000 руб (это оплата по окладу) - это норм
Иванов Иван ИВанович без часов 7000 руб. (это персональная надбавка) - это норм
Иванов Иван ИВанович 80 часов 5000 руб. ( это оплата по окладу) - это норм
Иванов Иван ИВанович 28 часов 6000 руб (это персональная надбавка) - это норм
Иванов Иван ИВанович 80 часов 5000 руб. ( это оплата по окладу) дубляж не нужен
Иванов Иван ИВанович 28 часов 6000 руб (это персональная надбавка) дубляж не нужен
12. user1461477 07.09.21 12:15 Сейчас в теме
5. user1461477 06.09.21 16:30 Сейчас в теме
ЕСТЬNULL(Начисления.ОтработаноЧасов

лишнее
6. user1461477 06.09.21 16:32 Сейчас в теме
где Начисления.ОтработаноЧасов > 0
10. VID1234 147 06.09.21 19:00 Сейчас в теме
(6) Сделал так, но еще проблема, уже в коментах. Есть идеи?
7. homer_ 79 06.09.21 16:45 Сейчас в теме
А не проще ИдентификаторСтроки < 1000000
При такой конструкции должны все доначисления исключаться
9. VID1234 147 06.09.21 19:00 Сейчас в теме
(7) Здравствуйте. Не получилось так, вообще ничего не выдает, но я правда написал так ПО (ВТНачисления.ИдентификаторСтроки = УвольнениеНачисления.ИдентификаторСтрокиВидаРасчета < 1000000)
11. WasiliyMay 8 07.09.21 08:32 Сейчас в теме
(7)Проще тогда так. Думал только увольнения нужны
Оставьте свое сообщение

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