Имя: Пароль:
1C
 
Запрос к виртуальной таблице
0 ETurdymuratov
 
27.08.14
09:56
Привет всем!
Есть запрос:

ВЫБРАТЬ РАЗЛИЧНЫЕ
    РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
    РаботникиОрганизацийСрезПоследних.Должность,
    "1" КАК Колич
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаН, ) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации В ИЕРАРХИИ(&Подр)
    И РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &Уволен

СГРУППИРОВАТЬ ПО
    РаботникиОрганизацийСрезПоследних.Сотрудник,
    РаботникиОрганизацийСрезПоследних.Должность

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    РаботникиОрганизацийСрезПоследних.Сотрудник,
    РаботникиОрганизацийСрезПоследних.Должность,
    "1"
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаК, ) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации В ИЕРАРХИИ(&Подр)
    И РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &Уволен
АВТОУПОРЯДОЧИВАНИЕ

Есть сотрудник Иванов, которого приняли 6 августа в бригаду № 1, затем  было перемещение 18 августа. Так вот, если задать период с 25-07-2014 по 26-08-2014 Сотрудник не попадает в результат запроса. В регистре сведений РаботникиОрганизаций есть соответственно две записи по Иванову.
Помогите правильно написать запрос. Спасибо за внимание.
1 Ненавижу 1С
 
гуру
27.08.14
09:58
в первом срезе его нет вообще
а во втором он не попадает в нужное подразделение
2 ETurdymuratov
 
27.08.14
09:59
Т.е. попадает одна запись, когда сотрудник уже переведен в бригаду №16 если задаю параметр &Подр = Бригада №16
3 ETurdymuratov
 
27.08.14
10:00
(1) Вот нужно чтобы в первый срез попадал, помогите плиз переписать запрос правильно
4 Ёпрст
 
27.08.14
10:00
Ну и в каком подразделении сейчас иванов и каков статус ПричинаИзмененияСостояния  ?
5 Ёпрст
 
27.08.14
10:00
(3) как он туда попадёт, если срез за 25 июля, а иванов появился в Августе, мот просвятишь ?
6 Крошка Ру
 
27.08.14
10:06
(3) А в чем великий смысл такого запроса? Ты делаешь срез на одну дату, потом делаешь срез на другую дату, потом объединяешь. Ты точно это задумывал? Потому что, те записи которые были до ДатыН задвоятся.
(уродское название, кстати, кто тебе мешал назвать её ДатаНачалаПериода?)
7 ETurdymuratov
 
27.08.14
10:06
Ивано сейчас в Бригаде 16 причина Кадровое перемещение организаций
8 Ёпрст
 
27.08.14
10:08
(7) круто, а в &Подр че ? Бригада № 48 поде, да ?
9 ETurdymuratov
 
27.08.14
10:10
(5) У нас есть табель не типовой, у него в качестве параметра передаются даты с 25 по 26 и подразделение, получается этот самый Иванов попадает в табель№2 как сотрудник Бригады№16(гуд), нужно еще чтобы он попал в табель№1 но как сотрудник Бригады№6 ведь он отработал в бригаде№1
10 ETurdymuratov
 
27.08.14
10:11
ой пардон... запутал. (5) У нас есть табель не типовой, у него в качестве параметра передаются даты с 25 по 26 и подразделение, получается этот самый Иванов попадает в табель№2 как сотрудник Бригады№16(гуд), нужно еще чтобы он попал в табель№1 но как сотрудник Бригады№1 ведь он отработал в этой бригаде
11 ETurdymuratov
 
27.08.14
10:12
(10) с 6 августа по 18 августа отработал в Бригаде№1
12 Ёпрст
 
27.08.14
10:16
Оне сами не знают чо хочютъ :)
13 ETurdymuratov
 
27.08.14
10:26
(12) они знают)
14 ETurdymuratov
 
27.08.14
10:44
Хочу при нажатии кнопки "Заполнить" в Табеле№1 чтобы появлялся сотрудник Иванов как отработавший в Бригаде№1 с 6 августа по 18 августа(параметры: ДатаН=25/07/2014; &ДатаК=26/08/2014; Подр=Бригада1; Уволен<>Перечисления.ПричиныИзмененияСостояния.Увольнение). А при нажатии кнопки "Заполнить" в Табеле№2 чтобы появлялся сотрудник Иванов как отработавший в Бригаде№16 с 18 августа по 26 августа(параметры: ДатаН=25/07/2014; &ДатаК=26/08/2014; Подр=Бригада16; Уволен<>Перечисления.ПричиныИзмененияСостояния.Увольнение).
15 Ёпрст
 
27.08.14
10:45
(14) а теперь подумай, на досуге, что август идёт опосля ИЮЛЯ..
и 6 августа никогда не попадёт в период 25 июля в срез последних.. фирштейн ?
16 hhhh
 
27.08.14
10:47
(14) вам надо не срез последних, а тупо брать сам регистр за весь период от начала до конца.
17 ETurdymuratov
 
27.08.14
10:48
(15) Это я понимаю! Но как можно переделать запрос? чтобы получить тот результат.
18 ETurdymuratov
 
27.08.14
10:49
(16) Вы предлагаете непосредственно к самому регистру обратится, сделать отбор по этому сотруднику и смотреть кем он был в этом периоде? Как то так?
19 Ёпрст
 
27.08.14
10:57
(18) да, т.е получить все записи за период + объединить со  срезом последних на начальную дату, чтоб не потерять записи на начало периода.
20 ETurdymuratov
 
27.08.14
12:51
(19) Благодарю, получилось как то так:
ВЫБРАТЬ РАЗЛИЧНЫЕ
    РаботникиОрганизаций.Сотрудник КАК Сотрудник,
    РаботникиОрганизаций.Должность,
    "1" КАК Колич
ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
    РаботникиОрганизаций.ПричинаИзмененияСостояния <> &Уволен
    И РаботникиОрганизаций.Период МЕЖДУ &ДатаН И &ДатаК
    И РаботникиОрганизаций.ПодразделениеОрганизации В ИЕРАРХИИ(&Подр)

СГРУППИРОВАТЬ ПО
    РаботникиОрганизаций.Сотрудник,
    РаботникиОрганизаций.Должность

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    РаботникиОрганизацийСрезПоследних.Сотрудник,
    РаботникиОрганизацийСрезПоследних.Должность,
    "1"
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаН, ) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации В ИЕРАРХИИ(&Подр)
    И РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &Уволен

СГРУППИРОВАТЬ ПО
    РаботникиОрганизацийСрезПоследних.Сотрудник,
    РаботникиОрганизацийСрезПоследних.Должность

АВТОУПОРЯДОЧИВАНИЕ