OData · анализ · рекомендации

Нормализация справочников 1С без «слепых» правок

Подключайтесь к стандартному OData, находите дубликаты и коллизии кодов, получайте пошаговые рекомендации, ведите реестр эталонных наименований и сверяйте данные базы с эталоном — в одном веб-интерфейсе или из командной строки.

Ключевые возможности

Инструмент ориентирован на администраторов и методологов: сначала анализ и отчёт, затем — осознанные действия в 1С или экспериментальная запись через OData, если она разрешена на сервере.

Подключение к OData и $metadata

URL стандартного OData, Basic или Bearer, опционально локальный путь к $metadata.xml, если сервис недоступен из среды запуска.

Дубликаты и коллизии

Точные совпадения после нормализации текста, fuzzy по порогу, коллизии кода при разных названиях — с приоритетом полей имён из метаданных (в т.ч. ФИО).

Отчёт и рекомендации

Группировка по группам дублей, человекочитаемые инструкции, уверенность и обоснование; сворачиваемые блоки для удобного чтения.

Реестр эталонов

Автодобавление имён Catalog_* при загрузке списков из разных баз (ЗУП, ОТ, БУХ…), ручное заполнение эталонных строк.

Сверка с эталоном

При непустом эталоне — проверка наименований: нормализация и fuzzy; в отчёте — отклонения с ближайшим эталоном и %.

PATCH и CLI

Экспериментальный PATCH одного элемента; офлайн-режим analyze-local по JSON и Atom-выгрузкам.

Подключение и выбор справочников

После загрузки $metadata отображаются все entity set с префиксом Catalog_*. Вы отмечаете нужные справочники, задаёте лимит элементов на набор и порог fuzzy. Поле «Метка базы» используется при синхронизации реестра эталонов (откуда впервые пришло имя справочника).

  • Загрузка списка и опциональное слияние с реестром эталонов одним действием.
  • Задачи анализа живут в памяти процесса — после перезапуска сервера отчёты нужно строить заново.
Подключение к базе
Метка базы
Catalog_* готово
Отчёт анализа · Catalog_Должности
Сверка с эталонами
НаименованиеБлижайший эталон%
Специалист по бух…Специалист по бухучёту72
Заместитель рук-ля61
Итоговая рекомендация: оставить канонический элемент, перенести ссылки…

Отчёт: дубли, эталоны, инструкции

Сводка по справочникам, типы действий (выбор канона, перенос ссылок, деактивация, переименование) с текстовыми подсказками. Рекомендации сгруппированы по обрабатываемому значению: «в чём проблема», «итоговая рекомендация», участники группы, таблица шагов с уверенностью.

Блок «Сверка с эталонами» появляется, если для entity set заданы эталонные строки: показываются отклонения и лучшее совпадение по fuzzy.

Реестр эталонных справочников

Файл на диске (по умолчанию data/etalon_catalogs/registry.json): при каждой загрузке списка из новой базы добавляются только новые имена Catalog_*. На странице «Эталоны» вы вводите допустимые наименования по строкам — они используются при сверке в следующих запусках анализа.

  • API: список каталогов, обновление значений, ручная синхронизация списка имён.
  • Переменная NORMALIZATOR_ETALON_REGISTRY задаёт путь к файлу реестра.
Эталоны справочников
EntitySetЭталоновБазы
Catalog_Должности12ЗУП, ОТ
Catalog_ВалютыпустоЗУП
Эксперимент: PATCH через OData
JSON тела PATCH
{"DeletionMark": false,
"Description": "…"}
Ответ 403/405 — запись OData отключена.

Запись в 1С и офлайн-анализ

В отчёте доступен экспериментальный PATCH к одному элементу (entity set + Ref_Key + JSON). Успех зависит от настроек публикации OData на стороне 1С.

Команда analyze-local принимает выгрузки JSON с полем value или Atom/XML feed — удобно, когда прямой доступ к OData из анализатора закрыт.

Начать работу

Запустите веб-сервер из корня проекта и откройте панель администратора. Документация по CLI и переменным окружения — в README репозитория.

PYTHONPATH=src python3 -m normalizator_odata.web --host 127.0.0.1 --port 8000