Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549

Длительность рабочего дня на основе данных автоматической фиксации

17.12.2017, 12:22. Показов 1763. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте все! Руководство озадачило реализовать в цехе такую функцию как автоматическое ведение табеля.
На входе в производственное помещение планируется установить сканер, всем выдается пропуск с QR кодом и работники сами в начале рабочего дня и по окончании фиксируют время своего пребывания на рабочем месте. Сразу скажу, что всякие приходы - уходы в другие цеха в рабочее время фиксироваться не будут, только начало и окончание рабочего дня.
В связи с этим вопрос, как правильно должен быть настроен сканер, чтобы он работал все время в режиме ожидания, как должна быть построена таблица куда будут записываться данные.
В моем случае видимо будет достаточно 3 полей в таблице - [ФИО][Дата][Время]. а далее уже придется видимо приводить данные к классическому виду табеля для отправки в отдел персонала.
Подскажите, может кто-то реализовывал что-либо подобное, возможно ссылки есть интересные или примеры, все будет полезно.
СПАСИБО
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.12.2017, 12:22
Ответы с готовыми решениями:

На основе данных, введенных в ячейки рабочего листа, построить сводную таблицу
помогите пожалуйста разработать программу, которая на основе данных, введенных в ячейки рабочего листа, строит сводную таблицу.Данные могут...

Проблема с автоматической установкой рисунка для рабочего стола
В версии системы Microsoft Windows XP Professional 2008 Edition (у меня обновление от июня 08 года) не хотят ставиться обои автоматом из...

Ошибка фиксации транзакции базы данных
Здравствуйте! Ситуация следующая: При выполнении следующего кода ошибок не возникает и данные добавляются: Используется: MS SQL...

16
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
17.12.2017, 12:43
Цитата Сообщение от Braser Посмотреть сообщение
В моем случае видимо будет достаточно 3 полей в таблице - [ФИО][Дата][Время]
Должно быть также логическое поле Вход/Выход. 2 поля [Дата] и [Время] лучше объединить в одно [ДатаВремя]. Вместо ФИО конечно КодФИО. Ну и счетчик-ключ.

Непонятно как отличить выход из цеха в другой цех от выхода за пределы завода. Ведь работник в течение дня может по рабочим мотивам или по собственным нуждам выехать и вернуться. Будет ли это входить в учет?

Но вообще говоря Вам светит много дополнительных развязок. Например, сканер не работал какое-то время, работник зашел или вышел и парного времени входа/выхода уже нет. Здесь должны быть административные соглашения.
0
459 / 246 / 15
Регистрация: 29.10.2014
Сообщений: 1,084
17.12.2017, 19:28
Цитата Сообщение от Braser Посмотреть сообщение
всякие приходы - уходы в другие цеха в рабочее время фиксироваться не будут
Есть некая табл, куда 7 утра записаны все работн цеха, кот д.быть на этот день. Если пришел до 8 час-из табл вон, а если не пришел до 17 час-отметка не пришел, или пришел позже - время прибытия. Ну исходя из этого - Ваше творчество + требования руководства.

Добавлено через 1 час 54 минуты
Добавлю, в этой "таблице оперативных сведений" поля всего два-код работника и время, остальное-программа обработки.

Добавлено через 23 секунды
да, и + код
0
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
17.12.2017, 22:05  [ТС]
Немного проясню еще ситуацию в связи с прочитанным. Это не совсем система контроля входа выхода с предприятия, это скорее вспомогательная, дублирующая система учета, которая по задумке будет основана на заинтересованности работника в более точном учете времени его пребывания на работе. Такая необходимость возникла в связи стем, что уже неоднократно подавался неактуальный табель с потерей рабочих часов и соответственно потерей оплаты за них. Т.е. мастер чего то где то пометил по быстрому, потом забыл внести в табельи таких подобных случаев уже несколько. Сверится с главной пропускной, которая на проходной не всегда возможно, причин я не знаю почему так, то ли данные теряются периодически из за сбоев , может еще что, не суть важно. Здесь интерес самого работника зафиксировать время своей работы. Как этот процесс будет регламентироваться имеется пока абстрактное представление, на данный момент нужно решить техническую сторону задачи.

Добавлено через 6 минут
Скорее всего, точка контроля будет дополнена камерой против фокусников, которые за себя и того парня, но это уже не моя забота.
Думаю что интервал будет считаться по первой и последней записи каждого работника за сутки, потому как могут работать и 8 часов и 12 и больше. Примерно такая ситуация.

Добавлено через 8 минут
. Например, сканер не работал какое-то время, работник зашел или вышел и парного времени входа/выхода уже
Видимо будет висеть рядом со сканером монитор, чтобы работник видел что время точно зафиксировалось, по виду нужно что то типа расписания в аэропорту пришел -пикнул, высветилось время прихода и фамилия, пошел с работы, пикнул высветилось начало конц интервал. Такая вот фантастика

Добавлено через 1 минуту
Если сканер не цепляет, сразу доложат о неисправности
0
459 / 246 / 15
Регистрация: 29.10.2014
Сообщений: 1,084
17.12.2017, 22:23
Цитата Сообщение от Braser Посмотреть сообщение
Немного проясню еще ситуацию в связи с прочитанным
работник может уйти с работы и с другого участка. Время ухода с работы-это п/я. А в цехе д.быть ясно, кто д.быть. Пришел-отметился, даже без сканера. Ваша задача (ведь есть отпуска, свадьбы и проч.) заполнять ежедневно упомянутую табл. (в 00 час. автоматом). Для начала создания БД предлаг схема ясна.
0
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
18.12.2017, 06:12  [ТС]
Цитата Сообщение от commun Посмотреть сообщение
может уйти с работы и с другого участка
это скорее исключение чем правило. но об этом можно сообщить мастеру или начальнику цеха на след.день, чтобы соответствующие отметки были сделаны.

Цитата Сообщение от commun Посмотреть сообщение
Пришел-отметился, даже без сканера.
нет такого правила, люди на мастера и начальника цеха надеются, а у них как показывает практика и без того забот хватает, раз уж возникла мысль этот процесс автоматизировать

Цитата Сообщение от commun Посмотреть сообщение
заполнять ежедневно упомянутую табл. (в 00 час. автоматом).
праильно, о том и речь.

находим запись самую раннюю и самую позднюю за дневной отрезок времени и записываем

но в то же время нужно учесть смены с переходом суток, ибо такие тоже бывают

Добавлено через 5 минут
Цитата Сообщение от mobile Посмотреть сообщение
логическое поле Вход/Выход. 2 поля [Дата] и [Время] лучше объединить в одно [ДатаВремя]. Вместо ФИО конечно КодФИО.
а как предложенная схема должна работать ?

Добавлено через 35 секунд
с объединением даты и времени вообще не пойму в чем смысл...
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
18.12.2017, 09:08
Цитата Сообщение от mobile Посмотреть сообщение
Вместо ФИО конечно КодФИО
Вместо ФИО табельный номер или кодТН
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
18.12.2017, 09:20
Цитата Сообщение от Braser Посмотреть сообщение
с объединением даты и времени вообще не пойму в чем смысл...
Ближайший аналог это рубли и копейки. Стоимость это сумма целой и дробной частей. Хранить рубли и копейки в отдельных полях не лучший выбор. Точно также и датой/временем. Дата целая часть поля, время дробная и держать их в одном поле лучшее решение в большинстве случаев.

Цитата Сообщение от Braser Посмотреть сообщение
а как предложенная схема должна работать ?
У Вас есть разные смены, в том числе с переходом на другой день. Если не указывать Вход/Выход, то Вам сложно будет понять/вычислить в запросе сумму отработанных часов. Впрочем, и без перехода на сутки, без этого поля будет путаница. А с ним в запросе находим на данный день дату/время входа и дальше ищем ближайшее время выхода. Разность - отработанное время. В отчетах за месяц еще проще: находим сумму дат/времен выхода, минусуем сумму дат/времен входа и получаем число отработанных часов за месяц.
1
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
18.12.2017, 11:02  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
Если не указывать Вход/Выход
получается при сканировании должно проверяться условие вход это или выход, т.е. по человеку должны анализироваться все точки регистрации за месяц* и если получаем нечет - то это вход, если чет -значит выход, соответственно записывается значение в поле.Правильно я понимаю?

*(предполагаю хранить данные более чем за месяц в таблице регистрации нецелесообразно, по окончании периода 30 или 31 числа- запись табеля в формат EXCEL(для отдела персонала) и возможно добавление в архив, затем очистка. Если кому надо потом старое помянуть пусть в архиве и смотрятЪ)

Цитата Сообщение от mobile Посмотреть сообщение
У Вас есть разные смены, в том числе с переходом на другой день.
А если допустим ставить отработанные по факту? Не продолжительность смены а часы за сутки. Допустим начало смены вчера в 22-00. До 24-00 человек отработал 2 часа, они пишутся на вчера, остальные часы с 00-00 до 07-00 пишутся на сегодняшнее число. Хотя тогда наверное сложно будет считать в дни перехода месяцев... потому как ночная смена с 31 на первое началась еще 31 числа и должна быть получается 31 числом закрыта. опять подводные КаМнИ...

Цитата Сообщение от mobile Посмотреть сообщение
сумму дат/времен выхода, минусуем сумму дат/времен входа
с этим чето вобще недогнал, это как???

Добавлено через 1 минуту
Цитата Сообщение от mobile Посмотреть сообщение
на данный день дату/время входа и дальше ищем ближайшее время выхода
кстати получается дата вход должна искаться не только на сегодня но и на вчера, вернее если сегодня даты входа нет, то она была вчера.... во как

Добавлено через 2 минуты
Цитата Сообщение от mobile Посмотреть сообщение
держать их в одном поле лучшее решение в большинстве случаев
а в каком виде тогда оно должно быть записано? "10.11.2017;18:22:07" - так?
0
459 / 246 / 15
Регистрация: 29.10.2014
Сообщений: 1,084
18.12.2017, 12:42
Цитата Сообщение от Braser Посмотреть сообщение
смены с переходом суток, ибо такие тоже бывают
я Вашего распорядка не знаю, но д.быть один момент на сутки, когда заполн оперативная таблица, если моментов три, то и таблиц д.быть три. При чем здесь 00 час. или 8 утра, "отметился" в русск.яз. означает "его учли (отметили)"? Вы по делу, или эту тему обсуждать с Вами я не способен.Затихаю.
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
18.12.2017, 15:16
Braser, смотрите вложение. В таблице InOut времена входа выхода, в т.FIO сотрудники. Запрос ЧасовПоМесяцам дает количество часов, минут по месяцам по сотрудникам.
В Module1 процедура заполнения таблицы InOut случайными временами по сотрудникам, почти случайными. Записаны только рабочие дни без суббот и воскресений (хотя это и неважно)
В модуле РабочиеЧасы две публичные функции для расчета в случаях когда в начале месяца человек еще не вышел с работы и когда в конце месяца еще не ушел до конца суток. В частности, для проверки, для 1-го сотрудника удалено время входа в начале декабря, а для второго время выхода тоже в декабре.
Вложения
Тип файла: rar ВходВыход.rar (20.3 Кб, 26 просмотров)
1
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
19.12.2017, 07:07  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
Запрос ЧасовПоМесяцам
почему-то пишет неопределенная функция "FirstDay" в выражении...

Добавлено через 13 минут
Цитата Сообщение от mobile Посмотреть сообщение
Записаны только рабочие дни без суббот и воскресений
у нас нет суббот и воскресений в смысле выходных, график скользящий

Добавлено через 1 час 2 минуты
Цитата Сообщение от mobile Посмотреть сообщение
В Module1 процедура заполнения таблицы InOut
Подскажите пожалуйста, как мне связать с событиями элементов формы эту процедуру...
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
19.12.2017, 14:38
Цитата Сообщение от Braser Посмотреть сообщение
почему-то пишет неопределенная функция "FirstDay" в выражении...
Виноват, не тот файл скинул.

Цитата Сообщение от Braser Посмотреть сообщение
Подскажите пожалуйста, как мне связать с событиями элементов формы эту процедуру...
Никак. Это ж только для случайного заполнения таблицы датами, временем. Не обращайте на нее внимания. Я удалил этот модуль совсем.

Цитата Сообщение от Braser Посмотреть сообщение
у нас нет суббот и воскресений в смысле выходных, график скользящий
Не имеет значения. Главное заполненные поля таблицы кодами сотрудников, датой/временем, и признаком входа/выхода.

Braser, я от руки заполнил 3, 4 и 5 месяц 2018 для проверок. В них по одной, две записи в основном для проверки концевых эффектов (человек зашел в конце пред.месяца, а вышел в начале следующего месяца). Можете сами заполнить для проверок интересующих ситуаций
Вложения
Тип файла: rar ВходВыход_v2.rar (17.7 Кб, 15 просмотров)
1
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
20.12.2017, 07:48  [ТС]
Просмотрел, впечатляет... только тетенькам из отдела персонала вряд ли можно объяснить, как я получил эти данные за месяц. Им, все таки, потребуется табель классического вида с ежедневной(суточной) раскладкой. Скорее данный вид обработки информации пригоден и необходим для использования в годовых отчетах в ПЭО.

Для классического вида должна быть запись времени на каждые сутки методом отсечения в 00:00. Допустим пришел человек на работу в 20-00 1 числа, 4 часа пишется на 1 число, остальные часы смены записываются уже на 2 число с 00:00 до момента выхода. С переходом между месяцами скорее всего должно быть так - оплата по фактическому Т отработанному за месяц, до последнего дня месяца, до точки 00:00. Чего объяснять, вы и сами все прекрасно понимаете, другое дело, что я не совсем понимаю удобство хранения в поле данных в формате Дата + время и как оттуда вычленить то, что нужно для табеля в ежедневном отображении или ежесуточном, как правильнее сказать...
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
20.12.2017, 18:20
Лучший ответ Сообщение было отмечено Braser как решение

Решение

Цитата Сообщение от Braser Посмотреть сообщение
Для классического вида должна быть запись времени на каждые сутки методом отсечения в 00:00. Допустим пришел человек на работу в 20-00 1 числа, 4 часа пишется на 1 число, остальные часы смены записываются уже на 2 число с 00:00 до момента выхода. С переходом между месяцами скорее всего должно быть так - оплата по фактическому Т отработанному за месяц, до последнего дня месяца, до точки 00:00.
Так и сделано. Для удобства сделал еще запрос, типа график посещений, по дням выбранного месяца. Выбираете в форме год, месяц, нажимаете кнопку получаете график посещений по дням выбранного месяца.
Вложения
Тип файла: rar ВходВыход_v2.rar (25.6 Кб, 37 просмотров)
1
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
21.12.2017, 06:12  [ТС]
Классно, то что надо! Можно некоторые соображения высказать, это не в коем случае не критика, так заметил некоторые не совсем понятные вещи и озвучить возникший вопрос.

1. В табеле, где вывод данных ежедневно за месяц - минуты отработанного времени в некоторых столбцах отражаются не 18:06 допустим, а 18:6 ...это не критично конечно,а немного непривычно смотрится.

2 ...и вот не совсем понимаю расстановку логического поля. Как построить алгоритм присвоения этого флага, чтобы определить при наступлении события, что это именно вход, а не выход или наоборот.

Как я мыслю, получается:если предыдущее значение "True" отсутствует(вообще в принципе), или предыдущее значение поля для этого ID "False" это вход, НО бывают ситуации... уехал человек с территории на грузовике, в качестве грузчика и решил уже не возвращаться сегодня на предприятие. т.е. фактически он как-будто и не выходил. Здесь нужно построить условие, при котором будет производится извещение о данном факте. Хорошо когда стоит сканера, я думаю что их как-то можно распределить по операциям - один вход, другой - выход.такие события можно отловить. А как быть если сканер 1 ?
Еще как вариант, работник ЗАБЫЛ, что нужно отметиться, причин сто, от склероза до внезапных родов, ну мало ли что в жизни бывает... Значит нужно установить предел продолжительности смены, при котором длительное отсутствие выхода более например 16 часов считается ошибкой и соответственно подлежит проверке.
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
21.12.2017, 11:51
Цитата Сообщение от Braser Посмотреть сообщение
1. В табеле, где вывод данных ежедневно за месяц - минуты отработанного времени в некоторых столбцах отражаются не 18:06 допустим, а 18:6
Надо изменить немного SQL запроса РабочиеЧасы. В Transform сформатировать выражение
SQL
1
2
3
4
5
TRANSFORM FIRST(Часы & ":" & RIGHT("00" & Минуты,2))
SELECT idFIO, FIO
FROM DaysHours
GROUP BY idFIO, FIO
PIVOT DAY(Дата)
Я мог бы сделать проверку несоответствия входов/выходов. Но только в том случае, если контроллер входа/выхода имеет раздельные датчики на вход и выход. Если датчик только один и не указывает направления, то может быть бесчисленное количество ошибок. Например за день зафиксировали 2 события для одного сотрудника. Казалось бы первое вход, последнее выход. А на самом деле первое выход, второе вход. Или оба события выход, или оба выход. Вам надо предложить руководству брать сканер с контроллером с двумя датчиками, раздельно на вход и выход. Иначе смысл автоматической фиксации пропадает, все будут озабочены поиском ошибок и разбором скандалов.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2017, 11:51
Помогаю со студенческими работами здесь

Таймер рабочего дня
Добрый день) Подскажите пожалуйста как реализовать такой таймер: В 08:00 таймер автоматически запускается и зависимо от системного...

Создать БД планирования рабочего дня
1. БД должна состоять из4-5 таблиц. В таблицах должны быть реализованы отношения один к одному, один ко многим, многие ко многим. 2. В...

Продолжительность рабочего дня в Excel
Привет всем! Помогите пожалуйста решить в Excel следующие задачи: 1. В столбце Продолжительность работы, час рассчитать...

Определение времени окончания рабочего дня
Доброго времени суток! Необходимо определить время окончания рабочего дня(в часах и минутах), если известны время его начала(в часах и...

Смоделировать работу магазина в течение 12-часового рабочего дня
В магазине расположены три отдела и общая касса. Покупатели заходят в мага-зин каждые 5 2 мин и направляются в один из отделов с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru