UPD 09.04.15
В версии отчета 0.1.4
- честно, уже не помню, что добавил и исправил по сравнению с отчетом 0.1.2, т.к. тянул с публикацией.
- поправил сам запрос в Firebird, добавил сортировку по секундам (см. внизу)
- для нормальной работы отчета в клиент-серверном варианте на сервере нужно поместить gds32.dll в C:\WINDOWS\SysWOW64 или system32.
- выполнить настройку подключения внешнего источника данных под тонким клиентом (стандартно для любых источников данных под 1с)
UPD 11.02.14
В версии отчета 0.1.2
- добавлен отбор по подразделению
- добавлено сравнение с рабочим временем сотрудников 1с
- исправлен отчет и хранимая процедура firebird для правильной работы с буквами в табельных номерах
- для сортировка по табельному номеру, как числу заведено отдельное поле
- обнаружено внутреннее ограничение firebird на количество элементов в условии, в связи с чем за раз нельзя получить запрос для более, чем 1500 сотрудников
UPD 28.11.13
В версии отчета 0.0.6:
- ускорено получение отчета с отбором по сотрудникам
- исправлены ошибки в расчете ночных смен
- добавлено использование табелей из 1с для получения часов работы
- немного поправил дизайн
К моему сожалению, текущая версия 1с 8.2.19.68 некорректно работает с Firebird (в частности с полями date и time), поэтому кроме внешнего источника данных (cf прилагается) пришлось в базу данных perco добавить представление (view) для использования в 1с.
Отчет написан на СКД для конфигурации, где есть справочник Сотрудники (пытается найти сотрудника по табельному номеру). Настройка по умолчанию выводит табель с двумя колонками: Факт.часов (сколько фактически сотрудник находился на объекте) и Вход-выход (сколько прошло времени между первым входом и последним выходом). Началом периода считается день входа (переходящие смены). Кроме того отчет может вывести точные данные о каждом входе и выходе.
Отчет сейчас дорабатывается одновременно с внедрением кадрового учета. В планах связать табель с графиками работы для план-фактного отчета.
Для работы нужно не забыть установить Firebird ODBC.
Строка подключения к Firebird для 1с
driver={Firebird/InterBase(r) driver};Database=192.168.1.1/3050:D:\SCD17k.fdb;CHARSET=win1251;DIALECT=2.5
Скрипт Firebird (изменен 09.04.15):
CREATE OR ALTER VIEW TABEL_VIEW(
ID_TB_IN,
SECONDS,
DATE_PASS,
TIMESTAMP_PASS,
TYPE_PASS,
TABEL_ID,
FIO,
ID_STAFF)
AS
select
tabel_intermediadate.id_tb_in,
datediff (second, cast('01.01.0001 00:00:00' as timestamp), tabel_intermediadate.date_pass ) seconds,
tabel_intermediadate.date_pass,
tabel_intermediadate.date_pass + tabel_intermediadate.time_pass timestamp_pass,
tabel_intermediadate.type_pass,
trim(staff.tabel_id) tabel_id,
staff.last_name || ' ' || staff.first_name || ' ' || staff.middle_name fio,
staff.id_staff
from staff
right outer join tabel_intermediadate on (staff.id_staff = tabel_intermediadate.staff_id)
order by seconds;
Можно добавить своего пользователся в Firebird. Тогда ему нужно дать права как на картинке