# Comarch Optima

# Integracja THTG Integrator z Comarch Optima

## Słownik

- **Integrator** – system **THTG Integrator**
- **Optima** – system księgowy **Comarch ERP Optima**
- **ThtgEsb** – aplikacja integrująca **Integrator** z **Optimą**

---

# Wstęp

Integrator posiada aplikację integracyjną o nazwie **ThtgEsb**, która umożliwia komunikację z systemem **Comarch ERP Optima**.

Do wymiany danych wykorzystywana jest **szyna danych**, dzięki czemu serwer z Optimą **nie musi być dostępny z zewnątrz**.  
Aplikacja **ThtgEsb** musi jednak posiadać **dostęp do internetu**, aby komunikować się z szyną danych.

ThtgEsb loguje się do Optimy wykorzystując **dostępną licencję użytkownika**.

Jeżeli liczba dostępnych licencji jest niewystarczająca:

- ThtgEsb nie będzie mogła zalogować się do Optimy
- dane nie zostaną wysłane
- aplikacja będzie ponawiała próbę logowania aż do zwolnienia licencji

⚠️ **Uwaga**

Optima **nie zwalnia automatycznie licencji przy bezczynności użytkownika**.  
Licencja zostanie zwolniona dopiero po:

- zamknięciu programu Optima
- wylogowaniu użytkownika z systemu Windows

Jeżeli zależy nam na wysokiej niezawodności komunikacji, zaleca się **wykupienie osobnej licencji dla ThtgEsb**.

---

# Wymagania

Do uruchomienia integracji wymagane są:

- dostęp do serwera, na którym znajduje się **Optima**, w celu instalacji **ThtgEsb**
- dane logowania użytkownika (login i hasło)
- lista baz danych, z którymi aplikacja będzie się łączyła
- **testowa wersja bazy danych firmy**, aby przeprowadzić testy integracji przed uruchomieniem produkcyjnym

⚠️ **Uwaga**  
Integracja **nie współpracuje z wersją chmurową Comarch ERP Optima**.

---

# Możliwości integracji

Aplikacja **ThtgEsb** pozwala na integrację w następujących obszarach.

---

# Tworzenie kontrahentów (Integrator → Optima)

Po utworzeniu kontrahenta w **Integratorze** zostaje on automatycznie wysłany do **Optimy**.

Kontrahenci są wysyłani:

- po utworzeniu lub modyfikacji w sekcji **Klient → Kontrahent**
- po utworzeniu i podpisaniu **umowy dla klienta**

Jeżeli umowa zawierana jest dla **kilku klientów**, w Optimie tworzony jest **jeden kontrahent zawierający dane wszystkich klientów**.

Przed wysłaniem kontrahenta Integrator sprawdza, czy istnieje on już w Optimie.

Weryfikacja odbywa się na podstawie:

- **NIP**
- **PESEL**

Jeżeli kontrahent nie zostanie odnaleziony, Integrator utworzy go automatycznie.

### Zasada tworzenia kodów kontrahentów

- klienci: `K_{id klienta}`
- kontrahenci: `KT_{id kontrahenta}`

Przykłady:

- `K_3123`
- `KT_3121`

⚠️ **Uwaga**

Kontrahenci muszą posiadać **uzupełniony NIP lub PESEL**, aby uniknąć tworzenia duplikatów.

---

# Import kontrahentów (Optima → Integrator)

Funkcjonalność umożliwia import kontrahentów z Optimy do Integratora.

*(sekcja w trakcie zmian)*

---

# Tworzenie faktur kosztowych i sprzedażowych (Integrator → Optima)

Po utworzeniu faktury w **Integratorze** (w module **EOD** lub **Faktury**) może ona zostać automatycznie wysłana do **Optimy**.

Faktury są przesyłane do **rejestru VAT**.

Aby integracja działała poprawnie, należy skonfigurować:

- **rejestr VAT zakupowy** – dla faktur kosztowych
- **rejestr VAT sprzedażowy** – dla faktur sprzedażowych

---

# Przesyłanie informacji o dekretacji faktur kosztowych

ThtgEsb może działać w dwóch trybach.

### Tryb 1

Elementy dekretacji z EOD są traktowane jako **osobne pozycje faktury**.  
Dokument zawiera informacje o **kwocie netto i brutto**, bez kategorii.

### Tryb 2

Elementy dekretacji są przesyłane jako **osobne pozycje faktury z przypisanymi kategoriami kosztów**.

System próbuje rozdzielić numery kont, np.: 501-432


zostaje rozdzielone na:

- **501 → Kategoria**
- **432 → Kategoria2**

⚠️ **Uwaga**

Plan kont w **Optimie** i **Integratorze** musi być **identyczny**.  
Jeżeli konto nie będzie zgodne, element faktury zostanie wysłany **bez przypisanych kategorii**.

---

# Tworzenie zapisów kasowych i bankowych

Integracja działa w dwóch kierunkach:

- **Integrator → Optima**
- **ThtgEsb → Optima**

ThtgEsb posiada integrację z aplikacjami bankowymi:

- **mBank**
- **PKO**

Dzięki temu dane mogą być wysyłane bezpośrednio do:

- Optimy
- Integratora

Aplikacje bankowe instalowane są **na serwerze klienta**.

Integrator umożliwia również **import wyciągów bankowych z wielu banków**.  
Po imporcie w Integratorze mogą one zostać automatycznie przesłane do Optimy.

---

# Procedura integracji

Proces integracji przebiega w następujących etapach:

1. **THTG** ustala z klientem zakres integracji.
2. Klient przekazuje dane dostępowe do **serwera oraz VPN** (jeżeli jest używany).
3. Klient tworzy **testową bazę danych** na podstawie istniejącej spółki w Optimie.
4. Klient tworzy użytkownika w Optimie dla **THTG** z dostępem do:
   - bazy testowej
   - baz produkcyjnych
5. THTG instaluje aplikację i testuje integrację na bazie testowej.
6. THTG przeprowadza **testy integracji z klientem**.
7. Po zakończeniu testów uruchamiana jest **integracja dla baz produkcyjnych**.

---

# Instalacja aplikacji

1. Rozpakuj dostarczone archiwum na serwerze z dostępem do Optimy.
2. Edytuj plik **config.json**.
3. Wprowadź dane użytkownika oraz konfigurację spółek.

### Parametry konfiguracji

- **optimaUser** – nazwa operatora w Optimie
- **optimaPassword** – hasło operatora
- **companies** – lista spółek

Dla każdej spółki podajemy:

- **name** – nazwa firmy w Optimie
- **taxId** – NIP spółki
- **accounts** – używane przy integracji wyciągów bankowych

---

# Przykładowa konfiguracja

```json
{
  "optimaUser": "Adam",
  "optimaPassword": "pwd",
  "companies": [
    {
      "name": "Zielona Sp. z o.o.",
      "taxId": "1234567890",
      "accounts": []
    },
    {
      "name": "Czerwona",
      "taxId": "2345678901",
      "accounts": []
    }
  ]
}
```
# Konfiguracja licencji

Domyślnie aplikacja wykorzystuje licencję:

**Moduł dostępowy (Kasa/Bank)**

Jeżeli używany jest moduł:

**Moduł dostępowy (Kasa/Bank Plus)**

należy zmienić wartość parametru **`applicationMode`** z:

 - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 ] 
 
 na 

- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0].


---

# Testowanie konfiguracji

W celu weryfikacji poprawności konfiguracji, należy uruchomić aplikację **ThtgEsbService.exe** z argumentem test, np. .\ThtgEsbService.exe test. W przypadku błędu, aplikacja wyświetli komunikat w konsoli.


Jeżeli konfiguracja zawiera błędy, aplikacja wyświetli odpowiedni **komunikat w konsoli**.

---

# Włączenie automatycznej synchronizacji danych

W celu uruchomienia automatycznej synchronizacji, należy dodać uruchamianie aplikacji z argumentem invoices do harmonogramu zadań systemu. Zalecana częstotliwość uruchamiania to 5 minut. Poniżej przykład konfiguracji


[![](https://pomoc.thtg.io/uploads/images/gallery/2026-03/scaled-1680-/VT7cAYUTZUESKhYq-image-1772723021904.png)](https://pomoc.thtg.io/uploads/images/gallery/2026-03/VT7cAYUTZUESKhYq-image-1772723021904.png)

[![](https://pomoc.thtg.io/uploads/images/gallery/2026-03/scaled-1680-/yfoZux6ctiw9ZnJP-image-1772723029961.png)](https://pomoc.thtg.io/uploads/images/gallery/2026-03/yfoZux6ctiw9ZnJP-image-1772723029961.png)
[![](https://pomoc.thtg.io/uploads/images/gallery/2026-03/scaled-1680-/p8SqmjnZuJlXmSr8-image-1772723040158.png)](https://pomoc.thtg.io/uploads/images/gallery/2026-03/p8SqmjnZuJlXmSr8-image-1772723040158.png)