Процедура Чтото(Знач ПараметрКакойто...) - "Знач" - первым...?

Автор Злоп, 07 июля 2026, 21:32

« назад - далее »

Злоп

Что-то где-то когда=-то у меня отложилось, что формальные параметры процедуры/функции с определителем "Знач" в списке параметров должны идти первыми, т.е. сначала все параметры с определеителем "знач" (если их несколько), а потом - остальные параметры...
Есть такие тонкости или меня клинит...?

ADirks

:))
Вообще пофигу, хоть первыми, хоть последними, хоть вперемежку.
Модификатор 'Знач' говорит о том, что параметр передается по значению, а не по ссылке.

В 1С вообще нет таких приколов с привязкой к расположению формальных параметров.

Харлампий Дымба

Цитата: ADirks от 08 июля 2026, 07:30В 1С вообще нет таких приколов с привязкой к расположению формальных параметров.
Есть только пара приколов с опущенными / неопущенными запятыми.


Злоп

Цитата: ADirks от 08 июля 2026, 07:30:))
Вообще пофигу, хоть первыми, хоть последними, хоть вперемежку.
Модификатор 'Знач' говорит о том, что параметр передается по значению, а не по ссылке.

В 1С вообще нет таких приколов с привязкой к расположению формальных параметров.
Понял, значит меня переклинило...

Злоп

Цитата: Харлампий Дымба от 08 июля 2026, 23:04Есть только пара приколов с опущенными / неопущенными запятыми.
где-то было подробно описано, надо бы перечитать

Харлампий Дымба

И все-таки есть определенная разница в порядке указания параметров. Только она связана не с передачей параметров по значению (с ключевым словом Знач), а с параметрами, имеющими предопределенное значение по умолчанию. 1С по разному ведет себя с определением значения (неопределено/предустановленное) в зависимости от местоположения таких параметров и наличия/отсутствия запятой.
В ЖКК есть пару абзацов почти про "это", но не совсем.

Нашел в загашниках (РупорАбсурда?):
Функция Фича(А = "ААА", Б = "БББ")
  Возврат А + Б;  
КонецФункции

Процедура Сформировать()
  Сообщить(Фича(,)); //ААА
  Сообщить(Фича("ААА",)); //ААА
  Сообщить(Фича("ААА")); //АААБББ
  Сообщить(Фича()); //АААБББ    
КонецПроцедуры

И своё на три параметра и везде добавить по запятой:
Функция Фича3(А = "ААА", Б = "БББ", C = "CCC")
  Возврат А + Б + C;  
КонецФункции

Процедура Сформировать()
  Сообщить(Фича3(,,)); //АААБББ
  Сообщить(Фича3("ААА",,)); //АААБББ
  Сообщить(Фича3("ААА",)); //АААCCC
  Сообщить(Фича3(,)); //АААCCC    
КонецПроцедуры

Логики не вижу.