Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Есть запрос:
ВЫБРАТЬ ДанныеПроходныхКОДОС.Сотрудник КАК Сотрудник, ДанныеПроходныхКОДОС.ТабельныйНомер КАК ТабельныйНомер, ДанныеПроходныхКОДОС.График КАК График, ДанныеПроходныхКОДОС.ПодразделениеОрганизации КАК ПодразделениеОрганизации, ДанныеПроходныхКОДОС.Период1 КАК Период1, ДанныеПроходныхКОДОС.Период КАК ВремяВход ИЗ РегистрСведений.ДанныеПроходныхКОДОС КАК ДанныеПроходныхКОДОС ГДЕ ДанныеПроходныхКОДОС.Период МЕЖДУ &ПериодНачало И &ПериодКонец И ДанныеПроходныхКОДОС.Сотрудник В(&Сотрудник) И (ДанныеПроходныхКОДОС.Событие = "Вход" ИЛИ ДанныеПроходныхКОДОС.Событие = "Въезд")
Результат:
Второй запрос:
ВЫБРАТЬ РАЗЛИЧНЫЕ ДанныеПроходныхКОДОС.Период КАК ВремяВыход, ДанныеПроходныхКОДОС.Сотрудник КАК Сотрудник, ДанныеПроходныхКОДОС.Период1 КАК Период1 ИЗ РегистрСведений.ДанныеПроходныхКОДОС КАК ДанныеПроходныхКОДОС ГДЕ ДанныеПроходныхКОДОС.Период МЕЖДУ &ПериодНачало И &ПериодКонец И ДанныеПроходныхКОДОС.Сотрудник В(&Сотрудник) И (ДанныеПроходныхКОДОС.Событие = "Выход" ИЛИ ДанныеПроходныхКОДОС.Событие = "Выезд")
Результат:
Вопрос: Какие должны быть связи между итими запросами чтобы получилось: Сотрудник|ВремяВхода|ВремяВыхода|День
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(sava1 @ 21.09.15, 12:45)
А видеть это как надо?
"Это" - это что? код или то что сотрудник может зайти и выйти несколько раз?
Вот код:
ВЫБРАТЬ ДанныеПроходныхКОДОС.Сотрудник, ДанныеПроходныхКОДОС.ТабельныйНомер, ДанныеПроходныхКОДОС.График, ДанныеПроходныхКОДОС.ПодразделениеОрганизации, ДЕНЬ(ДанныеПроходныхКОДОС.Период1) КАК День, МИНИМУМ(ДанныеПроходныхКОДОС.Период) КАК ВремяВход, NULL КАК ВремяВыход ИЗ РегистрСведений.ДанныеПроходныхКОДОС КАК ДанныеПроходныхКОДОС ГДЕ ДанныеПроходныхКОДОС.Период МЕЖДУ &ПериодНачало И &ПериодКонец И ДанныеПроходныхКОДОС.Сотрудник В(&Сотрудник) И (ДанныеПроходныхКОДОС.Событие = "Вход" ИЛИ ДанныеПроходныхКОДОС.Событие = "Въезд")
СГРУППИРОВАТЬ ПО ДанныеПроходныхКОДОС.Сотрудник, ДанныеПроходныхКОДОС.ТабельныйНомер, ДанныеПроходныхКОДОС.ПодразделениеОрганизации, ДанныеПроходныхКОДОС.График, ДЕНЬ(ДанныеПроходныхКОДОС.Период1)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ ДанныеПроходныхКОДОС.Сотрудник, ДанныеПроходныхКОДОС.ТабельныйНомер, ДанныеПроходныхКОДОС.График, ДанныеПроходныхКОДОС.ПодразделениеОрганизации, ДЕНЬ(ДанныеПроходныхКОДОС.Период1), NULL, МАКСИМУМ(ДанныеПроходныхКОДОС.Период) ИЗ РегистрСведений.ДанныеПроходныхКОДОС КАК ДанныеПроходныхКОДОС ГДЕ ДанныеПроходныхКОДОС.Период МЕЖДУ &ПериодНачало И &ПериодКонец И ДанныеПроходныхКОДОС.Сотрудник В(&Сотрудник) И (ДанныеПроходныхКОДОС.Событие = "Выход" ИЛИ ДанныеПроходныхКОДОС.Событие = "Выезд")
СГРУППИРОВАТЬ ПО ДанныеПроходныхКОДОС.Сотрудник, ДанныеПроходныхКОДОС.ПодразделениеОрганизации, ДанныеПроходныхКОДОС.ТабельныйНомер, ДанныеПроходныхКОДОС.График, ДЕНЬ(ДанныеПроходныхКОДОС.Период1)
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Посмотрите пожалуйста первый пост. Без обид, думал что будет понятно. Как есть сейчас - на картинке, а ниже текстом написано как мне надо. Красным квадратом выделено то что сотрудник может входить и выходить несколько раз за рабочий день.
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(sava1 @ 21.09.15, 12:59)
Нужно показывать все входы и выходы?
Нужно получить табель с отработанным временем.
Сотрудник может войти и выйти один раз, а может несколько раз войти и выйти. нужно посчитать время нахождения его на предприятии, т.е. от выхода2 отнять вход2 = время2, от выхода1 отнять вход1 = время1
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(sava1 @ 21.09.15, 13:06)
Когда-то обсуждалась эта тема и я предлагал - время входа регистрировать с минусом - в итоге отработанное время находится простым суммированием.
Оно и так найдется простым суммированием, тут дело то в другом. По моему без разницы с минусом писать или без если не получается в выборке получить запись Сотрудник/ВремяВход/ВремяВыхода/День
Select ....... SUM(CASE WHEN ДанныеПроходныхКОДОС.Событие = "Вход" ИЛИ ДанныеПроходныхКОДОС.Событие = "Въезд") THEN -Период ELSE Период END) as OtrabVremya
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(sava1 @ 21.09.15, 13:17)
Select ....... SUM(CASE WHEN ДанныеПроходныхКОДОС.Событие = "Вход" ИЛИ ДанныеПроходныхКОДОС.Событие = "Въезд") THEN -Период ELSE Период END) as OtrabVremya
Сенкс!Попробую
Цитата(sava1 @ 21.09.15, 13:17)
Select ....... SUM(CASE WHEN ДанныеПроходныхКОДОС.Событие = "Вход" ИЛИ ДанныеПроходныхКОДОС.Событие = "Въезд") THEN -Период ELSE Период END) as OtrabVremya
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!