Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как получить Срез последних.

Как получить  Срез последних.
Я
   ЗлаяЗая
 
18.03.19 - 16:21
Нужно получить значения Должности и Подразделения на текущую дату.    
        Запрос= Новый Запрос;
    Запрос.Текст=    "ВЫБРАТЬ
                     |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
                     |    РаботникиОрганизацийСрезПоследних.Должность,
                     |    РаботникиОрганизацийСрезПоследних.Сотрудник
                     |ИЗ
                     |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Дата, ) КАК РаботникиОрганизацийСрезПоследних";
    Запрос.УстановитьПараметр("Дата",НачалоДня(ТекущаяДата()));
    Сотрудники=Запрос.Выполнить().Выгрузить();
А у меня выгружает практически все. Что не так сделала?
ЗЫ. Знаю, что фотку не выложила. А еще?
 
 
   runoff_runoff
 
1 - 18.03.19 - 16:27
поле "РаботникиОрганизацийСрезПоследних.Период" вставьте для чистоты эксперимента
   exwill
 
2 - 18.03.19 - 16:36
(0) Выгружаются все сотрудники с должностями и подразделениями?
   Ns33
 
3 - 18.03.19 - 16:43
ГДЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &Увольнение

Тут возможно потребуется расширить условие на ПричинаИзмененияСостояния
   yavasya
 
4 - 18.03.19 - 17:14
(0) ну правильно, сделай сначала срез последних по сотруднику (таблица сотрудник, период), помести в вт, затем соедени вт с регистром по сотрунику и периоду и будет тебе счастье
   Вафель
 
5 - 18.03.19 - 17:16
так в ЗУПе нужно же их апи использовать
   lodger
 
6 - 18.03.19 - 17:18
(0) все дело в том, что надо заглянуть в РС и состав измерений. много думать что такое срез последних. потом ругать автора этого РС до 7 го колена родства.
   Greeen
 
7 - 18.03.19 - 18:38
Запрос= Новый Запрос; 
    Запрос.Текст=    "ВЫБРАТЬ 
                     |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации, 
                     |    РаботникиОрганизацийСрезПоследних.Должность, 
                     |    РаботникиОрганизацийСрезПоследних.Сотрудник 
                     |ИЗ 
                     |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Дата, Сотрудник  = &Сотрудник) КАК РаботникиОрганизацийСрезПоследних"; 
    Запрос.УстановитьПараметр("Дата",НачалоДня(ТекущаяДата())); 
    Запрос.УстановитьПараметр("Сотрудник",Справочники.СотрудникиОрганизаций.НайтиПоНаименованию("ЗлаяЗая"));
   Fram
 
8 - 18.03.19 - 22:11
(7) ИМХО, под "все" она имела ввиду не всех сотрудников, а все их должности и подразделения
   ЗлаяЗая
 
9 - 19.03.19 - 08:55
Измерения- Физ.Лицо, остальное в ресурсах.
Нужно по каждому сотруднику получить последнее состояние должности и подразделения.
   sqr4
 
10 - 19.03.19 - 09:13
(9) сотрудник или физлицо. Про фото надо напоминать?
 
 Рекламное место пустует
   ЗлаяЗая
 
11 - 19.03.19 - 09:16
(10) физ.лицо.
про фото сама помню, повинилась в сабже :)
   sqr4
 
12 - 19.03.19 - 09:19
А это ЗУП 2.5?
   ЗлаяЗая
 
13 - 19.03.19 - 09:19
"По каждой комбинации измерений будет найдена наиболее поздняя запись, но не более поздняя, чем указанная дата"
У меня измерение одно. Значит должна отбирать по каждому человеку 1 запись?
   ЗлаяЗая
 
14 - 19.03.19 - 09:20
(12) это УПП 1.3
   sqr4
 
15 - 19.03.19 - 09:22
Нет под рукой к сожалению. Одному физ лицу может соответствовать несколько сотрудников
   ЗлаяЗая
 
16 - 19.03.19 - 09:25
блин.... запрос по РС РаботникиОрганизации, а структуру смотрю у РС Работники.
Эх, понедельник  :)
   sqr4
 
17 - 19.03.19 - 09:26
Причем оба могут работать, а может быть и так что увольнялся и принимался заново, соответственно будет несколько записей, поэтому надо выбрать как я понимаю только работающих.
   sqr4
 
18 - 19.03.19 - 09:26
Блин первая часть стерлась. Одному физ лицу может множество сотрудников соответствовать.
   sqr4
 
19 - 19.03.19 - 09:27
По вашему запросу выведет всех и работающих и не работающих, выше уже подсказали как это убрать. Осталось уточнить про совместительство, нужно его выводить или нет.
   ЗлаяЗая
 
20 - 19.03.19 - 09:39
Запрос= Новый Запрос;
    Запрос.Текст=    "ВЫБРАТЬ РАЗЛИЧНЫЕ
                     |    РаботникиОрганизаций.Сотрудник
                     |ПОМЕСТИТЬ СписокСотр
                     |ИЗ
                     |    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
                     |;
                     |
                     ////////////////////////////////////////////////////////////////////////////////

                     |ВЫБРАТЬ
                     |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
                     |    РаботникиОрганизацийСрезПоследних.Должность,
                     |    РаботникиОрганизацийСрезПоследних.Сотрудник,
                     |    РаботникиОрганизацийСрезПоследних.Сотрудник.Код КАК ТабНомер
                     |ИЗ
                     |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Дата, ??????????) КАК РаботникиОрганизацийСрезПоследних,
                     |    СписокСотр КАК СписокСотр";
А как мне во втором параметре СрезПоследних указать, что отбор только по СписокСотр должен Быть?
   Фрэнки
 
21 - 19.03.19 - 09:44
Запрос= Новый Запрос;
    Запрос.Текст=    "ВЫБРАТЬ РАЗЛИЧНЫЕ
                     |    РаботникиОрганизаций.Сотрудник
                     |ПОМЕСТИТЬ СписокСотр
                     |ИЗ
                     |    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
                     |;
                     |
                    ////////////////////////////////////////////////////////////////////////////////


                     |ВЫБРАТЬ
                     |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
                     |    РаботникиОрганизацийСрезПоследних.Должность,
                     |    РаботникиОрганизацийСрезПоследних.Сотрудник,
                     |    РаботникиОрганизацийСрезПоследних.Сотрудник.Код КАК ТабНомер
                     |ИЗ
                     |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Дата, Сотрудник В (Выбрать Сотрудник ИЗ СписокСотр)) КАК РаботникиОрганизацийСрезПоследних";
   sqr4
 
22 - 19.03.19 - 09:46
Первый запрос не даст нужного результата, сотрудники будут разные. Допустим Иванов ИИ(код 001) пришел - уволился, затем опять принялся на работу то у НОВОГО сотрудника Иванов ИИ будет код к примеру 002.
(3) указал как убрать уволенных сотрудников, это уберет часть дублей
   sqr4
 
23 - 19.03.19 - 09:52
После этого останутся только совместители. Т.е человек может в одной организации работать на нескольких должностях, но основное место работы у него будет одно. И тут уже в зависимости от поставленной вам задачи, нужно будет либо убирать совместителей либо оставлять так как есть.
http://info1c.com/?p=802
Для наглядности
   Фрэнки
 
24 - 19.03.19 - 09:54
(23) я думаю, что в данном конкретном топике вопрос больше из области "правильности" составления запросов, синтаксиса и приемов написания текстов запросов, чем о самой логике решения конкретной задачи.
   sqr4
 
25 - 19.03.19 - 09:57
(24) вполне может быть
   ЗлаяЗая
 
26 - 19.03.19 - 10:05
(22) в этом регистре только записи при приеме нового сотрудника или при смене у него должности или подразделения, совмещения и увольнения нет.
   sqr4
 
27 - 19.03.19 - 10:06
ПричинаИзмененияСостояния такого ресурса нет*
   ЗлаяЗая
 
28 - 19.03.19 - 10:09
(21) сделала. программ впала в глубокую задумчивость и выходить не собирается :((((
   ЗлаяЗая
 
29 - 19.03.19 - 10:10
+28 если это так долго работает- мне простым перебором быстрее выбрать нужное
   sqr4
 
30 - 19.03.19 - 10:11
(28) А цель этого условия?
   ЗлаяЗая
 
31 - 19.03.19 - 10:12
(30) Нужно по каждому сотруднику получить последнее состояние должности и подразделения.
   sqr4
 
32 - 19.03.19 - 10:18
(31) ваш запрос это делает! Чем не устраивает, текущий результат?
   ЗлаяЗая
 
33 - 19.03.19 - 10:24
(32) мой первоначальный ВСЕ дает, а не последнее.
а запрос из п 21. вообще долго крутился и объявил, что памяти ему не хватает.
 
 
   sqr4
 
34 - 19.03.19 - 10:27
(33) А какая структура у регистра, сделайте скрин, набора измерений и ресурсов, я к сожалению не помню
   Фрэнки
 
35 - 19.03.19 - 10:31
(33) там же не одно измерение определено у этого регистра.
Нужно смотреть на конкретной базе/конфигурации, а держать под руками УПП 1.3 ради простых экспериментов не с руки.
Или раскрывать всю структуру по кусочкам в процессе общения.
Или ждать, когда придет в ветку тот, кто прямо сейчас в УПП смотрит
   ЗлаяЗая
 
36 - 19.03.19 - 10:33
А как тут вставлять?
   Фрэнки
 
37 - 19.03.19 - 10:34
если скрины, то только ссылку можно оставить на скрин, брошенный куда-то еще
   ЗлаяЗая
 
38 - 19.03.19 - 10:36
   ЗлаяЗая
 
39 - 19.03.19 - 10:37
Оно в принципе бодро отработало и при вызове запроса по каждому сотруднику. Но это ж неправильно.
   sqr4
 
40 - 19.03.19 - 10:40
Ну не может тут вывести все записи. Тут выводит последние записи по набору измерений
   ЗлаяЗая
 
41 - 19.03.19 - 11:04
(40) всего 4 измерения
Организация    заполнено, одно и тоже
УдалитьФизлицо пустое
УдалитьПриказ  пустое

получается, что набор измерений один, отличаются только Сотрудником. Т.е. по сути должен отбирать 1 запись. А он не отбирает.
   sqr4
 
42 - 19.03.19 - 11:05
(41) отбирает!!! рядом с сотрудником выведи код и убедись или меня в обратном убеди
   ЗлаяЗая
 
43 - 19.03.19 - 11:09
(42) да вывожу код, тот же :(
   sqr4
 
44 - 19.03.19 - 11:12
т.е сотрудник 1 код 1 подразделение 1
сотрудник 1 код 1 подразделение 2
Так?
   sqr4
 
45 - 19.03.19 - 11:12
И пустых в 1с я пока три типа придумал
   sqr4
 
46 - 19.03.19 - 11:13
Выведи типЗначения для УдалитьФизЛицо и УдалитьПРиказ


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует