gifts2017

Табель на основе данных проходной системы Perco S20

Опубликовал Александр Медведев (anig99) в раздел Отчеты - Управленческие

Получаем данные для табеля из базы Firebird от Perco S20. Использует внешние источники данных 1с и представление (view) Firebird. UPD 09.04.15

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. Тогда ему нужно дать права как на картинке

 

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Perco.zip
.zip 20,47Kb
24.10.13
38
.zip 20,47Kb 38 Скачать
Табель СКУД 0.1.2
.erf 22,31Kb
11.02.14
28
.erf 22,31Kb 28 Скачать
Табель СКУД 0.1.4
.erf 22,52Kb
09.04.15
13
.erf 22,52Kb 13 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

2. Ян Цецко (sovital) 13.02.14 15:53
При создании вьюшки ругается что для пользователя недостаточно прав:

This operation is not defined for system tables.
unsuccessful metadata update.
CRE ATE VIEW failed.
no permission for SELECT access to TABLE/VIEW TABEL_INTERMEDIADATE .

Не подскажите, как наделяли полномочиями пользователя.
3. Эдуард Корольков (advard) 13.02.14 21:31
Насколько я понимаю данные из Perco S20 Нужны для заполнения документа "Табель" и дальнейшей обработки в системе. Для чего предназначена данная обработка, я не понял. Если можно поясните можно ли загружать данные в документ "табель", то что формируется отчёт я вижу.
4. Александр Медведев (anig99) 20.02.14 11:17
(3) нет. отчет нужен для вывода данных и сверкой с введеными вручную данными и графике работы и неявках.
(2) занят сильно в последние дни. забыл написать, что тут ещё внешний набор данных используется. скоро довыложу.
5. Корвин Авалонcкий (cocon2003) 19.11.14 10:09
Искал решение проблемы в интернете при перегонке из старой программы (БД Fireburd 2.5) в 1С 8.2 через внешний источник данных.
Запрос не клеился именно из-за недопонимания между ними форматов дата/время полей.
Уже хотел воспользоватся Вашим решением - Вьювером. Но программ из которых нужно тащить данные оказалось много и в некоторые доступ разработчики разрешили только на чтение.
Решение оказалось до боли простым: Во внешнем источнике данных 1С у нужной таблицы для нужного поля вместо "подхваченных" автоматом форматов "Дата" поставил формат строка(10) и запрос стал работать сразу адекватно с передачей ему параметра. Вот часть кода:
		|	ВнешнийИсточникДанных.Антарес.Таблица.OSTATKI_PROD КАК OSTATKI_PROD
		|ГДЕ
		|	OSTATKI_PROD.OSTATKI_DATA >= &OSTATKI_DATA";										  
		
	Запрос.УстановитьПараметр("OSTATKI_DATA", "01.09.2014");
	Выборка = Запрос.Выполнить().Выбрать();
...Показать Скрыть

Сверил результаты выборок полученных в 1С с разными датами и в IBExpert - всё в ажуре.
6. Александр Медведев (anig99) 19.11.14 11:47
(5) cocon2003, хорошо, что решили проблему! Но мою проблему это не решит. Мне нужно указывать даты не в текстовом формате + дальнейшее сопряжение с табелем в 1с.
7. Василий Коровин (vasyak319) 15.05.15 11:05
(4) anig99,
отчет нужен для вывода данных и сверкой с введеными вручную данными и графике работы и неявках


Тогда ничего не нужно было писать. Отчёты уже есть в УРВ.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа