Производный файл — источник истины signs-map.json. Правки вносить туда, эту страницу
перегенерировать: node tools/gen-signs-map-md.mjs.
Признак — это симптом, а не диагноз. Он говорит «здесь стоит присмотреться», а не «здесь ошибка»: у каждого есть контр-сигнал — законная форма, в которой это не дефект.
Тексты принципов здесь не хранятся — запрашиваются по URL через MCP v8std.
Порядок работы с каждым признаком: измерить сигнал → проверить контр-сигнал → запросить принцип по ссылке → сформулировать целевую структуру. Ложноположительная архитектурная находка дороже пропущенной, поэтому контр-сигнал проверяется всегда.
Сигнал: экспортные методы кластеризуются по несвязанным предметным группам
Порог: >=3 несвязанные группы ИЛИ вызывающие из >=3 подсистем
Контр-сигнал (когда это НЕ дефект): фасад подсистемы: >=80% экспортов — делегирования в 5 строк или короче
Требует индекс кода: без графа вызовов признак не проверяется — это skipped, а не «чисто».
Принципы:
Стандарты: #std440
Сигнал: цепочка ИначеЕсли по типу значения или строковому коду
Порог: >=4 ветви ИЛИ 2 цепочки по одному признаку
Контр-сигнал (когда это НЕ дефект): единственный метод-диспетчер с однострочными делегированиями — в 1С это и есть полиморфизм
Принципы:
Сигнал: >=2 метода одинаковой структуры, различие только в литералах
Порог: 2 копии — сигнал, 3 — нарушение
Контр-сигнал (когда это НЕ дефект): форма входа доказуемо не выражается общим дескриптором
Принципы:
Стандарты: #std440
Сигнал: результаты цикла собираются в Соответствие и связываются обратно по ключу из исходной коллекции
Порог: наличие пары «сбор + обратное связывание»
Контр-сигнал (когда это НЕ дефект): связываются наборы из разных источников, и объединение в один носитель невозможно
Принципы:
Сигнал: цепочка переменных, каждая присваивается и читается ровно один раз, чтобы накормить следующий шаг
Порог: >=4 звена
Контр-сигнал (когда это НЕ дефект): шаги содержательно различны и каждый ветвится по-своему
Принципы:
Стандарты: #std453
Сигнал: >=4 подряд Вставить в структуру, которая возвращается из экспортной функции
Порог: >=4 вставок плюс возврат структуры
Контр-сигнал (когда это НЕ дефект): одноразовая локальная структура на 1-2 поля внутри приватного метода
Принципы:
Сигнал: одна и та же проверка заполненности или типа у вызывающего и внутри вызываемого
Порог: 2 уровня проверки одного значения
Контр-сигнал (когда это НЕ дефект): вызываемый метод экспортный и имеет несколько независимых вызывающих
Требует индекс кода: без графа вызовов признак не проверяется — это skipped, а не «чисто».
Принципы:
Сигнал: HTTP-соединение, внешняя компонента или COM-объект прямо в модуле объекта либо формы
Порог: любое вхождение
Контр-сигнал (когда это НЕ дефект): одноразовая служебная обработка без прикладной логики
Принципы:
Сигнал: экспортный метод, у которого не найдено ни вызывающих, ни триггеров
Порог: нет точных вызывающих И нет триггеров
Контр-сигнал (когда это НЕ дефект): ВАЖНО: в 1С экспорт вызывается из XML (подписки, команды, регламентные задания, настройки библиотек), из расширений и внешних обработок — без проверки триггеров находка не выводится вообще
Требует индекс кода: без графа вызовов признак не проверяется — это skipped, а не «чисто».
Принципы:
Сигнал: механизм расширяемости с единственной реализацией; абстракция без второй точки изменения
Порог: 1 реализация
Контр-сигнал (когда это НЕ дефект): вторая реализация уже спроектирована и запланирована в этой же задаче
Принципы:
Сигнал: в цепочке одного действия пользователя проверки выполняются и до асинхронного диалога, и после ответа
Порог: >=1 проверка после ответа пользователя, вход которой был доступен до вопроса
Контр-сигнал (когда это НЕ дефект): после ответа данные перечитываются под блокировкой перед необратимой операцией; либо вход проверки появляется только из самого ответа пользователя
Требует индекс кода: без графа вызовов признак не проверяется — это skipped, а не «чисто».
Принципы:
Стандарты: #std487, #std636, #std629