Этот документ фиксирует согласованный стек Центр администрирования 1С и правила, на которые опираемся при дальнейшем развитии приложения.
Видимое имя приложения: Центр администрирования 1С.
Техническое имя проекта, EXE, namespace и будущий winget PackageIdentifier остаются латиницей: AdminConsoleFor1C / PlotnikovDL.AdminConsoleFor1C.
- Тип приложения: нативное Windows desktop-приложение для Windows 11.
- UI: WinUI 3.
- Runtime UI-платформы: Windows App SDK.
- Язык: C#.
- Разметка: XAML.
- Целевая платформа приложения:
net10.0-windows10.0.26100.0. - Минимальная версия Windows:
10.0.19041.0. - Архитектура сборки:
x64,win-x64. - Nullability и implicit usings включены.
Текущие версии пакетов:
Microsoft.WindowsAppSDK:1.8.260317003.Microsoft.Windows.SDK.BuildTools:10.0.26100.7705.Microsoft.Windows.SDK.BuildTools.WinApp:0.3.1.CommunityToolkit.Mvvm:8.4.2.CommunityToolkit.WinUI.Controls.SettingsControls:8.2.251219.FluentIcons.WinUI:2.1.328.
Стандартные UI и MVVM-паттерны берём из поддерживаемых библиотек, а не пишем заново в каждом экране.
Приоритет источников:
- стандартные WinUI 3 / Windows App SDK controls;
- Windows Community Toolkit для готовых Windows 11 Settings-блоков:
SettingsCard,SettingsExpanderи родственные контролы; FluentIcons.WinUIдля иконок Fluent UI System Icons вместо ручных glyph-кодов и самодельных SVG;CommunityToolkit.MvvmдляObservableObject, observable properties и relay commands;- собственные App-level компоненты только для композиции страниц, адаптивного scaffold и сценариев администрирования 1С.
Если готовый контрол покрывает поведение и визуальный паттерн, используем его. Самописные аналоги библиотечных UI-блоков запрещены. Свой XAML/control пишем только когда нужно связать стандартные блоки в доменный сценарий 1С, добавить недостающую адаптивную композицию или явно зафиксировать приложение-специфичный контракт.
Интерфейс должен ощущаться продолжением Windows 11 Settings: спокойные списки, понятные карточки, стандартные WinUI-контролы, минимум декоративного шума.
Основные контролы и паттерны:
NavigationView- основная левая навигация по разделам приложения.BreadcrumbBar- вложенность внутри разделов: напримерИнформационные базы > tradeCRM > Перенос.InfoBar- ошибки, предупреждения и результат выполнения действий.CommandBar,AppBarButton, обычныеButtonс иконками - действия страницы и карточек.ToggleSwitch- двоичные состояния: вход пользователей, регламентные задания.ContentDialog- подтверждения и короткие мастера.Expander- редкие технические подробности, которые не нужны постоянно.ListView,ItemsRepeaterилиTreeView- списки и иерархии служб, кластеров, баз и сеансов.SettingsCard,SettingsExpanderиз Windows Community Toolkit - основной building block для строк и групп в стиле Windows 11 Settings.FluentIconизFluentIcons.WinUI- основной источник иконок разделов, карточек и команд.
Цвета статусов должны быть сдержанными:
Работает- зеленый акцент без яркой заливки.Остановлен- нейтральный серый.Без службы- нейтральный информационный статус, без ощущения ошибки.- Ошибки показываются через
InfoBarи красный системный стиль, а не постоянной агрессивной окраской карточек.
Целевая навигация:
Службы- локальные службы Windows, агент сервера, управление запуском, остановкой и перезапуском, основные параметры службы.Процессы- процессы 1С (ragent.exe,rmngr.exe,rphost.exe,ras.exe,dbgs.exe), PID, роли, порты и параметры запуска.Информационные базы- список ИБ и создание пустой серверной базы с выбором подключения, версии платформы и кластера; подробная карточка ИБ и перенос регистрации ИБ между агентами 1С — следующие этапы.Сеансы- активные пользователи и сеансы, завершение сеансов.Лицензии- аппаратные, программные и занятые лицензии 1С.Настройки- параметры приложения, пути, диагностика и будущие профили.
Важное правило: карточки слева остаются навигационным списком и показывают только минимум для выбора. Подробности, команды и опасные действия живут в правой области или на отдельной странице.
Слои проекта:
AdminConsoleFor1C.Core- доменные модели 1С, разбор командных строк, результат парсингаrac.AdminConsoleFor1C.Application- интерфейсы сценариев и портов приложения.AdminConsoleFor1C.Infrastructure- Windows Services, процессы, запускrac/ras, интеграции с ОС и 1С.AdminConsoleFor1C.App- WinUI 3 приложение, XAML, view models, пользовательские сценарии.AdminConsoleFor1C.ElevatedWorker- отдельный процесс для действий, требующих прав администратора.tests- автоматические тесты, сейчас используется xUnit.
Правило зависимостей: UI вызывает сценарии через application/infrastructure-слой, а доменные модели не должны зависеть от WinUI, Windows Services или файловой системы.
Основные источники данных:
- Windows Services API - список и управление службами агента сервера 1С.
- Windows process inventory - процессы
ragent.exe,rmngr.exe,rphost.exe,dbgs.exe,ras.exe. rac.exe- кластеры, рабочие серверы, информационные базы, сеансы, лицензии.ras.exe- сервер администрирования, который временно запускается, когда нужен доступ черезrac.
Операции с ИБ:
- создание регистрации ИБ через
rac infobase create; - изменение ограничений ИБ;
- завершение сеансов;
- перенос регистрации ИБ на другой агент 1С без переноса данных СУБД;
- удаление старой регистрации ИБ без
--drop-databaseи без--clear-database, если пользователь явно не согласовал опасный сценарий.
Все операции, требующие прав администратора, должны выполняться через отдельный elevated worker:
- регистрация службы Windows;
- запуск, остановка и перезапуск службы;
- удаление службы;
- будущие действия, меняющие системные настройки.
Обычный UI-процесс не должен незаметно требовать постоянного запуска от администратора.
Именование без пробелов:
- EXE:
AdminConsoleFor1C.App.exe. - Техническая папка:
AdminConsoleFor1C.
В версии 1.1.1 сохранённые подключения находятся в %AppData%\AdminConsoleFor1C\server-connections.json. Пароли в этот файл не записываются. Автоматически обнаруженные локальные службы не сохраняются, пока пользователь явно не сохранит подключение.
Временные результаты действий с повышенными правами находятся в %LocalAppData%\AdminConsoleFor1C\Temp.
Отдельные файлы общих настроек и репозиториев, каталоги журналов, кэша и пакетов пока не реализованы.
Основной формат публичной установки: EXE-установщик Inno Setup с автономной (unpackaged, self-contained) сборкой WinUI 3. .NET и Windows App SDK входят в поставку.
Сборка MSIX сохранена как дополнительный вариант. Самоподписанный MSIX предназначен для тестирования и не используется в публичном каталоге WinGet.
Целевой канал распространения:
- GitHub Releases - публикация EXE-установщика и SHA256.
- winget - установка через Windows Package Manager.
- UniGetUI - установка через доступный источник winget.
Идея: пользователь должен находить приложение как обычный Windows-инструмент, устанавливать одной командой или через GUI, а не запускать набор скриптов.
Основная команда запуска в разработке:
dotnet run --project C:\projects\1c-tools\AdminConsoleFor1C\src\AdminConsoleFor1C.App\AdminConsoleFor1C.App.csproj --launch-profile "Центр администрирования 1С (Package)"Проверка перед UI-коммитом:
dotnet build C:\projects\1c-tools\AdminConsoleFor1C\AdminConsoleFor1C.slnxПосле сборки нужно запустить приложение и визуально проверить основной экран, диалоги и состояния ошибок.
Коммиты пишутся на русском языке, в прошедшем времени.
- Windows app design: https://learn.microsoft.com/en-us/windows/apps/design/
- Design basics for Windows apps: https://learn.microsoft.com/en-us/windows/apps/design/basics/
- Windows App SDK: https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/
- WinUI 3: https://learn.microsoft.com/windows/apps/winui/winui3/
- WinUI controls and patterns: https://learn.microsoft.com/en-us/windows/apps/develop/ui/controls/
- NavigationView: https://learn.microsoft.com/en-us/windows/apps/develop/ui/controls/navigationview
- App settings guidelines: https://learn.microsoft.com/en-us/windows/apps/design/app-settings/guidelines-for-app-settings
- MSIX app packages: https://learn.microsoft.com/en-us/windows/msix/overview
- Windows Package Manager manifests: https://learn.microsoft.com/en-us/windows/package-manager/package/manifest
- Fluent 2 design system: https://fluent2.microsoft.design/