KCClose
Instrukcja użytkownika i administratora — automatyczne zarządzanie datą zamkniętego okresu programu KCFirma.
1. Przeznaczenie programu
Automatyczne zamykanie okresu
O wskazanej godzinie program oblicza datę zamknięcia na podstawie liczby dni wstecz i zapisuje ją w bazie.
Ponawianie ostrzeżenia bazy
Program może cyklicznie przywracać komunikat o przekroczeniu ustawionego rozmiaru bazy, nawet jeśli użytkownik wyłączył go wcześniej na stałe.
Obsługa serwisowa
Uprawniona osoba może ręcznie zmienić datę końca zamkniętego okresu lub ustawić czas ostatniej optymalizacji na teraz.
Dostęp REST
Zewnętrzny system może odczytać status lub ustawić datę przy użyciu metody PUT i hasła przesłanego w nagłówku.
2. Wymagania i zgodność
- System Windows; aplikacja Win32 działa także na 64-bitowym Windows przez WOW64.
- Obsługiwany jest również Windows Server 2008.
- Dostęp do pliku bazy KCFirma oraz prawo jego zapisu.
- Zainstalowany właściwy 32-bitowy sterownik Microsoft Access/ODBC wymagany przez FireDAC.
- Prawo zapisu w katalogu aplikacji — tam przechowywane są KCClose.ini i Log.txt.
3. Pierwsze uruchomienie
- Uruchom KCClose.exe z konta, które będzie używane do codziennej pracy programu.
- Jeżeli pojawi się informacja o braku połączenia, wybierz otwarcie konfiguracji.
- Wskaż plik bazy danych KCFirma, np. plik .mdb, .accdb albo .dan.
- Ustaw godzinę pracy automatycznej oraz liczbę dni wstecz.
- Jeżeli potrzebujesz REST, ustaw port i hasło API o długości co najmniej 12 znaków. Puste hasło wyłącza serwer REST.
- Kliknij Zapisz. Program ponownie połączy się z bazą i uruchomi REST, jeżeli został skonfigurowany.
4. Okno główne
| Element | Znaczenie |
|---|---|
| Zegar | Aktualna godzina systemowa komputera. |
| Godzina zamknięcia okresu | Godzina, po której automat może wykonać dzienną aktualizację. |
| Ilość dni wstecz | Liczba dni odejmowana od dzisiejszej daty. |
| Zamknij okres | Natychmiast wykonuje operację ręczną po potwierdzeniu użytkownika. |
| Status | Informuje o połączeniu z bazą oraz włączeniu albo wyłączeniu automatu. |
Jak obliczana jest data automatyczna?
Automat wykonuje zapis najwyżej raz dla danej daty uruchomienia programu. Jeśli komputer był wyłączony o ustawionej godzinie, operacja zostanie wykonana po uruchomieniu programu, o ile ustawiona godzina już minęła.
5. Konfiguracja
| Ustawienie | Opis |
|---|---|
| Plik bazy danych | Pełna ścieżka do bazy KCFirma. |
| Godzina | Godzina rozpoczęcia automatycznej operacji. |
| Praca automatyczna | Włącza codzienne automatyczne ustawianie daty. |
| Ilość dni wstecz | Dozwolony zakres: 0–3650. |
| Ponawiaj komunikat | Po włączeniu program po połączeniu oraz co 5 minut ustawia w bazie NieKontroluj2=False i przywraca wybrany limit. |
| Limit bazy | Wartość ostrzegawcza w MB; dozwolony zakres: 1–100000. |
| Port REST | Port nasłuchiwania serwera; zakres: 1–65535. Domyślnie 9030. |
| Hasło API | Minimum 12 znaków. Puste pole wyłącza REST. |
6. Serwisowe ustawienie zamkniętego okresu
Ustawienie daty 1 lipca nie pozwala poprawiać dokumentów z 1 lipca — ten dzień pozostaje zamknięty. Edycja będzie możliwa dopiero od 2 lipca.
Ustawienie czasu optymalizacji
Przycisk Ustaw teraz zapisuje aktualną datę i godzinę w polu ostatniej optymalizacji bazy. Nie uruchamia samego procesu optymalizacji.
7. REST API
Każde żądanie musi zawierać nagłówek X-Auth-Token z hasłem ustawionym w konfiguracji.
Odczyt statusu
GET http://adres-serwera:9030/getstatus X-Auth-Token: TWOJE_HASLO
Przykładowa odpowiedź:
{
"ok": true,
"dataZamkniecia": "2026-08-05",
"dniWstecz": 10
}
Zmiana daty
PUT http://adres-serwera:9030/setdate
X-Auth-Token: TWOJE_HASLO
Content-Type: application/json
{"data":"2026-07-01"}
Data musi mieć dokładny format YYYY-MM-DD. Operacja przez GET nie jest dozwolona.
Odpowiedzi błędów
| HTTP | Kod | Znaczenie |
|---|---|---|
| 400 | missing_dateinvalid_jsoninvalid_date | Brak daty, błędny JSON albo niewłaściwy format daty. |
| 401 | unauthorized | Brak hasła lub nieprawidłowe hasło API. |
| 404 | not_foundclosed_period_not_found | Nieznany endpoint albo brak daty okresu w bazie. |
| 405 | method_not_allowed | Użyto niewłaściwej metody HTTP. |
| 413 | request_too_large | Treść żądania przekracza 4096 bajtów. |
| 500 | database_error | Błąd operacji bazodanowej. |
| 503 | database_unavailable | Program nie jest połączony z bazą. |
{
"ok": false,
"error": "invalid_date",
"message": "Nieprawidlowa data. Oczekiwany format: YYYY-MM-DD."
}
8. Hasło i bezpieczeństwo
- Hasło REST jest szyfrowane przez Windows DPAPI i zapisane w KCClose.ini.
- Zaszyfrowane hasło może odczytać zasadniczo to samo konto Windows na tym samym komputerze.
- Po przeniesieniu programu na inny serwer usuń wpis HasloChronione i ustaw hasło ponownie.
- Przy uruchamianiu z Harmonogramu zadań użyj tego samego konta Windows, na którym zapisano konfigurację.
9. Rozwiązywanie problemów
| Objaw | Rozwiązanie |
|---|---|
| Brak połączenia z bazą | Sprawdź ścieżkę, prawa dostępu, dostępność udziału sieciowego i 32-bitowy sterownik Access/ODBC. |
| REST nie uruchamia się | Sprawdź, czy ustawiono hasło, czy port nie jest zajęty oraz czy Zapora Windows dopuszcza połączenia. |
| HTTP 401 | Sprawdź wartość nagłówka X-Auth-Token. Hasło rozróżnia wielkie i małe litery. |
| HTTP 503 | Najpierw przywróć połączenie programu z bazą. |
| Błąd hasła „System Error. Code: 13” | Dotyczy konfiguracji zapisanej przez starszą wersję, która dzieliła szyfrogram na linie. Usuń stary wpis HasloChronione, uruchom poprawioną wersję i wpisz hasło ponownie. |
| Program działa jako inne konto | Ustaw hasło ponownie z tego konta albo uruchamiaj program z konta, które utworzyło konfigurację. |
| Nieoczekiwany błąd | Sprawdź plik Log.txt znajdujący się obok pliku EXE. |