RU
Опись прежнего окна и сверка с новым
Прежнее окно (NiceGUI, E:\TOOLS\Audion Address Processor NiceGUI) прочитано целиком независимым читателем (11.10.2026): всё, что пользователь
видел, нажимал, вводил, и всё, что окно делало само. По каждому пункту найдено, где оно закрыто в новом окне (Avalonia, Source\), либо названо,
почему не перенесено. Новое окно прочитано вторым независимым читателем на дефекты. Отчёты читателей лежат вне проекта:
E:\TOOLS\AUDIT\Audion Address Processor\report\2026-10-11_old_vs_new\01_old_vs_new.md и
E:\TOOLS\AUDIT\Audion Address Processor\report\2026-10-11_new_window\02_new_window_defects.md.
Итог
| Что считаю | Число |
|---|---|
| Пунктов описи | 191 |
| Закрыто в новом окне (из них исправлено после сверки: 11) | 160 |
Не перенесено намеренно (слова в плане E:\TOOLS\ADDRESS_PROCESSOR_AVALONIA_PLAN.md) |
25 |
| Мёртвый код прежнего окна: до него пользователь не доходил | 4 |
| Оставлено открытым | 2 |
Что дальше сверялось не чтением, а прогоном: параметры 14 операций с прежним окном (62 случая, tests\former_window_parameters.json) и результаты
восьми видов операций - прежний движок и консольная команда нового окна на одних и тех же книгах, ячейка в ячейку: 49 случаев из 49 совпали.
Поведение рабочей зоны, которое проверяли тесты прежнего окна, держит стенд tests\test_window_stand.py.
Что сделано по находкам
| Пункт | Состояние |
|---|---|
| 4 | исправлено: Идентификатор приложения на панели задач тот же, что у Start.exe (Program.Main). |
| 26 | исправлено: У разделителя колонок есть подсказка. |
| 50 | исправлено: Кнопка «открыть» у назначения создаёт папку, если её нет. |
| 61 | исправлено: Пока папки чистятся, запуск закрыт (_clearing, Press), кнопка очистки не включается чужим концом прогона. |
| 66 | исправлено: Выбор пути, закрепление и сброс пишутся в журнал строкой «[окно] ...». |
| 88 | исправлено: В подсказке числового поля сказано про стрелки вверх и вниз. |
| 95 | исправлено: Причина, по которой список не прочитался, стоит в самой строке списка (PickLine.Repaint). |
| 98 | исправлено: Списки от движка перечитываются, когда окно возвращают на передний план (ReadListsAgain), - кнопка не нужна. |
| 145 | исправлено: Подсказка на строке «результат» перечисляет до пяти файлов и число остальных. |
| 158 | исправлено: Кнопки пинов региона и МО следят за значением строки (Form.FieldChanged, MainWindow.Oktmo.cs); до ответа движка закрыты. |
| 179 | исправлено: Кнопка копирования ключей закрыта, пока ключей нет. |
| 44 | Оставлено: список истории показывает записи файла; текущие input и output в нём появятся после первого выбора. |
| 144 | Оставлено: кнопки на промежуточную книгу нет; файл лежит рядом с итоговой, кнопка ПАПКА показывает его, путь остаётся в журнале. |
Найденное попутно и не потерянное при переносе: значок реестра ОКТМО в шапке теперь обновляется после «ОБНОВИТЬ РОССТАТ»; списки «Название колонки GT» и
«Адресный заголовок» по-прежнему смотрят в input\ проекта, а не в выбранный источник (так было и в прежнем окне).
Условные обозначения
Сокращения старых мест (все в E:\TOOLS\Audion Address Processor NiceGUI):
app=system_core\ui_nicegui\app.py;wb=system_core\ui_nicegui\workbench.py;win=system_core\ui_nicegui\window.py;i18n=system_core\ui_nicegui\i18n.pycmd=launcher_gui.cmd;gs=config\gui_settings.yaml;manO=config\tool_manifest.yaml(старый);paths(old)=system_core\core\paths.py;service(old)=system_core\services\address_aligner_service.py
Сокращения новых мест (в E:\TOOLS\Audion Address Processor):
MW=Source\MainWindow.axaml.cs;MWx=Source\MainWindow.axaml;Nav,Io,Run,Okt,Sh,Chk=Source\MainWindow.Nav.cs,.Io.cs,.Run.cs,.Oktmo.cs,.Sheets.cs,.Check.csF=Source\Views\Form.cs;FL=Source\Views\Form.Lists.cs;FS=Source\Views\Form.Slots.cs;PL=Source\Views\PickLine.cs;RV=Source\Views\ReportView.csDoor,Val(Values.cs),PH(PathHistory.cs),FC(FolderCleaner.cs),Jr(Journal.cs),Set(Settings.cs),Srv(Server.cs),Cr(CrashGuard.cs),Mf(Manifest.cs),RS(ReportSummary.cs),Pa(Paths.cs),OW(OneWindow.cs) =Source\Core\...;Prog=Source\Program.cs;AppCs=Source\App.axaml.csOM=system_core\core\operation_model.py;CLI=system_core\cli.py;ACmd=address_cli.cmd;ManN=config\tool_manifest.yaml(новый);WL=config\window_layout.yaml;jobs=system_core\core\jobs.py
Статусы: ЗАКРЫТО - есть в новом окне; ПЛАН - не перенесено намеренно, слова есть в плане; МЁРТВОЕ - код прежнего окна, до которого пользователь не доходил; ОТКРЫТО - потеря, оставленная сознательно.
Опись: пункт - старое место - новое место
Статусы: ЗАКРЫТО - есть в новом окне; ПЛАН - не перенесено намеренно, есть слова в плане; ПОТЕРЯНО - находка выше; МЁРТВОЕ - код старого окна, до которого пользователь не доходил.
А. Запуск, окно, настройки
| № | Пункт | Старое место | Новое место или «нет» | Статус | Заметка |
|---|---|---|---|---|---|
| 1 | Окно 1600x900, минимум 1180x720 | win:197 |
MWx:6 (1440x880, минимум 1160x700); MW:59 | ЗАКРЫТО | |
| 2 | Заголовок окна «Audion Address Processor» | win:15,197; app:636 |
MWx:5; MW:33,63; Run:153 (с именем идущей операции) | ЗАКРЫТО | |
| 3 | Значок окна (app.ico) | win:17,26,203 |
MWx:11; AudionAddressProcessor.csproj (ApplicationIcon) | ЗАКРЫТО | |
| 4 | Имя и значок на панели задач: SetCurrentProcessExplicitAppUserModelID, Audion.Tools.<папка> | win:31-43,164 |
нет: поиск «AppUserModel» по Source и install пуст; Windows берёт идентификатор по exe | ЗАКРЫТО | исправлено 11.10.2026: Идентификатор приложения на панели задач тот же, что у Start.exe (Program.Main). |
| 5 | Одно окно на папку программы, второй запуск выводит первое вперёд | win:55-65,81-96; app:4528-4533 |
Prog:43-50; OW:34-52,59-76 | ЗАКРЫТО | только в сборке Release (при #if !DEBUG) |
| 6 | Остановка прежнего сервера по logs/gui_server.pid | win:81-96,133,158 |
нет | ПЛАН | сервера нет |
| 7 | Ключи запуска --host, --port, --browser, --gui, --no-browser | win:46-52; app:4451-4457 |
нет | ПЛАН | последняя строка таблицы плана |
| 8 | Проверка без экрана --smoke | app:4466-4526 |
Prog:14-39; Chk:29-125 (--self-check) | ЗАКРЫТО | |
| 9 | Поиск Python: runtime/pythonw.exe, runtime/python.exe, runtime/python/..., py -3.12 | cmd:28-62 |
Pa:58-69; ACmd:24-26 (без py -3.12); без Python окно говорит, что запустить: MW:93-98, Door:110-113 | ПЛАН | план: «runtime/python.exe нет - говорит, что запустить» |
| 10 | Режим консоли для отладки (AUDION_GUI_CONSOLE=1), запуск без консоли (pythonw) | cmd:20-26,33,44 |
WinExe | ПЛАН | launcher_gui.cmd не переносится |
| 11 | Журналы сервера gui_server_stdout.log и gui_server_stderr.log | win:109-135 |
Jr:23-40 (logs/gui-ДАТА.log); Cr:100-116 (gui-crash-*.log) | ЗАКРЫТО | |
| 12 | Окружение операции: UTF-8, цветные коды (CLICOLOR_FORCE, FORCE_COLOR) | win:113-121; jobs:105-116 |
Door:117 (PYTHONUTF8, PYTHONIOENCODING); цвет строки по смыслу: Jr:68-87 | ПЛАН | ansi_terminal.py не переносится |
| 13 | Создаёт 7 папок проекта (input, output, logs, report, workspace, config, release) | app:244,4177,4514; paths(old):50-52 |
Io:93-100 (4 папки); CLI:225 создаёт все 7 при запуске операции | ЗАКРЫТО | |
| 14 | Файл истории путей создаётся, в нём input и output | app:1546-1547 |
Io:102-108; PH:144-151 | ЗАКРЫТО | |
| 15 | Старт: источник = input, назначение = output, прошлый выбор не помнится | app:255-263,307 |
MW:110; Io:147-156 | ЗАКРЫТО | |
| 16 | Начальное состояние «Ожидание» | app:4178 |
MW:75,224-231 | ЗАКРЫТО | |
| 17 | Подписи интерфейса на двух языках (LABELS ru/en) | app:394-571 |
config/i18n.json (290 записей, Core/Lang.cs); проверка скриптом: русских строк кода без перевода нет | ЗАКРЫТО | |
| 18 | Язык RU/EN переключается и запоминается | app:289-304,1375-1378 |
MW:140-141,165-179; Set:20,37 | ЗАКРЫТО | |
| 19 | Язык по умолчанию | gs:3 (в копии «en») |
Set:33-37 (русский) | ПЛАН | решение владельца 11.10.2026; текст плана «язык из прежнего файла» кодом не исполняется (см. «Попутно») |
| 20 | Тема запоминается; алиасы dark -> code_dark, light -> code_light | app:309-310,641-685 |
MW:144-148,181-199; Set:17,52; AppCs:189-192 | ЗАКРЫТО | |
| 21 | Семь тем ui_colors.yaml | app:317-362,710-733 |
четыре темы | ПЛАН | |
| 22 | Настройки emoji и allow_runtime_switching | app:624-633; gs:5-6 |
нет | ПЛАН | |
| 23 | «Дополнительно» раскрыто/свёрнуто и запоминается (advanced_open) | app:3970-3979,1381-1383 |
F:133-148 (всегда на виду) | ПЛАН | |
| 24 | Источник/назначение пишутся в gui_settings.yaml пустыми (прошлый выбор не помнится) | app:270-304 |
не хранятся (Set:9-13) | ЗАКРЫТО | |
| 25 | Ширина правой колонки запоминается (666 px, минимум 460 слева и справа) | app:4265-4327 |
MWx:66,69,82,85; MW:60-61,466-479 | ЗАКРЫТО | |
| 26 | Подсказка «Изменить ширину панелей» на разделителе | app:4219 |
MWx:82 (разделитель без подсказки) | ЗАКРЫТО | исправлено 11.10.2026: У разделителя колонок есть подсказка. |
| 27 | Подсказки через 1500 мс, скрытие 100 мс | app:40-62,87-100 |
AppCs:39-43 | ЗАКРЫТО | |
| 28 | Спокойные тексты вместо «Connection lost / Trying to reconnect» | app:68-84,4137-4172 |
нет | ПЛАН | нет веб-соединения |
| 29 | Пул процессов NiceGUI (tolerate_missing_process_pool) | app:365-392 |
нет | ПЛАН | NiceGUI |
| 30 | Диалог выбора файла - отдельный PowerShell, закрывается вместе с окном (job object) | app:917-1054 |
родные диалоги Avalonia: Io:180-223; F:448-475 | ПЛАН | строка «Закрытие» плана |
| 31 | Подсказки терминала (оболочка, история команд, предпросмотр команды ...) | app:191-231 |
нет | МЁРТВОЕ | терминала команд в окне нет; используются только clear_terminal_window, expand, close |
| 32 | Словарь i18n.py (функция t) | i18n:6-89 |
нет | МЁРТВОЕ | app.py его не подключает, берёт свой LABELS |
| 33 | Добавление файлов/папки в input копированием (pick_files, start_import) | app:1074-1096,1174-1210,1270-1301,2018-2022 |
нет | МЁРТВОЕ | ни одна кнопка не вызывает: WorkbenchHandlers.add_file = выбор одного файла-источника (app:1993) |
| 34 | Кнопки-профили (preset_buttons, apply_preset) | app:2935-2955,3458-3474 |
нет | МЁРТВОЕ | в манифесте нет поля такого вида |
Б. Шапка
| № | Пункт | Старое место | Новое место или «нет» | Статус | Заметка |
|---|---|---|---|---|---|
| 35 | Название программы | app:4188 |
MWx:27 | ЗАКРЫТО | |
| 36 | Выбор темы | app:4190-4196 |
MWx:43-53; MW:144-148 | ЗАКРЫТО | |
| 37 | Кнопка языка | app:4197-4198 |
MWx:41-42 | ЗАКРЫТО | |
| 38 | Кнопка «Отменить», видна только пока идёт операция | app:4199-4201,4439 |
MWx:262-268 (СТОП в строке состояния); Run:82 | ЗАКРЫТО |
В. Рабочая зона: источник, назначение, действия с папками
| № | Пункт | Старое место | Новое место или «нет» | Статус | Заметка |
|---|---|---|---|---|---|
| 39 | Строка ИСТОЧНИК: путь от корня программы, список истории, закреплённые сверху | wb:868-911; app:274-286 |
MWx:92-95; Io:235-265; Pa:138-149 | ЗАКРЫТО | |
| 40 | Строка НАЗНАЧЕНИЕ с тем же | wb:868-911 |
MWx:116-117,125-127; Io:235-265 | ЗАКРЫТО | |
| 41 | История: счётчик, давность, закреплённые первыми, один путь на регистр, 100 записей | wb:552-581; app:615 |
PH:98-130 | ЗАКРЫТО | |
| 42 | Закрепить/открепить путь, подсветка активного пина | wb:888-897; app:1758-1773 |
Io:267-283; PH:171-186 | ЗАКРЫТО | |
| 43 | Пин у закреплённых строк списка истории | wb:832-859 |
Io:243-246 | ЗАКРЫТО | |
| 44 | Текущий путь всегда есть в списке истории (даже не записанный в файл) | wb:817-822 |
Io:235-265 берёт только записи файла: после СБРОСИТЬ в списке нет текущих input/output | ОТКРЫТО | Оставлено: список истории показывает записи файла; текущие input и output в нём появятся после первого выбора. |
| 45 | Выбрать папку источника / назначения | app:1146-1159,1962-1981 |
Io:180-199 | ЗАКРЫТО | |
| 46 | Выбрать один файл как источник | app:1098-1119,1831-1852; wb:945 |
Io:201-223 | ЗАКРЫТО | |
| 47 | Отмена выбора файла или папки: сообщение «Выбор отменен» | app:1199,1843,1973 |
Io:197,221 (строка состояния; в журнал не пишется) | ЗАКРЫТО | |
| 48 | Открыть папку источника/назначения; файл - в проводнике с выделением | app:1415-1429,1855-1864; wb:944-947 |
MW:271-288; Io:43-44 | ЗАКРЫТО | |
| 49 | Сообщение «Источник не найден» | app:1417-1418 |
MW:273 | ЗАКРЫТО | |
| 50 | Открытие папки создаёт её, если нет | paths(old):55-57; app:1429,1586,4237-4242 |
MW:273 (нет на диске - отказ) | ЗАКРЫТО | исправлено 11.10.2026: Кнопка «открыть» у назначения создаёт папку, если её нет. |
| 51 | СБРОСИТЬ: оба пути к input/output, из истории уходит всё, кроме закреплённого | app:1867-1885; wb:663-682 |
Io:147-156; PH:198-209 | ЗАКРЫТО | |
| 52 | Очистить содержимое только ИСТОЧНИКА | app:1776-1828 |
Io:56,316-378 | ЗАКРЫТО | в Корзину - по плану |
| 53 | Очистить содержимое только НАЗНАЧЕНИЯ | app:1776-1828 |
Io:57,316-378 | ЗАКРЫТО | |
| 54 | Очистить оба, вопрос называет оба пути | app:1902-1959 |
Io:58,342-347 | ЗАКРЫТО | |
| 55 | Лишний вопрос для внешнего источника (файл или папка, может быть единственной копией) | app:1786-1812 |
Io:328-341 | ЗАКРЫТО | |
| 56 | Сторожа: корень диска и корень проекта не очищаются | app:1476-1482 |
FC:22-35 (плюс папка, в которой лежит проект) | ЗАКРЫТО | |
| 57 | Ссылки и junction снимаются, содержимое за ними не трогается | app:1439-1453 |
FC:37-47 | ЗАКРЫТО | |
| 58 | Файл .gitkeep не щадится | app:1461-1464 |
FC:76-80 | ЗАКРЫТО | |
| 59 | Удаление необратимое | app:1451 |
FC:49-52 (в Корзину) | ПЛАН | план: «удаление - в Корзину» |
| 60 | Файл-источник удалён: запись уходит из истории, путь - по умолчанию | app:1814-1817,1937-1942 |
Io:362-365 | ЗАКРЫТО | |
| 61 | Пока идёт очистка, операцию запустить нельзя | app:1905,1932-1957 |
Io:351-376 блокирует только кнопку ОЧИСТИТЬ; Run:94-98 проверяет лишь _runner.Running | ЗАКРЫТО | исправлено 11.10.2026: Пока папки чистятся, запуск закрыт (_clearing, Press), кнопка очистки не включается чужим концом прогона. |
| 62 | СПИСОК: файлы источника в журнал, по алфавиту, с номерами | app:1213-1267 |
Io:288-309 | ЗАКРЫТО | |
| 63 | СПИСОК: сообщения «нет файлов / нет папки / не папка» | app:1214-1223 |
Io:290-296,305-306 | ЗАКРЫТО | |
| 64 | СПИСОК: итог в уведомлении | app:1259 |
Io:308 | ЗАКРЫТО | |
| 65 | Выбор пути из истории запоминается (счётчик) | app:1888-1899 |
Io:138-144,254-260 | ЗАКРЫТО | |
| 66 | Выбор пути, закрепление, сброс пишутся в журнал («SOURCE -> ...», «Pinned ...», «Workspace route reset ...») | app:1767,1859,1875-1881,1896,1978 |
Io:143,155,274 - только строка состояния на 3 с; путь печатает строка запуска (Run:140) | ЗАКРЫТО | исправлено 11.10.2026: Выбор пути, закрепление и сброс пишутся в журнал строкой «[окно] ...». |
| 67 | Пока идёт операция, пути и очистка заблокированы | app:1779,1834,1870,1905,1965 |
Io:149,167,182,203,257; Run:76-85 | ЗАКРЫТО | |
| 68 | Вспышка подсветки строки после действия | wb:409-467 |
нет; результат - в строке состояния | ЗАКРЫТО | косметика |
| 69 | Скрытое поле source_root (путь уже держит рабочая зона) | app:3287-3328 |
ManN:263 (route); OM:228-235 | ПЛАН |
Г. Операции и навигация
| № | Пункт | Старое место | Новое место или «нет» | Статус | Заметка |
|---|---|---|---|---|---|
| 70 | Порядок и состав списка операций | app:2039-2062 |
WL (пять разделов); Nav:33-91 | ПЛАН | раздел «Новая раскладка окна» |
| 71 | Вход в группу, «Назад», автооткрытие дочернего (auto_open_child) | app:2073-2140,3998-4034 |
нет | ПЛАН | разделы вместо дерева |
| 72 | Название и описание операции | app:1989-2008,3982-3996,4057 |
Nav:114-123,127-130 | ЗАКРЫТО | |
| 73 | Кнопка «Запустить» | app:4022-4026 |
Nav:127-134 | ЗАКРЫТО | |
| 74 | «Очистить пустые строки» и «Упаковать результаты» | app:4212-4217; manO:1498-1528 |
WL (result_actions); Nav:167-169 | ЗАКРЫТО | |
| 75 | «Очистить папки» (cleanup_input_output) убрана из списка | app:4215-4216 |
Sh:147-154 (меню СЕРВИС) | ЗАКРЫТО | в новом окне стала доступна |
| 76 | «Проверить исходники» и «Диагностика парсера» | manO:1437-1477 |
WL (sources); Nav:165-166 | ЗАКРЫТО | |
| 77 | «Обновить ОКТМО Росстата» спрятана (gui_hidden), запускается кнопками панели ОКТМО | manO:1384-1389; app:2313-2321 |
WL (вкладка ОБНОВИТЬ РОССТАТ) | ЗАКРЫТО | |
| 78 | Блок «Параметры» и описание операции под формой | app:4054,4057-4059 |
Nav:114-123 | ЗАКРЫТО |
Д. Форма и поля
| № | Пункт | Старое место | Новое место или «нет» | Статус | Заметка |
|---|---|---|---|---|---|
| 79 | Блоки по group с заголовками | app:3802-3827,3945-3967 |
F:88-131 | ЗАКРЫТО | |
| 80 | Заголовки блоков на двух языках | app:394-571 |
F:88-103; i18n.json | ЗАКРЫТО | |
| 81 | Подсказка поля (подпись + описание) | app:2168-2173 |
F:225-230 | ЗАКРЫТО | |
| 82 | Описание под полем (hint) всегда на виду | app:3589,3687 |
подсказка по наведению | ПЛАН | раздел «Форма»: описания - в подсказках |
| 83 | Placeholder | app:3617,3682 |
F:399 | ЗАКРЫТО | |
| 84 | Умолчание поля; у select и radio без default - первый вариант | app:2176-2196 |
OM:190-208 | ЗАКРЫТО | |
| 85 | Значение живёт по id на всё окно; поле с scope: operation - отдельно | app:2199-2208 |
Val:21-29 | ЗАКРЫТО | scope - по плану |
| 86 | Текстовое поле | app:3679-3687 |
F:397-405 | ЗАКРЫТО | |
| 87 | Числовое поле: значение, min/max/step | app:3566-3590,2220-2247 |
F:411-445 | ЗАКРЫТО | |
| 88 | Числовое поле: кнопки вверх/вниз | app:3576-3587 |
F:430-435 (только клавиши стрелок) | ЗАКРЫТО | исправлено 11.10.2026: В подсказке числового поля сказано про стрелки вверх и вниз. |
| 89 | Флажок | app:3632-3641 |
F:341-348 | ЗАКРЫТО | |
| 90 | Группа флажков (сетка) | app:3643-3677 |
F:377-395 | ЗАКРЫТО | |
| 91 | Группа флажков со списком от движка (листы источника) | app:3656-3661 |
FL:135-171 | ЗАКРЫТО | |
| 92 | Радиокнопки | app:3544-3564 |
F:351-374 | ЗАКРЫТО | |
| 93 | Выпадающий список (из манифеста или от движка), поиск у длинных | app:3480-3542 |
FL:87-103; PL:36-94 | ЗАКРЫТО | |
| 94 | Список: поле searchable (регион, МО) | manO:1344,1357; app:3494 |
PL:84 (поиск при списке длиннее 9) | ЗАКРЫТО | |
| 95 | Список: ошибка поставщика вариантов - строкой в самом списке | app:3055-3057 |
FL:55-60,97-99; PL:107 (только подсказка кнопки; подпись остаётся «не выбрано») | ЗАКРЫТО | исправлено 11.10.2026: Причина, по которой список не прочитался, стоит в самой строке списка (PickLine.Repaint). |
| 96 | Выбор xlsx-файла: поле + диалог с фильтром *.xlsx | app:3592-3630,1122-1143 |
F:259-269,448-475 | ЗАКРЫТО | |
| 97 | Выбор файла сбрасывает кэш вариантов и обновляет зависимые поля | app:3608-3610 |
FL:68-76; CLI:283-289 | ЗАКРЫТО | |
| 98 | Кнопка «Обновить список» у полей со списком от движка (и сброс выбранного значения) | app:2260-2274,3504-3509,3534-3539,3556-3561,3656-3661 |
нет: grep «Обновить список» по Source пуст; списки перечитываются при смене источника/зависимости, в конце запуска, при пересборке карточки (FL:79; Run:292; Nav:107-113) | ЗАКРЫТО | исправлено 11.10.2026: Списки от движка перечитываются, когда окно возвращают на передний план (ReadListsAgain), - кнопка не нужна. |
| 99 | Условие показа depends_on | app:2958-2971 |
OM:243-247; Val:87-91 | ЗАКРЫТО | |
| 100 | Условие показа show_when | app:2973-2982 |
OM:248-257; Val:92-97 | ЗАКРЫТО | |
| 101 | Скрытые поля (gui_hidden и эвристика по словам): 8 из 82 | app:2373-2374,3287-3328 |
ManN (gui_hidden, route); Mf:149 | ПЛАН | |
| 102 | На запуск уходят только видимые поля | app:3690-3700 |
OM:269-273,305-321 | ЗАКРЫТО | |
| 103 | Поля advanced - отдельный раскрывающийся блок | app:3752-3799 |
F:133-148 | ПЛАН | не сворачивать |
| 104 | Перерисовка формы при смене значения (refresh_on_change) | app:2216-2217 |
Val:57-66; F:57-63 (RefreshShown) | ЗАКРЫТО | |
| 105 | Смена региона сбрасывает муниципалитет и его кэш | app:2213-2215 |
FL:68-76; Okt:403 | ЗАКРЫТО | |
| 106 | Проверка min_selected и сообщение «Выберите хотя бы один пункт» | app:3703-3716 |
Run:103-108; OM:330-341 | ЗАКРЫТО | в манифесте поле с min_selected сейчас нет |
| 107 | Режим сопоставления: быстро / с нормализацией | app:3837-3905 |
ManN:600; F:351-374 | ЗАКРЫТО | |
| 108 | В быстром режиме поля нормализации не показываются | app:3908-3920 |
ManN:702 (draw_when) | ЗАКРЫТО | |
| 109 | В быстром режиме на запуск нормализация = умолчания | app:3923-3934 |
OM:292-302 | ЗАКРЫТО | |
| 110 | При переключении на «быстро» значения нормализации сбрасываются сразу | app:3866-3881 |
нет: приводятся к умолчаниям при запуске (OM:292-302) | ЗАКРЫТО | результат запуска тот же |
| 111 | Линейка адреса: образец из включённых слотов по порядку | app:2985-3012,3369-3375 |
OM:53-69,175-184; FS:53,138-144 | ЗАКРЫТО | |
| 112 | Слоты: 12 адресных и 8 технических ключей, галочки | manO:422-579 |
FS:31-82 | ЗАКРЫТО | |
| 113 | Порядок слотов: позиции 1..N, занятая уходит на ближайшую свободную | app:3214-3247 |
OM:139-172 | ЗАКРЫТО | |
| 114 | Порядок слотов задаётся числами в списках, обмен местами | app:3377-3456 |
FS:151-242 (перетаскивание фишек) | ПЛАН | развилка 5 плана |
| 115 | Позиции считаются среди включённых, у выключенного «-» и серый вид | app:3271-3279,3425-3452 |
FS:105-128 | ЗАКРЫТО | |
| 116 | Короткие названия слотов RU/EN | app:3101-3160 |
OM:70-85; Mf:119-127 | ЗАКРЫТО | |
| 117 | Включение слота перерисовывает линейку | app:3652-3653 |
FS:132-133 | ЗАКРЫТО | |
| 118 | Подсказки слотов | app:3163-3176 |
FS:153,174-175 | ЗАКРЫТО |
Е. Запуск, ход, остановка, закрытие
| № | Пункт | Старое место | Новое место или «нет» | Статус | Заметка |
|---|---|---|---|---|---|
| 119 | Вторая операция не стартует, сообщение «Другая операция уже выполняется» | app:1305-1307 |
Run:97 | ЗАКРЫТО | |
| 120 | Вопрос перед опасной операцией (название, описание, что затронет) | app:1309-1327,811-838 |
Run:112-122 | ЗАКРЫТО | строки «отмена может потребовать ручной очистки» нет |
| 121 | Операция работает с выбранными источником и назначением | app:1394-1399,1345 |
Run:100-101; Door:144-151; CLI:219-235 | ЗАКРЫТО | |
| 122 | При запуске: журнал очищается, ход 2%, кнопки результата сбрасываются | app:1329-1342 |
Run:136-145 | ЗАКРЫТО | |
| 123 | Итог в строке состояния: слово, код выхода, время | app:1353-1356 |
Run:239-285 | ЗАКРЫТО | |
| 124 | Часы мм:сс, замораживаются в конце | app:870-880,4372-4399 |
Run:199-201,241-245 | ЗАКРЫТО | |
| 125 | Полоса и проценты хода | app:768,4228-4230,4401 |
Run:190-197; MWx:260 | ЗАКРЫТО | |
| 126 | Состояния и цвета: ожидание, выполняется, готово, ошибка | app:841-891 |
MW:204-231 (пять, добавлено «остановлено») | ЗАКРЫТО | |
| 127 | Ход tqdm - строки журнала | service(old):863 |
Run:179-181; LiveLine.cs; MW:444-462 | ПЛАН | находка 4 плана |
| 128 | Остановка: операция сама встаёт в безопасной точке | app:898-899,4199 |
Run:210-235; Door:184-188; CLI:231,259 | ЗАКРЫТО | |
| 129 | Excel и Word после остановки | поток сервера, finally отрабатывает |
Run:268-273; Door:282-294; office_session.py | ПЛАН | находка 5 плана |
| 130 | Закрытие окна во время работы | win:210-211 (сервер убивается) |
Run:387-425 | ПЛАН | |
| 131 | Исключение операции: «ERROR: ...» в журнал, статус ошибки | app:1363-1370 |
jobs:386-388; Run:239-285 | ЗАКРЫТО | |
| 132 | Уведомление result.message | app:1362 |
Run:359-360 (при неудаче; при успехе сообщение всегда «Operation finished.», jobs:383) | ЗАКРЫТО | |
| 133 | Конец «Обновить ОКТМО»: кэши вариантов сброшены, список перерисован | app:1358-1360 |
Run:293-299; CLI:413-421 | ЗАКРЫТО |
Ж. Журнал и результат
| № | Пункт | Старое место | Новое место или «нет» | Статус | Заметка |
|---|---|---|---|---|---|
| 134 | Журнал в окне, цвет по ANSI | app:755-765,4247 |
Jr:68-87 (цвет по смыслу строки) | ПЛАН | ansi_terminal.py не переносится |
| 135 | Лимит журнала 1500 строк | app:614,741-745 |
MW:301 (5000) | ЗАКРЫТО | |
| 136 | Автопрокрутка, только если читатель внизу | app:4347-4356 |
MW:372,421-427 | ЗАКРЫТО | |
| 137 | Очистить окно журнала (файлы остаются) | app:748-752,4243-4244 |
MW:315,343-352 | ЗАКРЫТО | |
| 138 | Развернуть журнал | app:4245,4252-4263 |
MW:321,328-341 | ЗАКРЫТО | |
| 139 | LOGS, REPORT, CONFIG открывают папки | app:4237-4242 |
MW:311-313 | ЗАКРЫТО | |
| 140 | Подсказки к LOGS/REPORT/CONFIG | app:155-188 |
MWx:201-207 (слова без полного пути) | ЗАКРЫТО | |
| 141 | Нижняя строка: точка и текст состояния | app:4248-4250 |
MWx:255-269 | ЗАКРЫТО | |
| 142 | Артефакты: OUTPUT открывает папку результата | app:1742-1745 |
Run:306-321,353; MWx:174 | ЗАКРЫТО | |
| 143 | Артефакты: REPORT открывает сводку отчёта | app:1742 |
Run:325-329; RV:22-94 | ЗАКРЫТО | |
| 144 | Артефакты: ПРОВЕРКА/AUDIT (staging) открывает папку | app:1729-1745,476,564; service(old):1133-1145,1532-1536,1630-1635 |
нет: слово staging в Source только в комментарии Door.cs:66 | ОТКРЫТО | Оставлено: кнопки на промежуточную книгу нет; файл лежит рядом с итоговой, кнопка ПАПКА показывает его, путь остаётся в журнале. |
| 145 | Кнопка с числом («OUTPUT 3») и подсказка со списком до 5 файлов | app:1589-1595,1739-1745 |
Run:366-371 (первый файл и «файлов: N»; список в подсказке не показывается) | ЗАКРЫТО | исправлено 11.10.2026: Подсказка на строке «результат» перечисляет до пяти файлов и число остальных. |
| 146 | Сводка отчёта: строки (файл, счётчики, качество, диагностика, слоты, нормализатор; не более 40) | app:1598-1687 |
RS:15-100 | ЗАКРЫТО | |
| 147 | JSON отчёта под раскрывающимся блоком (до 20000 знаков) | app:1718-1720 |
RV:64-69 | ЗАКРЫТО | |
| 148 | «Открыть» в сводке отчёта | app:1709 |
RV:71-72 | ЗАКРЫТО | |
| 149 | Ошибки чтения отчёта (нет файла, не JSON, не объект) | app:1692-1703 |
RV:31-36; Run:323 | ЗАКРЫТО | |
| 150 | Кнопки артефактов только после успеха | app:1357 |
Run:352-356 | ЗАКРЫТО |
З. ОКТМО: область, поиск, ключи, пины
| № | Пункт | Старое место | Новое место или «нет» | Статус | Заметка |
|---|---|---|---|---|---|
| 151 | Панель ОКТМО открывается сама (auto_open_child) | manO:1329; app:2073-2077,2105-2112 |
WL (раздел ОКТМО); Nav:140 | ЗАКРЫТО | |
| 152 | Регион: список из снимка Росстата, поиск по названию | manO:1337-1349; app:3480-3512 |
Okt:62,199-225; PL:36-94 | ЗАКРЫТО | |
| 153 | Муниципалитет внутри региона; пока региона нет - «сначала выберите регион» | manO:1350-1362; app:3331-3340 |
Okt:63; FL:68-76 | ЗАКРЫТО | поле видно всегда, подсказка в списке - от движка |
| 154 | Закреплённые значения идут первыми и помечены | app:2638-2663 |
PL:66-72; Mf:251 | ЗАКРЫТО | |
| 155 | Закрепить значение региона/МО | app:2666-2694,2468-2470 |
Okt:210,216,389-408 | ЗАКРЫТО | |
| 156 | Открепить | app:2695-2706,2471-2473 |
Okt:211,217 | ЗАКРЫТО | |
| 157 | «+»: добавить ключи региона/МО (для МО - формы МО и все НП внутри) | app:2707-2722,2474-2480 |
Okt:212,215,218,392-399 | ЗАКРЫТО | |
| 158 | Состояние кнопок следует за значением: пусто - серые; не закреплено - «открепить» серая; закреплено - пин подсвечен | app:2216-2217,2670-2713 |
Okt:308-325 (RefreshScopeButtons) зовётся при построении панели и после действий; при выборе значения - нет: Form.cs:43 (RefreshPinsHook объявлен), Okt:174 (присвоен), нигде не вызывается | ЗАКРЫТО | исправлено 11.10.2026: Кнопки пинов региона и МО следят за значением строки (Form.FieldChanged, MainWindow.Oktmo.cs); до ответа движка закрыты. |
| 159 | «Добавляю ключи ОКТМО...» | app:2475-2479 |
Okt:392 | ЗАКРЫТО | |
| 160 | Сообщения действий (закреплено, добавлено N, всего M ...) | app:2383-2459 |
Okt:394-399,424,432,442-449,471-477 | ЗАКРЫТО | |
| 161 | Строка «OKTMO регион/муниципалитет/ключи/пины: ...» в журнал | app:2487,2519,2542,2585,2619 |
Okt:364-368 | ЗАКРЫТО | |
| 162 | После пина/открепления списки читаются заново | app:2470-2473 |
Okt:400-405; CLI:413-421 | ЗАКРЫТО | |
| 163 | Строка «Реестр ОКТМО: файл» и предупреждение, если реестра нет | app:2324-2342 |
Okt:254-267 | ЗАКРЫТО | |
| 164 | Кнопки «Скачать ОКТМО» (в предупреждении) и «ОБНОВИТЬ БАЗУ ДАННЫХ ОКТМО» (в панели) | app:2337-2365 |
вкладка ОБНОВИТЬ РОССТАТ (WL); Okt:263 (текст отсылает к вкладке) | ПЛАН | раздел ОКТМО плана: две вкладки |
| 165 | «СБРОСИТЬ КЛЮЧИ ОКТМО»: очищает регион, МО, поиск и файл ключей; пины остаются | app:2345-2365,2531-2551 |
Okt:123,451-463 | ЗАКРЫТО | |
| 166 | Файл ключей: Открыть | app:2846-2859,2505-2506 |
Okt:119,437-449 | ЗАКРЫТО | |
| 167 | Файл ключей: Сохранить (ключи выбранных региона и МО) | app:2507-2508 |
Okt:120,444 | ЗАКРЫТО | |
| 168 | Файл ключей: Загрузить | app:2509-2510 |
Okt:121,445 | ЗАКРЫТО | |
| 169 | Файл ключей: Очистить | app:2511-2512 |
Okt:122,446 | ЗАКРЫТО | |
| 170 | Поиск НП: строка ввода, «Найти кандидатов», «Идёт поиск...» | app:2754-2786,2569-2576 |
Okt:66-72,410-425 | ЗАКРЫТО | |
| 171 | Выбор точной строки ОКТМО из найденных | app:2788-2806 |
Okt:74-78 | ЗАКРЫТО | |
| 172 | «Добавить найденные НП» (серая без выбора) | app:2807-2821,2577-2579 |
Okt:79-82,340,427-435 | ЗАКРЫТО | |
| 173 | Превью найденных кандидатов (только чтение) | app:2823-2827 |
Okt:83-88,330-332 | ЗАКРЫТО | |
| 174 | Сводка выбранного: МО / НП / ОКТМО | app:2829-2839 |
Okt:333-339 | ЗАКРЫТО | |
| 175 | Названия кандидатов на языке окна | app:2739-2751 |
Mf:254; Okt:378-381 | ЗАКРЫТО | |
| 176 | Поля, названные движком (field_updates), применяются | app:2554-2560,2584 |
Okt:371-387 | ЗАКРЫТО | |
| 177 | Текущие ключи: число в заголовке, путь и счёт, просмотр, заглушка «Ключи пока не загружены» | app:2725-2736,2888-2909 |
Okt:96-136,275-294 | ЗАКРЫТО | |
| 178 | Копировать ключи в буфер обмена | app:2893-2902,796-808 |
Okt:101-107 | ЗАКРЫТО | |
| 179 | Копирование пустого списка: кнопка серая, «Нечего копировать» | app:2881,2900-2901,796-803 |
Okt:101-107 (копирует пустоту и пишет «скопированы») | ЗАКРЫТО | исправлено 11.10.2026: Кнопка копирования ключей закрыта, пока ключей нет. |
| 180 | Развернуть ключи в отдельное окно с копированием | app:2868-2887,2903-2907 |
Okt:108-110,489-510 | ЗАКРЫТО | |
| 181 | Пины: Открыть, Экспорт, Импорт, Очистить | app:2910-2924,2598-2628 |
Okt:139-158,467-486 | ЗАКРЫТО | |
| 182 | Сводка пинов: регионов, МО, путь | app:2925-2930 |
Okt:156,296-305 | ЗАКРЫТО | |
| 183 | Импорт и очистка пинов сбрасывают кэш вариантов | app:2609-2612 |
Okt:479-483 | ЗАКРЫТО | |
| 184 | Папка данных ОКТМО (дополнительно) влияет на списки и кэш | manO:1371-1380; app:3014-3025 |
Okt:161-171; CLI:283-289 | ЗАКРЫТО | |
| 185 | Действия панели не идут, пока работает операция | app:2463,2500,2533,2565,2600 |
Okt:350 | ЗАКРЫТО | |
| 186 | Ошибка действия панели - сообщение | app:2483-2484,2515-2516,2537-2538,2581-2582,2615-2616 |
Okt:357-361 | ЗАКРЫТО | |
| 187 | Обновление снимка Росстата: поле URL и запуск операции | manO:1384-1410 |
WL; Nav:107-148 | ЗАКРЫТО | |
| 188 | 17 прямых вызовов сервиса панели | app:2306-2935 |
CLI:62-80 (17 действий), Srv:157-165 | ЗАКРЫТО |
И. Ошибки
| № | Пункт | Старое место | Новое место или «нет» | Статус | Заметка |
|---|---|---|---|---|---|
| 189 | Необработанная ошибка окна: трассировка | app (traceback в журнал) |
Cr:25-137 (файл gui-crash-*.log, строка в журнале) | ЗАКРЫТО | |
| 190 | Ошибки файловых действий окна - в уведомление и журнал | app:1770-1771,1825-1826,1861-1862,1954-1955 |
MW:246-261 (Say refused); Io:369-372 | ЗАКРЫТО | |
| 191 | Испорченный файл настроек/истории | app:289-304 (перезаписывал) |
SafeFile.cs:18-83 (откладывает испорченный, берёт .bak) | ЗАКРЫТО | лучше прежнего |