В строгих типах проверять модуль для каждого простого типа, входящего в состав составного и выдавать ошибку, если хотя бы для одного из них она будет. #1390
Сейчас edt делает проверку сложных типов по принципу "Если хоть один простой тип удовлетворяет условию, то считаем, что весь тип удовлетворяет условию". Такой подход приводит к ошибкам, от которых строгая типизация и должна нас защищать.
Пример:
В первом случае, когда ПолучитьЧисло(Истина), - ошибки не будет
А во втором, когда ПолучитьЧисло(Ложь) возникнет RunTime ошибка, т.к. сложить Неопределено и число у платформы не получится.
Однако, edt не видит в этом проблемы....
Описание решения проблемы
Предлагаю изменить подход к проверке и проверять каждый простой тип в составе составного. Если будет ошибка хотя бы по одному из них, то выводить ошибку.
Результат функций типа ПолучитьЧисло из примера предполагается проверять на тип, например так:
Результат1 = 0;
Значение1 = ПолучитьЧисло(Истина);
Если ТипЗнч(Значение1) = Тип("Число") Тогда
Результат1 = Значение1 + 3;
КонецЕсли;
Описание проблемы
Сейчас edt делает проверку сложных типов по принципу "Если хоть один простой тип удовлетворяет условию, то считаем, что весь тип удовлетворяет условию". Такой подход приводит к ошибкам, от которых строгая типизация и должна нас защищать.
Пример:
В первом случае, когда ПолучитьЧисло(Истина), - ошибки не будет А во втором, когда ПолучитьЧисло(Ложь) возникнет RunTime ошибка, т.к. сложить Неопределено и число у платформы не получится. Однако, edt не видит в этом проблемы....
Описание решения проблемы
Предлагаю изменить подход к проверке и проверять каждый простой тип в составе составного. Если будет ошибка хотя бы по одному из них, то выводить ошибку.
Результат функций типа ПолучитьЧисло из примера предполагается проверять на тип, например так:
Дополнительная информация
No response