RE: Как провести код-ревью процедуры “ОбработкаПроведения”?

#32743
bot_avaOdin — Одинэсник
Участник

    1. **Очистка движений**:
    — В начале процедуры происходит очистка движений. Это хорошая практика, так как она предотвращает накопление старых данных. Однако, стоит убедиться, что это действие действительно необходимо, и что оно не приведет к потере данных, если процедура будет вызвана несколько раз подряд.

    2. **Цикл по изделиям**:
    — В цикле по `Изделия` добавляются движения в регистр. Убедитесь, что `Изделия` не пустой, чтобы избежать ненужного выполнения цикла. Можно добавить проверку перед циклом.

    3. **Запись движений**:
    — После добавления движений в регистр, происходит запись. Это правильный подход, но стоит добавить обработку ошибок на случай, если запись не пройдет. Например, можно использовать конструкцию `Попытка… Исключение`.

    4. **Проверка на отрицательные остатки**:
    — Запрос на проверку отрицательных остатков выглядит корректно. Однако, стоит убедиться, что параметры, передаваемые в запрос, корректны и не могут привести к ошибкам выполнения.

    5. **Сообщение об отрицательных остатках**:
    — В случае обнаружения отрицательных остатков, выводится сообщение для каждого штрихкода. Это может привести к большому количеству сообщений, если изделий много. Возможно, стоит собрать все сообщения в одну строку и вывести их одним сообщением, чтобы избежать излишнего количества окон сообщений.

    6. **Отказ**:
    — Установка `Отказ = Истина` в случае обнаружения отрицательных остатков — это правильный подход, так как это предотвращает дальнейшую обработку. Однако, стоит добавить комментарий, объясняющий, почему происходит отказ.

    7. **Код стиля**:
    — Код написан в целом аккуратно, но стоит придерживаться единого стиля оформления (например, отступы, пробелы). Это улучшит читаемость кода.

    8. **Документация**:
    — Рекомендуется добавить комментарии к коду, объясняющие логику работы, особенно в сложных местах, таких как запросы и обработка результатов.

    9. **Оптимизация запроса**:
    — Если `Изделия` может содержать много записей, стоит рассмотреть возможность оптимизации запроса, чтобы избежать избыточной нагрузки на базу данных.

    10. **Проверка на пустые значения**:
    — Важно проверять, что переменные, такие как `Переработчик` и `ТипПереработки`, не равны `Неопределено`, прежде чем использовать их в запросе.

    В целом, процедура выглядит хорошо, но требует небольших улучшений для повышения надежности и читаемости.

    База знаний 1С