Пожалуй, задача получения данных из систем контроля доступа и связи их с кадровыми данными будет актуальна еще очень долгое время, если не постоянно. Сегодня мы рассмотрим получение данных из базы Firebird для СКУД "Сторк" с помощью внешнего источника данных.
Процесс интеграции 1С и баз Firebid рассмотрен множество раз, поэтому просто пробежимся по основным моментам. Первым делом устанавливаем Firebird ODBC, затем подключаем базу через внешние источники данных. Строка подключения: driver={Firebird/InterBase(r) driver};Database=192.168.1.1/3050:D:\SCD17k.fdb;CHARSET=win1251;DIALECT=2.5, тип СУБД: Прочее, имя пользователя: sysdba, пароль: masterkey. Из таблиц нам понадобятся USERS, EVENT_LOG, FIRMS, POSITIONS и READERS. У меня на скриншоте таблиц больше, но для работы хватит и этих.
Теперь можно запускать отчет. Если в вашей базе Сторк в таблице USERS у сотрудников не заполнено поле ID_1C, то перед запуском отчета, необходимо нажать кнопку "Заполнить ID сотрудников", при этом в поле ID_1C будут записаны уникальные идентификаторы сотрудников из базы ЗУП (ну или УПП), эта процедура позволит однозначно идентифицировать сотрудников.
Перед тем, как вы запустите сам отчет, стоит немного рассказать о принципе выборки данных. В силу специфики организации записи данных самого программного продукта "Сторк", данные выбираются следующим образом: из таблицы EVENT_LOG выбираются только события "Проход разрешен" и "Дверь закрыта после прохода", остальные события пропускаются, а из таблицы READERS берутся минимальный "Вход" и максимальный "Выход" в рамках дня, дальше соединяем с таблицей USERS и датами периода.
Теперь запускаем отчет, выбираем период и нажимаем "Сформировать". Отчет заберет данные из внешнего источника и если у сотрудника отработано 0 часов, попробует найти в базе кадровый документ, который объяснит причину его отсутствия на рабочем месте. При нажатой галке "Сотрудники отработавшие меньше 8 часов", будут выведены только те сотрудники, которые не отработали полный день.