Заполнение тч внешней обработки данными о сотрудниках
Здравствуйте!
Создал форму обработки с реквизитами:
ФИО - строка
ТабНомер - строка
Должность - строка
Разряд - строка
ДолжностьПоШтатРасп - строка
ДатаРождения - дата
ДатаПриема - дата
ФОТ - число
Тариф - число
Далее добавил кнопку заполнения данной табличной части.
В коде кнопку добавил запрос:
Данный запрос выводит мне сотрудников с из тарифами, окладами, надбавками и т.д.
Также для отсечения из ТЧ строк где фигурирует проценты, всякого рода коэффициенты написал условие
Скажите, пожалуйста, как можно избежать попадания строк с процентом в ТЧ не используя подобное условие?
Спасибо.
Создал форму обработки с реквизитами:
ФИО - строка
ТабНомер - строка
Должность - строка
Разряд - строка
ДолжностьПоШтатРасп - строка
ДатаРождения - дата
ДатаПриема - дата
ФОТ - число
Тариф - число
Далее добавил кнопку заполнения данной табличной части.
В коде кнопку добавил запрос:
"ВЫБРАТЬ
| Сотрудники.Код КАК Код,
| Сотрудники.Наименование КАК Наименование,
| РеестрКадровыхПриказов.Должность.Наименование КАК ДолжностьНаименование,
| РеестрКадровыхПриказов.Разряд.Наименование КАК РазрядНаименование,
| РеестрКадровыхПриказов.Дата КАК Дата,
| ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Значение КАК Значение,
| СУММА(ПлановыеНачисленияСрезПоследних.Размер) КАК Размер,
| Сотрудники.ФизическоеЛицо.ДатаРождения КАК ФизическоеЛицоДатаРождения
|ИЗ
| РегистрСведений.РеестрКадровыхПриказов КАК РеестрКадровыхПриказов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних
| ПО Сотрудники.Ссылка = ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Сотрудник
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисления.СрезПоследних КАК ПлановыеНачисленияСрезПоследних
| ПО Сотрудники.Ссылка = ПлановыеНачисленияСрезПоследних.Сотрудник
| ПО РеестрКадровыхПриказов.Сотрудник = Сотрудники.Ссылка
|ГДЕ
| ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
|
|СГРУППИРОВАТЬ ПО
| Сотрудники.Код,
| Сотрудники.Наименование,
| РеестрКадровыхПриказов.Должность.Наименование,
| РеестрКадровыхПриказов.Разряд.Наименование,
| РеестрКадровыхПриказов.Дата,
| ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Значение,
| Сотрудники.ФизическоеЛицо.ДатаРождения
|
|УПОРЯДОЧИТЬ ПО
| Код";
ПоказатьДанный запрос выводит мне сотрудников с из тарифами, окладами, надбавками и т.д.
Также для отсечения из ТЧ строк где фигурирует проценты, всякого рода коэффициенты написал условие
Если Стр.Тариф < 10 Тогда
Объект.Сотрудники.Удалить(Стр);
КонецЕсли;
Скажите, пожалуйста, как можно избежать попадания строк с процентом в ТЧ не используя подобное условие?
Спасибо.
По теме из базы знаний
- Заполнение способов отражения зарплаты в бухучете по сотрудникам на определенную дату
- Нет СПРАВОК. Список сотрудников без справки об отсутствии судимости, из наркологического и психоневрологического диспансера и др. ЗКГУ, ЗУП ред. 3.0
- Формирование одного документа Word с данными по нескольким сотрудникам
- Заполнение документа "Премия" из файла Excel (Табельный номер + Сумма премии) с использованием внешней обработки заполнения табличной части и расширения. ЗУП 3.1
- Создание документа "Отпуска сотрудников" по данным Графика отпусков. ЗУП 3.1
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Стр.ФИО = РезультатЗапроса.Наименование;
Стр.ТабНомер = РезультатЗапроса.Код;
Стр.ДатаРождения = РезультатЗапроса.ФизическоеЛицоДатаРождения;
Стр.Тариф = РезультатЗапроса.Значение;
Стр.Должность = РезультатЗапроса.ДолжностьНаименование;
Стр.Разряд = РезультатЗапроса.РазрядНаименование;
Стр.ДатаПриема = РезультатЗапроса.Дата;
Стр.ФОТ = РезультатЗапроса.Размер;
Стр.ТабНомер = РезультатЗапроса.Код;
Стр.ДатаРождения = РезультатЗапроса.ФизическоеЛицоДатаРождения;
Стр.Тариф = РезультатЗапроса.Значение;
Стр.Должность = РезультатЗапроса.ДолжностьНаименование;
Стр.Разряд = РезультатЗапроса.РазрядНаименование;
Стр.ДатаПриема = РезультатЗапроса.Дата;
Стр.ФОТ = РезультатЗапроса.Размер;
А если в запрос такое-же условие поставить?
ГДЕ
| ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
| И ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Значение > 10
ГДЕ
| ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр
| И ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр
Не могу все-таки понять, по какому принципу вы хотите исключать строки. Или когда тариф меньше какого-то значения, или когда в тарифе кроме цифр еще какие-то символы или что? Может быть что-то типа регулярных выражений хотите в условии запроса использовать?
(10) Тогда почему Вы не можете использовать условие
В (6) Вы писали, что
Так все-таки. Почему Вы не можете просто не загружать ненужные данные, отсекая их в запросе?
ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Значение > 10
из (5)?
В (6) Вы писали, что
тариф с размером = "4"
. Ну раз 4 в кавычках и нельзя использовать условие сравнения числовых значений то я и решил уточнить. Однако с точки зрения организации регистра смешение числовых и текстовых величин применительно к ставкам неправильно.
Так все-таки. Почему Вы не можете просто не загружать ненужные данные, отсекая их в запросе?
(14)
Ну Вы же по каким-то критериям очищаете таблицу от ненужных значений? Перенесите эти критерии в условия запроса. В конце концов можно как-то собрать для отбора виды расчетов имеющих базу от времени (дней, часов) и по ним создать параметр и условие.
А если процент будет 20 или более. Или, например тариф будет удваиваться? Если точечно рассматривать такой вариант, как быть?
Ну Вы же по каким-то критериям очищаете таблицу от ненужных значений? Перенесите эти критерии в условия запроса. В конце концов можно как-то собрать для отбора виды расчетов имеющих базу от времени (дней, часов) и по ним создать параметр и условие.
ГДЕ ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Показатель.Наименование = "Тарифная ставка (часовая)"
хотя бы так тогда ...
И ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр
хотя бы так тогда ...
Если требуются все показатели начинающиеся со слова "Тариф" тогда:
ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Показатель.Наименование ПОДОБНО "Тариф%"
Если любой произвольный набор показателей, то перед выполнением запроса создать коллекцию из этих показателей и:
ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Показатель В &КоллекцияПоказателей
ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр
Если любой произвольный набор показателей, то перед выполнением запроса создать коллекцию из этих показателей и:
ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр
(18) сизифов труд, вы будете постоянно возвращаться к этому запросу т.к. головные разработчики "очень любят" менять(оптимизировать) структуру таблиц БД относительно зп/штатного расписания/данных физ лиц.
лучший выход - изучить функции общих модулей и использовать их (как и советуют сами головные разработчики)
90% потребностей эти методы удовлетворяют
для 10% сложных случаев - из разных функций можно получить разные таблицы значений и, запихнув их в запрос, получить еще что-то то, что вам нужно
а свои запросы к указанным типам данных целесообразно писать в следующих случаях:
1. обучение;
2. задача очень экзотическая;
3. больше нечем заняться.
лучший выход - изучить функции общих модулей и использовать их (как и советуют сами головные разработчики)
90% потребностей эти методы удовлетворяют
для 10% сложных случаев - из разных функций можно получить разные таблицы значений и, запихнув их в запрос, получить еще что-то то, что вам нужно
а свои запросы к указанным типам данных целесообразно писать в следующих случаях:
1. обучение;
2. задача очень экзотическая;
3. больше нечем заняться.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот