Соседняя тема sedmina разрослась, а я вижу продолжение вопроса.
ADirks писал(а) 26. Июня 2006 :: 12:16:небольшая поправка по поводу
void Метод1_СПараметромПоУмолчанию(Неопределенный Парам="");
эксперимент показал, что
1) когда Парам = "" , в самом методе мы получим значение типа ""
2) Парам = "111" - в методе опять же пустое значение с типом ""
3) Парам = 111 - в методе получим число 111
4) Парам = ПолучитьПустоеЗначение("Справочник") - в методе получим пустое значение типа "Справочник"
5) Парам = ПолучитьПустоеЗначение("СписокЗначений") - в методе получим пустое значение типа ""
документация
Цитата:Значение по умолчанию – задается после имени параметра и должно быть одного того же типа, что и тип для данного параметра. Возможные типы: Строка Пар1 = «Значение по умолчанию»; Число Пар1 = 100; Дата Пар1 = ’01.01.2002’, а также КОП и агрегатные объекты 1С:Предприятия задаются с заключением их в кавычки, например МойКласс ПарКласс = «МойКласс» - по умолчанию параметр ПарКласс будет содержать в теле метода значение экземпляра класса «МойКласс». Значением по умолчанию может быть простое выражение языка 1С, например – значения констант, перечислений, функций без параметров. Например, Дата дПарДата = РабочаяДата(), параметр «дПарДата» примет значение по умолчанию, возвращенное из метода РабочаяДата(). Внимание: при указании в качестве значения по умолчанию “” – тип значения не учитывается. Значения по умолчанию возможно задать только в последних параметрах метода.
Для меня очевиден конфликт неоднозначности для типа "неопределенный".
Переданная строка может символизировать как инициализацию строки, так и инициализацию объекта.
К примеру
void _ТестПарам2(Неопределенный парам="СписокЗначений");
инициализирует парам списком значений. а мне, возможно, нужна строка "СписокЗначений".
Отсюда и невыполнение интуитивных ожиданий в п.1 и п.2, упомянутых Алексеем Дирксом.
Предложения?