The topic of access control and automation of employee timekeeping always resonates in the hearts of managers. and losing control over such a system is painful. We have a story about searching for the cause of errors in data exchange between 1C: Salary and HR Management and Timex ACS. Spoiler: as often happens. the reptilians are to blame for the errors. We found and correct the errors. but not the reptilians.
Briefly about the customer of the modification and software
The customer is Naberezhnye Chelny Pipe Plant (NChTZ). one of the largest manufacturers of equipment for completion (preparation for production after drilling operations) of oil and gas wells. The plant employs over 1.000 people. The standard solution 1C: Salary and HR Management is us for personnel records. payroll calculation. planning of labor costs. calculation of personal income tax and insurance premiums.
1C:ZUP is integrat with Timex
A universal software design to build access control and/or time tracking systems. The software has a modular structure. which allows for expanding functionality without modification.
Timex has an SDK — an auxiliary software module that expands its capabilities. including in the area of integration with 1C. The module implements data exchange via a web service using the SOAP standard and provides an API for developing plugins and reports. And it seems that not everything was foreseen in it.
Integration with 1C allows you to collect data on employees’ working hours for further accounting in 1C:ZUP. There are two possible configuration options:
- Lists of employees. their positions. departments are export from 1C to Timex. and here they are assign access levels. work areas and work schules.
- Employee lists are import from Timex and assignments are made in 1C. Timex then collects event data and transfers the information back to the accounting system.
On the one hand. the ability to directly enter employees into the Timex database gives it autonomy. on the other hand. it creates situations that we will now discuss.
How the problem manifest itself
When synchronizing 1C:ZUP–Timex. errors began to occur in certain cases:
Associat with duplication of telemarketing data employees and positions. That is. a person goes to work. and in Timex the clock is empty. as if he did not check in at the checkpoint. After analyzing the situation. it became clear that the error is caus by the fact that in 1C:ZUP the employee is link to an incorrect Timex employee due to the presence of duplicates in the latter. This is due to the ability to enter an employee directly in Timex. For example. an employee can be enter into the control system twice:
unloading from 1C in the position of “ higher conversion rates Chief Specialist” (correctly. in accordance with the staffing schule);
Directly to the Timex database in the position
If an employee in 1C:ZUP is link to the “Leading Specialist” in Timex. then his timesheet in 1C will be empty. Timex has a standard option to refine the EmployeeLink–ID_Timex connection. but the scheme is complex and duplicates must be search for manually. i.e. wait until an error occurs in the timesheet and correct it immiately.
Relat to an incorrect code in the timesheet
The error occurr when an employee left maternity leave early (code OZ). When the document “Return from maternity leave” was issu in 1C:ZUP. Timex did not cancel the employee’s vacation status. As a result. timesheets with the designation “OZ” were upload to 1C:ZUP when the employee was not at work. for example. on weekends.
The screenshot shows that the employee taiwan data alternates between going to work and being on maternity leave. It turn out that the person was constantly interrupting their leave to go out and work a little. This error l to incorrect accruals.
In the first case. the problem could be solv by putting things in order in the systems with subsequent regular data synchronization. There are two ways to put things in order: manually and with the help of automatic processing. The second method is preferable. because no one is insur against repeating mistakes.
In the second case. the errors were caus by flaws in the Timex processing code when identifying an employee if several were creat for one individual. This can happen if an employee was fir and then rehir.
Solution: create a processing in 1C to fix the error in Timex
We suggest creating a process in 1C that would help find duplicate employees and refine them in 1C. and in the future. close timesheets and the period of the document “Return from parental leave” without errors.
Take a look at the finish solution in action.
Refining an Employee Link
The search for duplicates is done on the “Employees (doubles)” tab. First. you ne to get a list of all employees register in Timex. To do this. there is a data update button on the Connection Wizard tab.
When you click on the button. the table section will display employees who correspond to several records in the Timex database. Grouping occurs by full name.
All data in the table section are load from Timex. except for the “1C Employee” column. This field specifies the 1C employee link to the Timex ID. To refine the connection. you ne to check the box next to the desir employee and rewrite the data.
Checking the correctness of positions
Checking and adjusting positions is done on the “Positions” tab. To start checking. you ne to load positions from Timex using the “Update” button. Positions from the staffing table (ST) in 1C will also be load. If there is a green check mark in the ST field. then the position is present in the Staffing Table. If it is not there. the position may be inactive and duplicate the current one.
It is impossible to refine the Timex ID and the 1C object. since the reference to the position may be in different objects of the access control system. The table of positions is intend for analysis and manual adjustment of the list of positions on the Timex side.