|
v7: Как-то можно получить все переданные аргументы в функцию? ↓Ø (Волшебник 07.11.2024 07:49) | ☑ | ||
---|---|---|---|---|
0
sysadminlk
06.11.24
✎
18:17
|
Можно ли как-то собрать все переданные аргументы в функцию?
Есть ли аналог func_get_args из php в 1с? Мне нужно что-то типо того, только чтоб явно не было указано количество входящих аргументов, чтоб оно было динамическим Функция Дебаг(я1=,я2=,я3=,я4=,я5=,я6=,я7=,я8=,я9=,я0=) Экспорт Сп = СоздатьОбъект("СписокЗначений"); Сп.ДобавитьЗначение(я1); Сп.ДобавитьЗначение(я2); Сп.ДобавитьЗначение(я3); Сп.ДобавитьЗначение(я4); Сп.ДобавитьЗначение(я5); Сп.ДобавитьЗначение(я6); Сп.ДобавитьЗначение(я7); Сп.ДобавитьЗначение(я8); Сп.ДобавитьЗначение(я9); Сп.ДобавитьЗначение(я0); Стр = ""; Для н=1 По Сп.РазмерСписка() Цикл зн = Сп.ПолучитьЗначение(н); Если ТипЗначения(зн) <> 0 Тогда Стр=Стр+"("+ТипЗначенияСтр(зн)+")"+СокрЛП(зн)+" "; КонецЕсли; КонецЦикла; Сообщить(Стр,""); КонецФункции Дебаг(Логин, СпрСотр.Login); |
|||
1
big
06.11.24
✎
18:44
|
В параметрах передавать уже заполненный ранее список.
Мало того, в списке значений можно передавать любые значения, причем именованные. |
|||
2
sysadminlk
06.11.24
✎
18:58
|
ну тогда перед
Дебаг(Логин, СпрСотр.Login); нужно будет сп=создатьОбъект(СписокЗначений); Сп.ДобавитьЗначение(Логин); Сп.ДобавитьЗначение(СпрСотр.Login); Дебаг(Сп); Слишком много писать приходится идея была меньше текста писать ))) |
|||
3
Builder
06.11.24
✎
19:01
|
(2) Бери деньги за количество кода. Будешь больше писать....
|
|||
4
Aleksey
06.11.24
✎
19:08
|
(2) как бы в типовых так и реализовано
|
|||
5
big
06.11.24
✎
19:37
|
(2) Правильнее будет так:
сп=создатьОбъект(СписокЗначений); Сп.ДобавитьЗначение(Логин,"login"); Сп.ДобавитьЗначение(СокрЛП(СпрСотр.Login),"login_sotr"); Дебаг(Сп) Функция Дебаг(Парам) Логин = Парам.Получить("login"); СотрЛогин = Парам.Получить("login_sotr"); и т.д. и т.п. КонецФункции |
|||
6
sysadminlk
06.11.24
✎
19:40
|
ясно, походу никак ))
|
|||
7
Волшебник
модератор
06.11.24
✎
19:55
|
(6) Хватит гнать хуйню на форум!
Это тебе последнее предупреждение! |
|||
8
Злопчинский
06.11.24
✎
20:18
|
(6) Передавай список. или ТЗ. количество позиций в СЗ или ТЗ - неограничено. Уже ж написали. Что не подходит?
. Опять же если что можно извернуться через Шаблон дополнительно к СЗ или тЗ |
|||
9
Волшебник
06.11.24
✎
20:22
|
(8) Надо передавать структуру, там поля доступны по именам.
|
|||
10
Злопчинский
06.11.24
✎
20:56
|
(9)(6) список значений - значения доступны по именам, за неимением структуры в клюшках подойдет.
можно использовать АссоциативныйВектор также в 77, там еще "ближе" к нормальному именованию, типа ЧтоТо = КакойтоАссоциативныйВектор.КакоетоИмя |
|||
11
sysadminlk
06.11.24
✎
21:07
|
(10) Мне это нужно для вывода в одной строкой в окно сообщений нескольких переменных разных типов, так как Сообщить() не умеет делать вот так
Сообщить(ЧтоТо, ГдеТо, КогдаТо); |
|||
12
Злопчинский
06.11.24
✎
21:46
|
все выводимое в окно сообщений - приводится к строкам
Что мешает выводить Сообщить(""+Что+Где+Когда) ? |
|||
13
Злопчинский
06.11.24
✎
21:46
|
опять же если у тебя заранее неизвестна конструкция строки - ты можешь сконструировать строку вывода и получить ее значение через Шаблон()
|
|||
14
sysadminlk
06.11.24
✎
22:45
|
Процедура Тест(Ин)
Пер = СтрЗаменить(Ин,",",РазделительСтрок); Для _=1 По СтрКоличествоСтрок(Пер) Цикл Сообщить(Шаблон("["+СтрПолучитьСтроку(Пер,_)+"]")); КонецЦикла; КонецПроцедуры // Тест() Процедура Сформировать() Товар = "Сковородка Tefal"; Кол = 2; Цена = 1250.25; Тест("Товар,Кол,Цена,Цена*Кол"); КонецПроцедуры // Сформировать А значения переменных в Тест() как-то можно передать? Или контекст процедуры Сформировать |
|||
15
MWWRuza
06.11.24
✎
22:51
|
Ну, вторым параметром СЗ со списком переменных передайте.
Или, как вариант, если они в одном модуле - объявите их в начале модуля. Но, ИМХО - правильнее через параметр. |
|||
16
Злоп
07.11.24
✎
00:36
|
(14) как-то мутно, так и не понял ЧТО тебе надо.
Вангую что имеет смысл глянуть сюда https://forum.dorex.pro/index.php?topic=3.0 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |