Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>G.Nexus C/AL Tools for NAV 2018New to Visual Studio Code? Get it now.
G.Nexus C/AL Tools for NAV 2018

G.Nexus C/AL Tools for NAV 2018

Preview

gnexus

| (0) | Free
C/AL dla Dynamics NAV 2018: nawigacja po obiektach z eksportu finsql (definicje, odwołania, symbole), porównanie REPO → DEV → TEST → PROD, import i eksport obiektów, repozytorium w Azure DevOps.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

C/AL dla Dynamics NAV 2018

Rozszerzenie VS Code do pracy z obiektami C/AL z Dynamics NAV 2018 wyeksportowanymi przez finsql.exe (jeden obiekt na plik .txt): nawigacja po kodzie, porównanie repozytorium ze środowiskami REPO → DEV → TEST → PROD, import i eksport obiektów oraz praca z repozytorium w Azure DevOps.

Nawigacja działa na samych plikach — bez połączenia z bazą, bez licencji NAV i bez pakietów symboli. Porównanie, import i eksport korzystają z finsql.exe i SQL Servera (uwierzytelnianie Windows).

Wersja Preview. Uwagi i błędy: kontakt przez stronę wydawcy w Marketplace.

Nawigacja po kodzie

Funkcja Opis
Przejdź do definicji (F12) Procedury, pola tabel, obiekty. Rozwiązuje przez deklaracje zmiennych — Cust."No." trafia w pole 1 tabeli 18.
Znajdź odwołania (Shift+F12) Wywołania, odczyty pól, CODEUNIT::"Sales-Post", PAGE.RUNMODAL, uprawnienia, subskrypcje zdarzeń.
Symbole w pliku (Ctrl+Shift+O) Pola, triggery, zmienne globalne i procedury, pogrupowane po sekcjach.
Symbole w workspace (Ctrl+T) Każda procedura, pole, trigger i zmienna globalna. Prefiks # szuka obiektów: #Sales-Post, #80.
Podpowiedź (hover) Sygnatura procedury, obiekt właściciel, liczba odwołań.
Diagnostyka Błędy parsera i odwołania do pól, których tabela nie ma (cal.lintUnknownFields).
Kolorowanie składni Słowa kluczowe, typy, funkcje wbudowane, nagłówki obiektów, sekcje.

Czego nie robi: nie kompiluje — jedynym kompilatorem C/AL jest finsql.exe, dlatego nie ma zmiany nazwy (bez kompilatora nie da się sprawdzić, że jest bezpieczna). Typy wyrażeń nie są wnioskowane: rozwiązywanie idzie po deklaracjach (Cust@1000 : Record 18), więc RecordRef, Variant i łańcuchy przez DotNet nie są rozwiązywane.

Pierwsze uruchomienie

  1. Otwórz folder repozytorium z eksportem — z podfolderami TAB/, COD/, PAG/… albo z nimi w src/. Albo C/AL: Pobierz repozytorium — git clone z linku Azure DevOps.
  2. C/AL: Konfiguracja środowisk (koło zębate w widoku Porównanie) — formularz cal.config.json.
  3. Testuj przy każdym środowisku.

Indeks buduje się przy pierwszym starcie (ok. 25 s dla 7 500 obiektów) i trafia do .llm/cal-index.bin; kolejne starty trwają poniżej sekundy.

Wymagania do porównania, importu i eksportu: Windows PowerShell 5.1, Development Environment (finsql.exe) NAV 2018 w wersji bazy, dostęp do SQL Servera (uwierzytelnianie Windows) i konto użytkownika NAV. Skrypty PowerShell są w paczce rozszerzenia — repozytorium obiektów ich nie potrzebuje.

Konfiguracja i diagnostyka

Formularz cal.config.json:

  • finsql.exe — wykrywany na dysku; ustawienie tego komputera (cal.finsqlPath), nie wspólnego pliku. Gdy go brak, formularz podaje, skąd pobrać Development Environment bez pełnej instalacji NAV.
  • Strona kodowa — w jakiej stronie OEM finsql zapisuje obiekty (patrz niżej).
  • Środowiska — bazy NAV podpowiadane z serwera SQL, instancje NST zarejestrowane w bazie (serwer, port zarządzania), znaczniki Import i Produkcja, ścieżka promocji.

Testuj sprawdza: SQL · użytkownik NAV · finsql · instancja NST · port zarządzania · próbny eksport Codeunit 1 — przy błędzie z przyczyną i sposobem naprawy. C/AL: Diagnostyka otwiera formularz i testuje wszystko naraz. Hasła nie trafiają do pliku — tylko uwierzytelnianie Windows.

Strona kodowa

finsql zapisuje eksport w stronie kodowej OEM systemu Windows, na którym działa — dla polskiego systemu CP852, nie CP1250 i nie UTF-8. Inne systemy: 850 (Europa Zachodnia), 437 (US), 865 (nordyckie), 866 (cyrylica). Wybór w formularzu albo w pliku:

{ "codePage": 852 }

Brak wpisu = 852. Według tej strony czytają indeks, porównanie, nowy obiekt i skrypty. Po starcie i po zmianie rozszerzenie proponuje ustawienie files.encoding (np. cp852) dla workspace — bez tego VS Code zgaduje kodowanie, znaki narodowe są nieczytelne, a zapis w złym kodowaniu psuje obiekt na stałe.

Jak pracować

Panel C/AL ma jeden widok Porównanie z parami w kolejności ścieżki promocji:

Para Kiedy się liczy Co robisz
REPO → DEV po kliknięciu (albo po starcie, gdy cal.compareOnStartup) ↑ wgraj do DEV, ↓ pobierz do repo, klik = porównanie pliku
DEV → TEST, TEST → PROD po kliknięciu „porównaj” różnice między bazami, przeniesienie

Wynik porównania jest zapamiętywany z datą i godziną — tabela i lista korzystają z niego, dopóki nie wybierzesz „Przelicz”.

Tabela porównania (ikona tabeli w nagłówku widoku) pokazuje wybrane środowiska naraz: kolumny REPO / DEV / TEST / PROD (Version List i data zapisu). Pierwsze wybrane środowisko jest wzorcem — w pozostałych ✓ oznacza zgodność, ✗ różnicę. Wybór: DEV-TEST, TEST-PROD, DEV-TEST-PROD, REPO-DEV-TEST-PROD albo dowolna kombinacja (np. DEV-PROD, TEST-ACC). Filtr typów obiektów z listy rozwijanej. Zaznaczone obiekty przenosisz przyciskami Wgraj do DEV, Przenieś DEV → TEST itd.

Obiekt usunięty w DEV, który był zgodny z repo, trafia do grupy Usunięte w DEV — do usunięcia z repo. Usuń z repo (prawy przycisk) przenosi pliki do kosza; usunięcie zatwierdzasz commitem.

Skróty w edytorze obiektu:

Skrót Działanie
Ctrl+Alt+D porównaj plik z DEV
Ctrl+Alt+I wgraj do DEV i skompiluj
Ctrl+Alt+R uruchom w kliencie NAV
Ctrl+Alt+K lista obiektów środowiska albo repo (filtry, wersje)
Ctrl+Alt+V dodaj zmienną

Rzadziej używane rzeczy (nowy obiekt, pełny zrzut, blokady, debugger, przewodnik) są w menu … widoku i w palecie poleceń pod C/AL:.

Repozytorium w Azure DevOps

Panel konfiguracji pokazuje stan repozytorium (do wysłania / do pobrania / niezatwierdzone) z przyciskami Pobierz zmiany, Zatwierdź zmiany…, Wyślij, Otwórz w Azure.

  • C/AL: Zatwierdź zmiany — wybór plików i zadania z Twoich aktywnych w Azure Boards (albo numeru wpisanego ręcznie); opis z #<id> wiąże commit z zadaniem.
  • C/AL: Zadania i historia obiektu (prawy przycisk w edytorze) — commity obiektu z zadaniami. Obiekt zmieniany w kilku zadaniach ma kilka commitów — każdy ze swoim zadaniem.
  • C/AL: Otwórz w Azure DevOps — bieżący plik w przeglądarce.

Zadania z Boards wymagają tokenu PAT (Work Items: Read) — zapisywanego w bezpiecznym magazynie VS Code.

Ustawienia

Ustawienie Znaczenie
cal.sourceRoot folder z podfolderami typów obiektów; puste = src albo katalog główny
cal.finsqlPath ścieżka do finsql.exe na tym komputerze
cal.compareOnStartup porównanie REPO → DEV po starcie VS Code (domyślnie wyłączone)
cal.lintUnknownFields podkreślanie odwołań do nieistniejących pól tabel
cal.toolsPath własny katalog skryptów PowerShell zamiast tych z paczki

Licencja

Freeware G.Nexus — bezpłatne użycie, także komercyjne. Szczegóły w pliku LICENSE, komponenty open source w THIRD-PARTY-NOTICES.txt. Microsoft, Dynamics i NAV są znakami towarowymi Microsoft Corporation; rozszerzenie nie jest produktem Microsoft.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft