Проверяются следующие потенциальные ошибки:
- Описание параметра или переменной, совпадающей с глобальной переменной, переменной контекста или реквизитом контекста
Например, у вас в форме документа есть реквизит Номенклатура, и вы определяете функцию ПроверитьНоменклатуру(Номенклатура). В этом случае легко запутаться, особенно когда процедура большая, когда имеется в виду реквизит документа, а когда - параметр процедуры.
Также в обязательном порядке контролируется факт присваивания глобальной переменной в модуле какого-либо объекта. По хорошему, чем меньше подобных "сторонных эффектов", тем надёжней код. Не говоря уже о том, что вы можете случайно использовать то же самое имя переменной, что и в глобальном модуле, считая, что переменная локальная.
- Присваивание параметров процедуры/функции, переданных по ссылке
Несмотря на то, что метод "возврата значения в параметре" часто используется в 1С, это может привести к сложно определяемым ошибкам, когда вы меняете в процедуре значение её параметра, который не предназначен, по алгоритму, для возврата значения.
Для указания, что параметр процедуры/функции должен возвращать значение, можно использовать комментарий вида
// Изменяемые параметры: Парам1, Парам2, ...
расположенный непосредственно перед (или сразу поле) строки с Процедура/Функция.
- Присваивание неявно описанной переменной
Несмотря на то, что при программировании на 1С практически не пользуются предварительным объявлением переменных посредством ключевого слова "Перем", такое объявление может иметь смысл. Оно позволяет контролировать использование одного и того же имени переменной с разным смыслом. Например, у вас объявлена в глобальном модуле переменная Сервис как СоздатьОбъект("Сервис"), а в модуле класса Сервис = СоздатьОбъект("ПоставщикДанных.Сервис"). И если вы не использовали явное определение переменной в модуле класса, у вас будет фактически испорчено значение глобальной переменной.
- Отсутствие инициализации описанной переменной
Тут и описывать нечего. Во многих языках программирования считается, что неинициализированная переменная - это ошибка.
Для работы обработке требуется утилита gcomp, расположеная в каталоге, входящем в path.