|
Разжуйте раз и навсегда СрезПоследних или выбор по максимуму периода? | ☑ | ||
---|---|---|---|---|
0
Обработка
16.07.14
✎
09:50
|
Периодически мучаюсь с проблемой выбора значения организации для физлица из РС где достатчно много измерений и ресурсов.
Какое есть изящное решение у вас поделитесь? Вот мой запрос: ВЫБРАТЬ Отпуск.Ссылка, Отпуск.Сотрудник, Отпуск.ДатаНачала, Отпуск.ДатаОкончания, Отпуск.ВидИспользваниеРабочегоВремени, РаботникиОрганизацийСрезПоследних.Должность, РаботникиОрганизацийСрезПоследних.Организация ИЗ Документ.Невыходы КАК Отпуск ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних ПО Отпуск.Сотрудник = РаботникиОрганизацийСрезПоследних.Физлицо ГДЕ Отпуск.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания |
|||
1
Обработка
16.07.14
✎
09:51
|
Умом я отлично понимаю. Но вот как для списка вытащить последние записи за период? если в этом периоде нет то последний до этого периода?
|
|||
2
Обработка
16.07.14
✎
09:52
|
так тоже не канает
ВЫБРАТЬ Отпуск.Ссылка, Отпуск.Сотрудник, Отпуск.ДатаНачала, Отпуск.ДатаОкончания, Отпуск.ВидИспользваниеРабочегоВремени ПОМЕСТИТЬ ВТ ИЗ Документ.Невыходы КАК Отпуск ГДЕ Отпуск.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РаботникиОрганизацийСрезПоследних.Физлицо, РаботникиОрганизацийСрезПоследних.Должность, РаботникиОрганизацийСрезПоследних.Организация, МАКСИМУМ(РаботникиОрганизацийСрезПоследних.Период) КАК Период ПОМЕСТИТЬ ВТ2 ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних СГРУППИРОВАТЬ ПО РаботникиОрганизацийСрезПоследних.Физлицо, РаботникиОрганизацийСрезПоследних.Должность, РаботникиОрганизацийСрезПоследних.Организация ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Сотрудник, ВТ.Ссылка, ВТ.ДатаНачала, ВТ.ДатаОкончания, ВТ.ВидИспользваниеРабочегоВремени, ВТ2.Должность, ВТ2.Организация ИЗ ВТ КАК ВТ ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2 ПО ВТ.Сотрудник = ВТ2.Физлицо |
|||
3
Обработка
16.07.14
✎
09:53
|
для одного физ лица уже делал такое
ВЫБРАТЬ | РаботникиОрганизацийСрезПоследних.Должность КАК Должность |ИЗ | РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Дата, | Период В(ВЫБРАТЬ МАКСИМУМ(РаботникиОрганизацийСрезПоследних.Период) | ИЗ | РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Дата, Физлицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних) | и Физлицо = &Физлицо) КАК РаботникиОрганизацийСрезПоследних"; а как для списка? |
|||
4
Defender aka LINN
16.07.14
✎
09:53
|
(0) Для начала неплохо бы озвучить - чего ты вообще добиваешься?
|
|||
5
РенеДекарт
16.07.14
✎
09:54
|
У вас разные предпосылки - СрезПоследних на ЛЮБУЮ дату, максимум периода - только один.
А вы себе что-то другое придумали. |
|||
6
Обработка
16.07.14
✎
09:57
|
(4) Я хочу для любого отчета за период ли или на дату всегда вытаскивать по физлицу (или списку физлиц) его (их) актуальное значение организации.
|
|||
7
tdm
16.07.14
✎
09:58
|
(4) +1, ну и с физ.лицами непонятно что у вас вопрос вызывает - у сотрудника однозначно всегда физ.лицо можно понять, а вот наоборот уже проблема на одно физ.лицо несколько сотрудников может быть ( и следовательно несколько должностей,подразделений и пр.)...что мы результате хотим получить ?
|
|||
8
Обработка
16.07.14
✎
09:58
|
+(6) На деле срезпослених не подходит потому что одно физ лицо побывал в нескольких организациях.
|
|||
9
tdm
16.07.14
✎
09:59
|
(6) их несколько может быть)
я - физ.лицо одно, но я могу работать и бытьс отрудником в одном отделе по основному месту, в другом по совместительству) т.е. сотрудников уже два будет на одно физ лицо |
|||
10
tdm
16.07.14
✎
09:59
|
(8) или даже так - одно физ.лицо по разным организациям...если в базе несколько фирм
|
|||
11
Обработка
16.07.14
✎
10:02
|
Зы база самописка!
есть справочник физ лиц все что касаемо его продвижения в РС РаботникиОрганизаций данные РС Измерения РаботникиОрганизаций.Период, РаботникиОрганизаций.Регистратор, РаботникиОрганизаций.НомерСтроки, РаботникиОрганизаций.Активность, РаботникиОрганизаций.Физлицо, РаботникиОрганизаций.Организация, Ресурсы РаботникиОрганизаций.ЗанимаемыхСтавок, РаботникиОрганизаций.ПодразделениеОрганизации, РаботникиОрганизаций.Должность, РаботникиОрганизаций.ВидЗанятости, РаботникиОрганизаций.ПричинаИзмененияСостояния, РаботникиОрганизаций.ГрафикРаботы, РаботникиОрганизаций.Разряд, Реквизит РаботникиОрганизаций.ТабельныйНомер |
|||
12
Обработка
16.07.14
✎
10:03
|
точнее!!!
Измерения РаботникиОрганизаций.Физлицо, РаботникиОрганизаций.Организация, |
|||
13
tdm
16.07.14
✎
10:04
|
(12) посмотрите если у вас под рукой есть ЗУП - ПолучитьФизлицаСотрудниковПодразделенияНаДату() там всё непросто((( пакетный запрос где они постепенно обрабатывают возможные варианты и осекают ненужных сотрудников для физ.лица
|
|||
14
Обработка
16.07.14
✎
10:04
|
В базе фирм несколько и сотры бывают качуют.
|
|||
15
tdm
16.07.14
✎
10:06
|
(14) это нормально) смотрите типовые методы - или даже лучше их использовать, там довольно ветвистые непростые запросы но к сожалению по-простому там никак((((
|
|||
16
Обработка
16.07.14
✎
10:20
|
(15) Как это не нормально.
Водитель работал в компании А уволился перешел в компанию Б. У нас базе 7 фирм. |
|||
17
mikeA
16.07.14
✎
10:20
|
(14) т.е. тебе надо для каждой даты из периода отчёта определить организацию физлица при условии что физлицо может менять организации в течение периода?
|
|||
18
samozvanec
16.07.14
✎
10:30
|
а что, если сотрудник числится на пол ставки еще в одной организации? вообще очень даже срез последних, только надо еще определять, что вот из этих он уже уволился
|
|||
19
Enders
16.07.14
✎
10:37
|
СрезПоследних ты получаешь на одну дату.
Максимумом ты можешь получить тоже что и СрезПоследних(при чем по скорости будет примерно одно и тоже) или получить актуальную инфу на каждую из дат из своего отчета(но для этого нужда таблица дат). Пример. Формируешь отчет за месяц, Срезом ты можешь получить актуальные данные на началомесяца/конецмесяца (или делать несколько срезов). Если сотрудник перемещался внутри месяца и тебе надо это видеть, то лучше делать через СрезПоследних(На начало месяца)+через Максимум получать актуальные данные на каждый день из твоего отчета. |
|||
20
Обработка
16.07.14
✎
10:41
|
Вот решение: СПАСИБО ЧУВАКУ!!! Всегда мне помогает в трудную минуту!
ВЫБРАТЬ Отпуск.Ссылка, Отпуск.Сотрудник, Отпуск.ДатаНачала, Отпуск.ДатаОкончания, Отпуск.ВидИспользваниеРабочегоВремени ПОМЕСТИТЬ ВТ ИЗ Документ.Невыходы КАК Отпуск ГДЕ Отпуск.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РаботникиОрганизаций.Физлицо, МАКСИМУМ(РаботникиОрганизаций.Период) КАК Период ПОМЕСТИТЬ ВТ2 ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.Период <= &Период СГРУППИРОВАТЬ ПО РаботникиОрганизаций.Физлицо ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ2.Физлицо, РаботникиОрганизаций.Организация, РаботникиОрганизаций.Должность ПОМЕСТИТЬ ВТ3 ИЗ ВТ2 КАК ВТ2 ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ПО ВТ2.Период = РаботникиОрганизаций.Период И ВТ2.Физлицо = РаботникиОрганизаций.Физлицо ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Ссылка, ВТ.Сотрудник, ВТ.ДатаНачала, ВТ.ДатаОкончания, ВТ.ВидИспользваниеРабочегоВремени, ВТ3.Организация, ВТ3.Должность ИЗ ВТ КАК ВТ ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ3 КАК ВТ3 ПО ВТ.Сотрудник = ВТ3.Физлицо |
|||
21
0wl
16.07.14
✎
10:46
|
В 8.3 как раз для таких задач ввели дополнительные физические таблицы со срезом первых/срезом последних (хранятся только крайние значения -- самый ранний и самый поздний). И теперь можно смело к динамическому списку, скажем, номенклатуры прикручивать последние цены и не думать о том, в какой ночной кошмар для сервера это выливается
|
|||
22
Обработка
16.07.14
✎
10:48
|
(21) Так у меня как раз ведь 8.3 да еще конфа самописка.
Как ее юзать то? |
|||
23
Обработка
16.07.14
✎
10:51
|
(21) У меня релиз 8.3.678 там ничего такого я не наблюдал пока еще.
|
|||
24
0wl
16.07.14
✎
10:52
|
(22) Там, по идее, в свойствах регистра галка должна быть. При ее включении создаются физические таблицы итогов и все обращения к СрезПервых и СрезПоследних без указания периода перенаправляются на эти таблицы
|
|||
25
Обработка
16.07.14
✎
18:11
|
(24) не про это - "Разрешить итоги: срез последних"
|
|||
26
0wl
16.07.14
✎
18:27
|
(25) да, оно
|
|||
27
Обработка
17.07.14
✎
07:34
|
(26) Помоему это не про то.
Создал тестовую конфу и поставил галочку. ничего не изменилось. |
|||
28
catena
17.07.14
✎
08:10
|
Измерения
РаботникиОрганизаций.Физлицо, РаботникиОрганизаций.Организация, Вот это мощно. Именно поэтому срез последних с этим регистром теперь не поиспользуешь. Только с выбором максимального периода. |
|||
29
Обработка
17.07.14
✎
11:48
|
(28) А что тут такого?
В этой самописке у меня нет справочника Сотроудники. И в этой базе одновремено 6-8 основых фирм и еще куча подрядчиков ведется. Принадлежность работника к фирме определяется этим регистром. Перемещения есть. Не много но есть. |
|||
30
catena
17.07.14
✎
12:42
|
(29)То, что срез последних - он в разрезе измерений. Т.е. по каждому уникальному набору измерений.
Петров/филиал1 Петров/филиал2 для среза последних - разные ключевые пары и по каждой будет срез последних. Если хочется получать историю именно по сотруднику, то измерение должно быть одно - Сотрудник. Ну или вот в моей типовой УПП в организацию пишется Головная организация, а структурная принадлежность разруливается реквизитом ОбособленноеПодразделение. До сотрудников в стандартных регистрах работников были измерения Физлицо и Приказ(о приеме), что тоже создавало трудности с крайним отбором по человеку. |
|||
31
Обработка
18.07.14
✎
07:00
|
(30) ДА, все это отлично понял. Мня смутило "Вот это мощно".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |