|
СрезПоследних опять замучил меня. | ☑ | ||
---|---|---|---|---|
0
Обработка
12.03.14
✎
06:27
|
Было:
"ВЫБРАТЬ | ТарифыИНормыРаботниковСрезПоследних.ФизЛицо, | ТарифыИНормыРаботниковСрезПоследних.РазмерОклада, | ТарифыИНормыРаботниковСрезПоследних.НормаЧасы, | ТарифыИНормыРаботниковСрезПоследних.ВидРасчета |ИЗ | РегистрСведений.ТарифыИНормыРаботников.СрезПоследних() КАК ТарифыИНормыРаботниковСрезПоследних |ГДЕ | ТарифыИНормыРаботниковСрезПоследних.ФизЛицо В(&Сп)"; Но при изменении тарифов в запрос попадают старые тарифы. Сделал так: "ВЫБРАТЬ | ТарифыИНормыРаботниковСрезПоследних.ФизЛицо, | ТарифыИНормыРаботниковСрезПоследних.РазмерОклада, | ТарифыИНормыРаботниковСрезПоследних.НормаЧасы, | ТарифыИНормыРаботниковСрезПоследних.ВидРасчета |ИЗ | РегистрСведений.ТарифыИНормыРаботников.СрезПоследних(, | Период В(ВЫБРАТЬ МАКСИМУМ(ТарифыИНормыРаботниковСрезПоследних.Период) | ИЗ | РегистрСведений.ТарифыИНормыРаботников.СрезПоследних() КАК ТарифыИНормыРаботниковСрезПоследних)) КАК ТарифыИНормыРаботниковСрезПоследних |ГДЕ | ТарифыИНормыРаботниковСрезПоследних.ФизЛицо В(&Сп)"; Но сюда попадают тольок у тех у кого изменился тариф. Как быть? |
|||
1
SeraFim
12.03.14
✎
06:29
|
Измерение - только ФизЛицо?
|
|||
2
almar
12.03.14
✎
06:30
|
А почему условия внутри скобок среза последних не применяешь?
|
|||
3
echo77
12.03.14
✎
06:46
|
(0) 1. скриншот структуры регистра покажиите
2. Отбор по физ.лицу лучше сделать в парметрах виртуальной таблицы |
|||
4
Лохматые Уши
12.03.14
✎
07:27
|
(1) По видимому еще есть измерения.
(0) Второй запрос бредовый. |
|||
5
Обработка
12.03.14
✎
07:29
|
(3)
Измерения = Орг-я,Подр-е, Должнсть, Должность, Физлицо Ресурс = Норма часа, Норма дни ,ТарифОклад. |
|||
6
Обработка
12.03.14
✎
07:31
|
Епрст . Зря РС реализван так.
Лучше бы в измерении одно физ лицо было бы! |
|||
7
Лохматые Уши
12.03.14
✎
07:46
|
"ВЫБРАТЬ
| ТарифыИНормыРаботниковСрезПоследних.ФизЛицо, | ТарифыИНормыРаботниковСрезПоследних.Подразделение, | ТарифыИНормыРаботниковСрезПоследних.Должнсть, | ТарифыИНормыРаботниковСрезПоследних.РазмерОклада, | ТарифыИНормыРаботниковСрезПоследних.НормаЧасы, | ТарифыИНормыРаботниковСрезПоследних.ВидРасчета |ИЗ | РегистрСведений.ТарифыИНормыРаботников.СрезПоследних(,ТарифыИНормыРаботниковСрезПоследних.ФизЛицо В(&Сп)) КАК ТарифыИНормыРаботниковСрезПоследних Возможно еще понядобятся условия. |
|||
8
Defender aka LINN
12.03.14
✎
07:46
|
(5) Че, риальне у тебя измерения "Должнсть" и "Должность"?
|
|||
9
MatrosoV AleXXXand_R
12.03.14
✎
07:49
|
(0) Какая структура регистра? Почему условие не в "параметрах виртуальной таблицы"?
|
|||
10
Обработка
12.03.14
✎
07:49
|
(8) Ой. Да нет конечно. По запарке...
|
|||
11
MatrosoV AleXXXand_R
12.03.14
✎
07:52
|
А цель какая запроса - что должно получиться в итоге? Запрос выведет данные в разрезе измерений - Организация, Подразделение, Должность, ФизЛицо
|
|||
12
MatrosoV AleXXXand_R
12.03.14
✎
07:53
|
взять самые последние данные по физ. лицу - независимо от "организации + подразделения + должности"?
Если да - то тут явно не срез последних должен быть |
|||
13
чувак
12.03.14
✎
07:54
|
(10) Если хочешь получить в итоге только одну строку, тогда надо сделать условие по всем измерениям.
|
|||
14
Обработка
12.03.14
✎
07:55
|
Мне нужно последние значение по тарифу, вид расчета и должности.
|
|||
15
MatrosoV AleXXXand_R
12.03.14
✎
07:55
|
Можно сделать к примеру так:
Вытаскиваешь максимальные периоды по физ. лицам в отдельную таблицу - Физ. лицо + период потом внутренним соединением соединяешь таблицу с регистром по периоду + физ. лицу |
|||
16
MatrosoV AleXXXand_R
12.03.14
✎
07:55
|
(14) -> (15)
|
|||
17
Лохматые Уши
12.03.14
✎
07:58
|
(15) Зачем городить. Чувак в (13) написал как надо. Срез последних одним запросом сам все сделает.
|
|||
18
Обработка
12.03.14
✎
07:59
|
(13) Максимум что я могу дать в услвие это орг, подр, физ лицо. Но у физлица ведь менятся тариф!
|
|||
19
Обработка
12.03.14
✎
08:01
|
А как раз вид расчета, тариф Это выходные даные.
т е вид расчета не должен был в априории как измерение а должен быть ресурс. |
|||
20
MatrosoV AleXXXand_R
12.03.14
✎
08:02
|
(18) Тариф - у тебя ресурс. Если можешь передать все эти данные в условия, то конечно же (13)
|
|||
21
Обработка
12.03.14
✎
08:02
|
Мне нужно получить какой актуальный тариф у физ лица на сегодняшний день ну и какой вид расчета и какая должность....
|
|||
22
Лохматые Уши
12.03.14
✎
08:06
|
(21) Проверь периодичность регистра.
Далее смотришь, если по одному и тому же физлицу появляется 2 и более записей, то анализируешь, чем они отличаются. Ну и далее накладываешь дополнительные условие в запросе. |
|||
23
1Сергей
12.03.14
✎
08:15
|
лучше переделай регистр
|
|||
24
skunk
12.03.14
✎
08:35
|
не могу понять чего у вас не так выбирается
http://s001.radikal.ru/i194/1403/1a/182eee49b038.png |
|||
25
echo77
12.03.14
✎
08:49
|
(0) Делай свой срез последних без использования виртуальной таблицы, например так:
ВЫБРАТЬ ПлановыеНачисленияРаботников.Период, ПлановыеНачисленияРаботников.ФизЛицо, ПлановыеНачисленияРаботников.ВидРасчетаИзмерение, ПлановыеНачисленияРаботников.ВидРасчета, ПлановыеНачисленияРаботников.Показатель1, ПлановыеНачисленияРаботников.Валюта1 ИЗ (ВЫБРАТЬ ПлановыеНачисленияРаботников.ФизЛицо КАК ФизЛицо, МАКСИМУМ(ПлановыеНачисленияРаботников.Период) КАК Период ИЗ РегистрСведений.ПлановыеНачисленияРаботников КАК ПлановыеНачисленияРаботников СГРУППИРОВАТЬ ПО ПлановыеНачисленияРаботников.ФизЛицо) КАК МаксПериод ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботников КАК ПлановыеНачисленияРаботников ПО МаксПериод.ФизЛицо = ПлановыеНачисленияРаботников.ФизЛицо И МаксПериод.Период = ПлановыеНачисленияРаботников.Период |
|||
26
Обработка
12.03.14
✎
10:34
|
(24) Измерений у меня 5 а я отбираю всего лишь по физ лицу.
То что у физ лица какая должность или вид расчета хочу выяснить ее значение а оно является измерением при увеличении записей по физ лицу выходные данные не однозначны. По идее я как понимаю должно было бы быть все это не в измерениях а в ресурсах. |
|||
27
echo77
12.03.14
✎
10:52
|
(26) см. (25)
|
|||
28
skunk
12.03.14
✎
10:59
|
(26)смотря для чего регистр делался ... если именно для задачи получить данные о физ лице об организации, должнасти и прочего ... то да ... они должны быть в ресурсах
|
|||
29
MatrosoV AleXXXand_R
12.03.14
✎
11:02
|
ИМХО
Автор запустил ветку в 06:27, последний раз написал в 10:34 - УЖАС ... За 4 часа с лишним не разобрать такую проблему |
|||
30
Обработка
12.03.14
✎
11:02
|
(25) Спасибо. Вроде подошло.
ДокОснование = Объект.ДокументОснование; Сп = Объект.ДокументОснование.Работники.ВыгрузитьКолонку("ФизЛицо"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТарифыИНормыРаботников.ФизЛицо, | ТарифыИНормыРаботников.РазмерОклада, | ТарифыИНормыРаботников.НормаЧасы, | ТарифыИНормыРаботников.ВидРасчета |ИЗ | (Выбрать | Тарифы.ФизЛицо как ФизЛицо, | МАКСИМУМ(Тарифы.Период) КАК Период |ИЗ | РегистрСведений.ТарифыИНормыРаботников КАК Тарифы |Где Тарифы.ФизЛицо в (&Сп) | И Тарифы.Период <= &ДатаКон |СГРУППИРОВАТЬ ПО | Тарифы.ФизЛицо) КАК МаксПериод | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ТарифыИНормыРаботников КАК ТарифыИНормыРаботников | ПО МаксПериод.ФизЛицо = ТарифыИНормыРаботников.ФизЛицо | И МаксПериод.Период = ТарифыИНормыРаботников.Период"; Запрос.УстановитьПараметр("Сп", Сп); Запрос.УстановитьПараметр("ДатаКон", КонецМесяца(ДокОснование.Дата)); ТаблицаДанных = Запрос.Выполнить().Выгрузить(); |
|||
31
Обработка
12.03.14
✎
11:04
|
(29) Не делайте ложных выводов.
Запостил ветку. Уехал по делам. Приехал только что. По ходу пьесы решаю другие задачи. |
|||
32
echo77
12.03.14
✎
11:08
|
(30) Да, это именно то что вам надо
|
|||
33
skunk
12.03.14
✎
11:11
|
ВЫБРАТЬ
МАКСИМУМ(РегистрСведений1СрезПоследних.Период) КАК Период, РегистрСведений1СрезПоследних.ФизЛицо ПОМЕСТИТЬ тзФизЛица ИЗ РегистрСведений.РегистрСведений1.СрезПоследних( &дтПериод, ФизЛицо = "Кулакова М" ИЛИ ФизЛицо = "Кулакова Д") КАК РегистрСведений1СрезПоследних СГРУППИРОВАТЬ ПО РегистрСведений1СрезПоследних.ФизЛицо ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РегистрСведений1СрезПоследних.Период, РегистрСведений1СрезПоследних.организация, РегистрСведений1СрезПоследних.подразделение, РегистрСведений1СрезПоследних.ФизЛицо, РегистрСведений1СрезПоследних.Дни, РегистрСведений1СрезПоследних.Часы, РегистрСведений1СрезПоследних.Оклад ИЗ тзФизЛица КАК тзФизЛица ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РегистрСведений1.СрезПоследних(&дтПериод, ) КАК РегистрСведений1СрезПоследних ПО тзФизЛица.Период = РегистрСведений1СрезПоследних.Период И тзФизЛица.ФизЛицо = РегистрСведений1СрезПоследних.ФизЛицо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |