Технологическая проверка кода конфигурации (7.7)
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Проверяются следующие потенциальные ошибки:
- Описание параметра или переменной, совпадающей с глобальной переменной, переменной контекста или реквизитом контекста
Например, у вас в форме документа есть реквизит Номенклатура, и вы определяете функцию ПроверитьНоменклатуру(Номенклатура). В этом случае легко запутаться, особенно когда процедура большая, когда имеется в виду реквизит документа, а когда - параметр процедуры.
Также в обязательном порядке контролируется факт присваивания глобальной переменной в модуле какого-либо объекта. По хорошему, чем меньше подобных "сторонных эффектов", тем надёжней код. Не говоря уже о том, что вы можете случайно использовать то же самое имя переменной, что и в глобальном модуле, считая, что переменная локальная.
- Присваивание параметров процедуры/функции, переданных по ссылке
Несмотря на то, что метод "возврата значения в параметре" часто используется в 1С, это может привести к сложно определяемым ошибкам, когда вы меняете в процедуре значение её параметра, который не предназначен, по алгоритму, для возврата значения.
Для указания, что параметр процедуры/функции должен возвращать значение, можно использовать комментарий вида
// Изменяемые параметры: Парам1, Парам2, ...
расположенный непосредственно перед (или сразу поле) строки с Процедура/Функция.
- Присваивание неявно описанной переменной
Несмотря на то, что при программировании на 1С практически не пользуются предварительным объявлением переменных посредством ключевого слова "Перем", такое объявление может иметь смысл. Оно позволяет контролировать использование одного и того же имени переменной с разным смыслом. Например, у вас объявлена в глобальном модуле переменная Сервис как СоздатьОбъект("Сервис"), а в модуле класса Сервис = СоздатьОбъект("ПоставщикДанных.Сервис"). И если вы не использовали явное определение переменной в модуле класса, у вас будет фактически испорчено значение глобальной переменной.
- Отсутствие инициализации описанной переменной
Тут и описывать нечего. Во многих языках программирования считается, что неинициализированная переменная - это ошибка.
Для работы обработке требуется утилита gcomp, расположеная в каталоге, входящем в path.
Вступайте в нашу телеграмм-группу Инфостарт