Open arcanist123 opened 3 years ago
Хороший ишуз. По большей части подобные задачи должны решаться системой статического анализа кода. Для 1С - это проект https://github.com/1c-syntax/bsl-language-server у нас есть скрипт для проверки на его базе - Расширенный анализ кода
Поддерживаю. Функциональность нужна. В своё время решалась подобная проблема на базе старого стандарта и обработк по написанию кода (в режиме 1с предприятие). Сейчас мучительно без такого. Если есть вопросы по общей логике готов подсказать и поучаствовать в выработке методики
Существует проблема Изменение типа значения возвращаемой функции приводит к каскаду ошибок которые происходят в рантайме.
Хотелось бы иметь следующую функциональность Функции и процедуры 1с уже имеют возможность почти полного описания параметров и возращаемого значения согласно стандарту описания процедур и функций. Стандартный вычислитель типов в EDT умеет парсить такого рода комментарии и использовать их для создания контекстной подсказки, что показывает, что этот стандрат продолжит свое существование Новая функциональность позволит проверять соответствие декларации параметра/возвращаемого значения и его реального использования. Например, если функция декларирует, что она возвращает структуру из двух полей, например так // Возвращаемое значение: // Структура: // КодАдресногоОбъекта - Строка // Наименование - Строка функция тест() моя_структура = новый структура; моя_структура.Вставить("КодАдресногоОбъекта","123"); моя_структура.Вставить("Наименование","456"); возврат моя_структура; Конецфункции
то использование незадекларированного поля должно вызывать предупреждение о несоответствии типов, например в таком примере структура_адресного_объекта = тест(); сообщить( структура_адресного_объекта.номер_дома);
Эта функциональность по сути будет являться опциональной системой типов
Дополнительный контекст Стандарт описания процедур и функций https://its.1c.ru/db/v8std/content/453/hdoc Опциональные типы в Python 2 https://realpython.com/lessons/type-comments/