Заполнение тч внешней обработки данными о сотрудниках

1. AndrewUs 11 16.10.18 15:02 Сейчас в теме
Здравствуйте!
Создал форму обработки с реквизитами:
ФИО - строка
ТабНомер - строка
Должность - строка
Разряд - строка
ДолжностьПоШтатРасп - строка
ДатаРождения - дата
ДатаПриема - дата
ФОТ - число
Тариф - число

Далее добавил кнопку заполнения данной табличной части.
В коде кнопку добавил запрос:

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


Данный запрос выводит мне сотрудников с из тарифами, окладами, надбавками и т.д.

Также для отсечения из ТЧ строк где фигурирует проценты, всякого рода коэффициенты написал условие
Если Стр.Тариф < 10 Тогда
			Объект.Сотрудники.Удалить(Стр);
		КонецЕсли;


Скажите, пожалуйста, как можно избежать попадания строк с процентом в ТЧ не используя подобное условие?
Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. AndrewUs 11 16.10.18 15:03 Сейчас в теме
Забыл написать. Конфигурация 1С ERP 2.4
3. iliya2009 16.10.18 15:27 Сейчас в теме
Добрый день!
А в запросе какое поле - тариф?
4. AndrewUs 11 16.10.18 15:32 Сейчас в теме
(3) Стр.ФИО = РезультатЗапроса.Наименование;
Стр.ТабНомер = РезультатЗапроса.Код;
Стр.ДатаРождения = РезультатЗапроса.ФизическоеЛицоДатаРождения;
Стр.Тариф = РезультатЗапроса.Значение;
Стр.Должность = РезультатЗапроса.ДолжностьНаименование;
Стр.Разряд = РезультатЗапроса.РазрядНаименование;
Стр.ДатаПриема = РезультатЗапроса.Дата;
Стр.ФОТ = РезультатЗапроса.Размер;
5. iliya2009 16.10.18 15:35 Сейчас в теме
А если в запрос такое-же условие поставить?
ГДЕ
| ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­­езПоследних.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
| И ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­­езПоследних.Значение > 10
AndrewUs; +1 Ответить
6. AndrewUs 11 16.10.18 15:42 Сейчас в теме
(5) Это, в принципе, одно и тоже. В итоге без подобных условий я не смогу исключить попадания в таблицу строк где будет фигурировать тариф с размером = "4", например.
7. dusha0020 1105 16.10.18 16:13 Сейчас в теме
(6) У вас, что тариф может быть строковым или числовым?
9. AndrewUs 11 16.10.18 16:45 Сейчас в теме
(7) Тариф строго числовой. Почему вы спросили?
8. iliya2009 16.10.18 16:31 Сейчас в теме
Не могу все-таки понять, по какому принципу вы хотите исключать строки. Или когда тариф меньше какого-то значения, или когда в тарифе кроме цифр еще какие-то символы или что? Может быть что-то типа регулярных выражений хотите в условии запроса использовать?
10. AndrewUs 11 16.10.18 16:47 Сейчас в теме
(8) Например, в регистрах две записи: 1) Тариф - 140 рублей
2) Надбавка за вредность - 4 %

В другой записи, например, 1) Тариф - 200 рублей
2) Северная надбавка - 1.4%

Вот всякого рода надбавки исключить необходимо.
13. dusha0020 1105 16.10.18 17:06 Сейчас в теме
(10) Тогда почему Вы не можете использовать условие
ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­­езПоследних.Значение > 10
из (5)?
В (6) Вы писали, что
тариф с размером = "4"
. Ну раз 4 в кавычках и нельзя использовать условие сравнения числовых значений то я и решил уточнить. Однако с точки зрения организации регистра смешение числовых и текстовых величин применительно к ставкам неправильно.

Так все-таки. Почему Вы не можете просто не загружать ненужные данные, отсекая их в запросе?
14. AndrewUs 11 16.10.18 17:08 Сейчас в теме
(13) А если процент будет 20 или более. Или, например тариф будет удваиваться? Если точечно рассматривать такой вариант, как быть?
16. dusha0020 1105 16.10.18 17:22 Сейчас в теме
(14)
А если процент будет 20 или более. Или, например тариф будет удваиваться? Если точечно рассматривать такой вариант, как быть?

Ну Вы же по каким-то критериям очищаете таблицу от ненужных значений? Перенесите эти критерии в условия запроса. В конце концов можно как-то собрать для отбора виды расчетов имеющих базу от времени (дней, часов) и по ним создать параметр и условие.
11. iliya2009 16.10.18 17:01 Сейчас в теме
Надбавки тоже в поле Тариф живут?
12. AndrewUs 11 16.10.18 17:05 Сейчас в теме
(11) Да
Прикрепленные файлы:
15. iliya2009 16.10.18 17:17 Сейчас в теме
ГДЕ ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­­езПоследних.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­­езПоследних.Показатель.Наименование = "Тарифная ставка (часовая)"

хотя бы так тогда ...
17. iliya2009 16.10.18 17:28 Сейчас в теме
Если требуются все показатели начинающиеся со слова "Тариф" тогда:

ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­­­езПоследних.Показатель.Наименование ПОДОБНО "Тариф%"

Если любой произвольный набор показателей, то перед выполнением запроса создать коллекцию из этих показателей и:

ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­­­езПоследних.Показатель В &КоллекцияПоказателей
AndrewUs; +1 Ответить
18. AndrewUs 11 16.10.18 21:42 Сейчас в теме
Я Вас услышал, спасибо большое за отклики. Попробую оптимизировать запрос, чтобы больше к нему не возвращаться.
19. VmvLer 17.10.18 09:31 Сейчас в теме
(18) сизифов труд, вы будете постоянно возвращаться к этому запросу т.к. головные разработчики "очень любят" менять(оптимизировать) структуру таблиц БД относительно зп/штатного расписания/данных физ лиц.

лучший выход - изучить функции общих модулей и использовать их (как и советуют сами головные разработчики)

90% потребностей эти методы удовлетворяют

для 10% сложных случаев - из разных функций можно получить разные таблицы значений и, запихнув их в запрос, получить еще что-то то, что вам нужно

а свои запросы к указанным типам данных целесообразно писать в следующих случаях:
1. обучение;
2. задача очень экзотическая;
3. больше нечем заняться.
Оставьте свое сообщение

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