Skip to content

[NEW] Повторное добавление\вставка значений в коллекцию #1551

@artbear

Description

@artbear

Описание проблемы, ошибки, которую надо диагностировать

Диагностика находит проблемные места с дублированием кода вставки\добавления значений в различные коллекции.
Подобное часто возникает из-за копипаста.

Подозрительный код

Коллекция = Новый Структура;
Коллекция.Вставить("Ключ1", 1);
Коллекция.Вставить("Ключ1", 2);

// выражения в одном блоке, но не подряд
Массив = Новый Массив;
Массив.Добавить(СтрокаТаблицы);
ДругойКод();
Массив.Добавить(СтрокаТаблицы);

Массив.Вставить(0, ДругаяСтрока);
Массив.Вставить(0, ДругаяСтрока);

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

Ссылка на источник, подтверждающее нарушение либо обоснование наличия проблемы

Похожий ишуз

Параметры диагностики

Тип Статья на русском

  • 🐜 Ошибка
  • 👮 Уязвимость
  • 💂‍♂️ Потенциальная уязвимость
  • 💩 Качество кода
  • :trollface: Другое

Важность Статья на русском

  • 💔 Блокирующая / Blocker
  • ❤️ Критическая / Critical
  • 💛 Важная / Major
  • 💙 Незначительная / Minor
  • 💚 Информационная / Info
  • 💞 Другое

Тэги Статья на русском

  • STANDARD - "Нарушение стандартов 1С"
  • LOCKINOS - "Не будет работать в другой ОС"
  • SQL - "Проблема с запросом"
  • PERFORMANCE - "Проблема производительности"
  • BRAINOVERLOAD - "Непонятный код"
  • BADPRACTICE - "Плохая практика программирования"
  • CLUMSY - "Излишние действия"
  • DESIGN - "Ошибка в проектировании"
  • SUSPICIOUS - "Подозрительный код"
  • UNPREDICTABLE - "Непредсказуемо работающий код"
  • DEPRECATED - "Устаревшая функциональность"
  • ERROR - "Ошибочная конструкция"
  • LOCALIZE - "Проблемы локализации"

Время на исправление (минут)

1

Дополнительная информация

Нужно учесть:

  • простые блоки кода, без переходов и условий, т.е. без Если, циклов, попыток и т.п.
  • учесть, что строки могут идти не подряд друг за другом
  • следующие методы объектов:
    • Вставить с 2мя параметрами, если в 2х строках совпадает 1й параметр
    • Добавить с 1м параметром, если в 2х строках совпадает 1й параметр
  • можно учесть наличие объектов - Соответствие, Структура, Массив, ТаблицаЗначений, Список и т.п.
  • а можно и не учитывать, а ориентироваться только по наименованию вызовов методов объектов Вставить и Добавить
    • подобное может дать больше полезных замечаний

Metadata

Metadata

Assignees

No one assigned

    Labels

    component/diagnosticsДоработка / создание диагностики

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions