Имя: Пароль:
1C
1С v8
Здравствуйте есть вопрос как вернуть два результата функции
0 daniyar5436
 
28.01.13
12:46
хочу написать функцию которая бы возвращала к примеру товар и его количество но одной функцией что то не могу понять как это делается не хочется две функции писать на каждый результат
1 Галахад
 
гуру
28.01.13
12:47
Возвращай тз, структуру или еще чего-нибудь.
2 Ёпрст
 
28.01.13
12:48
или пользуй процу
3 lapinio
 
28.01.13
12:48
Передать = Новый Структура("Товар,Количество",А,10);

Возврат Передать
4 Эмбеддер
 
28.01.13
12:48
возвращать значение можно через любой параметр
5 daniyar5436
 
28.01.13
12:49
понятно придется хотелось бы что нибудь по элегантнее типа
количество = вернутьТоварКоличество(Склад).количесво;
товар = вернутьТоварКличество(склад).Товар;
6 Эмбеддер
 
28.01.13
12:49
(3) а потом выдергивать из структуры результат, да еще и проверять что вернули именно структуру
7 alexei366
 
28.01.13
12:49
Ну или передавать нужные переменные в качестве параметров, а в функции их инициализировать.
8 Ник второй
 
28.01.13
12:50
(6) И это нормально.
9 alexei366
 
28.01.13
12:50
(5) Так у тя 2 раза функция выполняться будет
10 Ник второй
 
28.01.13
12:50
(7) Передавать в структуре.
11 lapinio
 
28.01.13
12:50
Это как вариант, Можно так написать процедуру написать и передать 2 параметра.
12 Ник второй
 
28.01.13
12:51
(5) СтруктураДанных = вернутьТоварКоличество(Склад);
13 IamAlexy
 
28.01.13
12:51
как то все слишком коварно..

надо писать влоб: две функции!
14 daniyar5436
 
28.01.13
12:51
склоняюсь к структуре. спасибо за направление. Всем большое спасибо...
15 daniyar5436
 
28.01.13
12:52
Боюсь я две функции при работающей программе начнутся тормоза... хотя можно отнестись работает и ладно.
16 Эмбеддер
 
28.01.13
12:53
(15) а если 3 функции то все зависнет!
17 Я не курил
 
28.01.13
12:57
(16) с четырмя вообще.. апокалипсис
18 Смешной 1С
 
28.01.13
13:20
(17) Я видел одну программу с пятью функциями, вы только представьте, целых ПЯТЬ функций, она даже не запускалась и свет во всем здании выключался...
19 IamAlexy
 
28.01.13
13:26
толькоссыкуны пользуются структурами..

реальные пацаны делают 2 функции
20 Infsams654
 
28.01.13
13:48
(15) ну делай тогда
Функция вернутьТоварКоличество(Склад, ЧёТеНадо)

вернутьТоварКоличество(Склад, "количесво")
21 Sammo
 
28.01.13
13:51
Делай структурой, а функция будет возвращать работу без ошибок.
(19) Данные могут быть взаимосвязанные, например, получение запросом - тогда лучше получить их 1 раз
22 hhhh
 
28.01.13
13:53
но реально, если как в (3) возвращать структуру, то как раз у автора и получится

количество = вернутьТоварКоличество(Склад).количесво;
товар = вернутьТоварКличество(склад).Товар;
23 Эмбеддер
 
28.01.13
14:26
(22) да и прямо скажем странная задача - функция возвращает наименование 1 товара на складе. а если на складе 20 наименований, что она должна вернуть?
24 Эмбеддер
 
28.01.13
14:33
в модуле ОбщегоНазначения почему-то структуру делать не стали, а сделали как проще - через параметры

Функция УстановитьВнешнееСоединение(Параметры, СтрокаСообщенияОбОшибке = "", ОшибкаПодключенияКомпоненты = Ложь) Экспорт
25 Эмбеддер
 
28.01.13
14:33
да и много где вообще в 1С есть такой параметр Отказ=Ложь, который меняется при вызове процедуры
26 Ахиллес
 
28.01.13
14:34
(19) Интересно, индусские программисты поют и танцуют на рабочем месте? Ну типа, как в знаменитых индийских фильмах.
27 zak555
 
28.01.13
14:36
(0) по какому критерию функция будет понимать, что нужно вернуть именно такой товар ?

может нужная функция, вычисляющая количество от параметра номенклатура ?
28 Jofa
 
28.01.13
14:56
(27)Думаю у них есть 1С : Телепат бот который скажет какой товар !
29 del123
 
28.01.13
15:03
(22) Если сделать, как ты написал, то функция будет вызываться два раза) надо как в (12)