# Варианты интеграции с 1С для получения данных по зарплате ## Текущая ситуация В системе уже есть: - ✅ Обработчик файлов (CSV/XLSX) - `fileProcessor.js` - ✅ Таблица `employees` с полем `salary` - ✅ Таблица `employee_accounting_data` (ИНН, СНИЛС, банковские реквизиты) - ✅ API для загрузки финансовых отчетов ## Варианты интеграции ### 1. 📄 **Импорт файлов (Excel/CSV) - РЕКОМЕНДУЕТСЯ** **Сложность:** ⭐ Низкая **Время внедрения:** 1-2 дня **Требования:** 1С может экспортировать отчеты в Excel/CSV **Как работает:** - В 1С настраивается выгрузка отчета по зарплате в Excel/CSV - Пользователь загружает файл через веб-интерфейс - Система автоматически парсит и обновляет данные сотрудников **Плюсы:** - ✅ Уже реализована базовая инфраструктура - ✅ Не требует изменений в 1С - ✅ Простое внедрение - ✅ Работает с любой версией 1С **Минусы:** - ⚠️ Ручная загрузка файлов - ⚠️ Нет автоматической синхронизации **Что нужно сделать:** 1. Расширить `fileProcessor.js` для обработки зарплатных данных 2. Добавить маппинг полей из 1С отчета 3. Создать API endpoint для обновления зарплат сотрудников 4. Добавить UI для загрузки зарплатных отчетов --- ### 2. 🌐 **REST API 1С (HTTP-сервис)** **Сложность:** ⭐⭐ Средняя **Время внедрения:** 3-5 дней **Требования:** 1С:Предприятие 8.3+ с настроенным HTTP-сервисом **Как работает:** - В 1С создается HTTP-сервис, который отдает данные по зарплате - Node.js backend делает запросы к 1С API - Автоматическая синхронизация по расписанию **Плюсы:** - ✅ Автоматическая синхронизация - ✅ Актуальные данные в реальном времени - ✅ Можно настроить расписание обновлений **Минусы:** - ⚠️ Требует настройки HTTP-сервиса в 1С - ⚠️ Нужен доступ к серверу 1С - ⚠️ Требуется настройка безопасности **Что нужно сделать:** 1. Настроить HTTP-сервис в 1С 2. Создать модуль `1cApiClient.js` для работы с API 3. Добавить endpoint `/api/salary/sync-from-1c` 4. Настроить 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С: ```typescript 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. **Определить формат отчета из 1С:** - Какие поля содержит отчет? - В каком формате экспортируется (Excel, CSV)? - Есть ли возможность настроить выгрузку? 2. **Выбрать вариант интеграции:** - Начать с импорта файлов (быстро) - Планировать HTTP-сервис (автоматизация) 3. **Реализовать:** - Расширить fileProcessor для зарплатных данных - Создать маппинг полей - Добавить UI для загрузки - Настроить обновление данных сотрудников