Имя: Пароль:
1C
1С v8
v8: Методический вопрос по передаче параметров в функцию и их возврат.
0 Doomer
 
06.09.11
09:11
1. Правильный вариант №1 56% (5)
2. Правильный вариант №2 44% (4)
Всего мнений: 9

Часто встречаю в типовых такой код:
Перем а;
ЗаполнитьЗначение(а);
Б=а[0];

Я же привык к такому коду:

а=ЗаполнитьЗначение();
Б=а[0];

Т.е. в типовых часто в процедуру передают переменную с которой идет работа внутри этой процедуры. По окончании работы процедуры используется изменная переменная.
Я же привык (по моему так и учили) что нужно стремиться чтобы функции и процедуры были автономны и для возврата параметра лучше использовать функции.
Так как правильно?
16 Jolly Roger
 
06.09.11
09:24
точнее, должно быть так:

Перем а;
а = новый НужныйОбъект;
ЗаполнитьЗначение(а);
Б=а[0];

Правильный вариант №1
17 Тихий омут
 
06.09.11
09:28
имхо, сложившееся за 18 лет программирования:
1. если функция проста и однозначна (типа математических синусов и проч.) - она должна возвращать результат своей работы - значение, полученное в результате вычислений
2. если функция сложнее простой арифметики - она должна возвращать код результата (ошибка или всё ок), в вот результат своей работы - структуру, значение и проч. - уже через параметры.
код, написанный с таким подходом, надёжен и понятен.
не знаю, как проголосовать сразу за всех (против всех [за себя])? :)))

Правильный вариант №1
18 SeraFim
 
06.09.11
09:29
Привык делать, как в №2, но потом пару раз наткнулся, что нужно возвратить Истину или Ложь, в случае успеха/неуспеха заполнения.
Перем а;
Если ЗаполнитьЗначение(а) тогда
Б=а[0];
КонецЕсли;

Переучиваюсь на №1

Правильный вариант №1
51 sttt
 
06.09.11
10:14
а я специально так делаю ))

Правильный вариант №1
175 Mort
 
06.09.11
12:28
Я вообще за второй вариант, но 1-й заслуживает "жизни" в единственном случае - если никогда не изменяет тип параметра и ничего не возвращает.

Правильный вариант №1