7.5 KiB
Executable File
7.5 KiB
Executable File
Варианты интеграции с 1С для получения данных по зарплате
Текущая ситуация
В системе уже есть:
- ✅ Обработчик файлов (CSV/XLSX) -
fileProcessor.js - ✅ Таблица
employeesс полемsalary - ✅ Таблица
employee_accounting_data(ИНН, СНИЛС, банковские реквизиты) - ✅ API для загрузки финансовых отчетов
Варианты интеграции
1. 📄 Импорт файлов (Excel/CSV) - РЕКОМЕНДУЕТСЯ
Сложность: ⭐ Низкая
Время внедрения: 1-2 дня
Требования: 1С может экспортировать отчеты в Excel/CSV
Как работает:
- В 1С настраивается выгрузка отчета по зарплате в Excel/CSV
- Пользователь загружает файл через веб-интерфейс
- Система автоматически парсит и обновляет данные сотрудников
Плюсы:
- ✅ Уже реализована базовая инфраструктура
- ✅ Не требует изменений в 1С
- ✅ Простое внедрение
- ✅ Работает с любой версией 1С
Минусы:
- ⚠️ Ручная загрузка файлов
- ⚠️ Нет автоматической синхронизации
Что нужно сделать:
- Расширить
fileProcessor.jsдля обработки зарплатных данных - Добавить маппинг полей из 1С отчета
- Создать API endpoint для обновления зарплат сотрудников
- Добавить UI для загрузки зарплатных отчетов
2. 🌐 REST API 1С (HTTP-сервис)
Сложность: ⭐⭐ Средняя
Время внедрения: 3-5 дней
Требования: 1С:Предприятие 8.3+ с настроенным HTTP-сервисом
Как работает:
- В 1С создается HTTP-сервис, который отдает данные по зарплате
- Node.js backend делает запросы к 1С API
- Автоматическая синхронизация по расписанию
Плюсы:
- ✅ Автоматическая синхронизация
- ✅ Актуальные данные в реальном времени
- ✅ Можно настроить расписание обновлений
Минусы:
- ⚠️ Требует настройки HTTP-сервиса в 1С
- ⚠️ Нужен доступ к серверу 1С
- ⚠️ Требуется настройка безопасности
Что нужно сделать:
- Настроить HTTP-сервис в 1С
- Создать модуль
1cApiClient.jsдля работы с API - Добавить endpoint
/api/salary/sync-from-1c - Настроить cron-задачу для автоматической синхронизации
3. 🔌 COM/OLE соединение (Windows)
Сложность: ⭐⭐⭐ Высокая
Время внедрения: 5-7 дней
Требования: Windows сервер, 1С установлена локально
Как работает:
- Node.js использует COM-объекты для подключения к 1С
- Прямое обращение к данным через OLE
Плюсы:
- ✅ Прямой доступ к данным
- ✅ Не нужны промежуточные файлы
Минусы:
- ⚠️ Работает только на Windows
- ⚠️ Требует установленной 1С на сервере
- ⚠️ Сложная настройка
- ⚠️ Проблемы с производительностью
Не рекомендуется для веб-приложения
4. 🗄️ ODBC/OLE DB подключение к базе 1С
Сложность: ⭐⭐⭐ Высокая
Время внедрения: 5-7 дней
Требования: 1С на SQL Server, доступ к БД
Как работает:
- Прямое подключение к базе данных 1С через ODBC
- SQL-запросы к таблицам 1С
Плюсы:
- ✅ Прямой доступ к данным
- ✅ Можно использовать SQL-запросы
Минусы:
- ⚠️ Требует знания структуры БД 1С
- ⚠️ Зависит от версии 1С
- ⚠️ Проблемы с безопасностью
- ⚠️ Может сломаться при обновлении 1С
Не рекомендуется - хрупкое решение
Рекомендация
🎯 Гибридный подход: Файлы + HTTP-сервис
Этап 1 (быстрое внедрение):
- Расширить существующую систему импорта файлов для зарплатных данных
- Пользователи загружают отчеты вручную
Этап 2 (автоматизация):
- Настроить HTTP-сервис в 1С
- Добавить автоматическую синхронизацию по расписанию
- Файлы остаются как резервный вариант
Структура данных для зарплатного отчета
Поля, которые нужно получать из 1С:
interface SalaryReportRow {
// Идентификация сотрудника
employeeIdentifier: string; // ФИО, ИНН, табельный номер
inn?: string; // ИНН (для точного сопоставления)
snils?: string; // СНИЛС
// Зарплатные данные
period: string; // Период (месяц/год)
baseSalary: number; // Оклад
actualSalary: number; // Фактическая зарплата
bonuses?: number; // Премии
deductions?: number; // Удержания
netSalary?: number; // К выплате
// Дополнительно
workedDays?: number; // Отработано дней
workedHours?: number; // Отработано часов
vacationDays?: number; // Дни отпуска
sickLeaveDays?: number; // Дни больничного
}
Следующие шаги
-
Определить формат отчета из 1С:
- Какие поля содержит отчет?
- В каком формате экспортируется (Excel, CSV)?
- Есть ли возможность настроить выгрузку?
-
Выбрать вариант интеграции:
- Начать с импорта файлов (быстро)
- Планировать HTTP-сервис (автоматизация)
-
Реализовать:
- Расширить fileProcessor для зарплатных данных
- Создать маппинг полей
- Добавить UI для загрузки
- Настроить обновление данных сотрудников