|   |   | 
| 
 | Разжуйте раз и навсегда СрезПоследних или выбор по максимуму периода? | ☑ | ||
|---|---|---|---|---|
| 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) ДА, все это отлично понял. Мня смутило "Вот это мощно".     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |