👉Если не проходили тест, сначала выберите ответ тут, потом читайте.
Как показал опрос - на этом вопросе иногда может споткнуться даже программист с опытом. Давайте разберемся.
В 1С параметры передаются в методы (процедуры и функции)
✔️ по ссылке. Это значит, что процедура или функция может изменить переменную, которую вы ей передали.
✔️ по значению. Метод работает с "копией" исходной переменной и не меняет ее.
По умолчанию - переменная передается по ссылке.
👉Подробнее
Когда мы вызываем
РассчитатьСкидку(Цена)
в функцию попадает не просто конкретное число (текущее значение переменной) , а ссылка на переменную Цена. Параметр
Сумма внутри функции фактически указывает на ту же переменную, что и Цена снаружи.Поэтому строка:
Сумма = Сумма - 10;
меняет не только
Сумма внутри функции, но и исходную переменную Цена.👀Но всё меняется, когда приходит Знач
Чтобы передать параметр по значению, в 1С используется ключевое слово
Знач.Функция РассчитатьСкидку(Знач Сумма)
Сумма = Сумма - 10;
Возврат Сумма;
КонецФункции
Теперь при вызове функции 1С сначала делает копию значения переменной
Цена.Сама функция по прежнему вернет 90, а вот исходная переменная цена НЕ изменится
Полезно? Ставь 🔥
🤣 BGcalls. Программист 1С Здесь обсуждаем все, что должен знать программист от стажера до миддла