![]() |
|
Строку ТаблицыЗначений выгрузить в структуру. можно? | ☑ | ||
---|---|---|---|---|
0
Shved_72
15.04.13
✎
18:43
|
ТаблицаЗначений[0].Выгрузить (Структура)
ПС часто запросы выдают одну строку, а таблица значений на клиента не передается. хочу красиво |
|||
1
exwill
15.04.13
✎
18:45
|
(0) Ну разве что, ЗаполнитьЗначенияСвойств тебе поможет.
|
|||
2
Fragster
гуру
15.04.13
✎
18:46
|
заполнитьЗначенияСвойств, обход колонок... использовать первую строку как структуру...
|
|||
3
Shved_72
15.04.13
✎
18:50
|
в чистую структуру не проканало...
тестю дальше |
|||
4
Fragster
гуру
15.04.13
✎
18:54
|
(3) что мешает сразу использовать как структуру? надо добавлять значения?
|
|||
5
Shved_72
15.04.13
✎
18:59
|
(4) а как результат запрос конвертнуть в структуру?
одной строкой желательно и универсально для 15464 разных запросов возвращающих одной строку |
|||
6
Fragster
гуру
15.04.13
✎
19:08
|
Для каждого Колонка Из ТЗ.Колонки Цикл
Структура.Вставить(Колонка.Имя, ТЗ[0][Колонка.Имя]); КонецЦикла Но почему не использовать сразу строку? |
|||
7
Shved_72
15.04.13
✎
19:15
|
с обходом по колонкам получилось
ТЗ = Запрос.Выполнить().Выгрузить(); КолонкиТЗ = ТЗ.Колонки; СписокСвойств = ""; Для каждого КолонкаТЗ Из КолонкиТЗ Цикл СписокСвойств = СписокСвойств + КолонкаТЗ.Имя + ","; КонецЦикла; Ск = Новый Структура(СписокСвойств); ЗаполнитьЗначенияСвойств(Ск,ТЗ[0],СписокСвойств); но хотелось бы короче |
|||
8
Shved_72
15.04.13
✎
19:16
|
(6) какую строку? строку ТЗ. она не возвращается на клиента
|
|||
9
Любопытная
15.04.13
✎
19:19
|
А зачем таблица значений на клиенте?
|
|||
10
exwill
15.04.13
✎
19:22
|
(7) ЗаполнитьЗначенияСвойств же.
|
|||
11
Shved_72
15.04.13
✎
19:22
|
на клиенте хочу нечто, через что можно обращаться как "нечто.Свойство". Пока для нечто нашел только Структуру которая есть на сервере и тонком клиенте
|
|||
12
Shved_72
15.04.13
✎
19:23
|
(10) непонял. колонки собрать через ЗаполнитьЗначенияСвойств ?
|
|||
13
exwill
15.04.13
✎
19:23
|
+(10) вроде, короче не получится
|
|||
14
Лефмихалыч
15.04.13
✎
19:26
|
(0) какая половая религия мешает общую функцию сделать, которая на вход получает строку и коллекцию колонок (или например саму таблицу и опциональный номер строки по умолчанию равный нулю), а возвращает структуру со значениями?
|
|||
15
Лефмихалыч
15.04.13
✎
19:26
|
(12) не поможет тебе это. Точнее поможет, но от цикла по колонкам не избавит
|
|||
16
Shved_72
15.04.13
✎
19:28
|
(14) для этого и делаю, но наделся на чудо типо
Запрос.Выполнить().Выгрузить().Выгрузить(Структура) |
|||
17
Поросенок Петр
15.04.13
✎
19:53
|
Вообще есть доля истины в словах автора. В УФ частенько приходится отправлять данные строки в безконтекстный серверный метод и постоянно собирать поля в кучу (структуру) подзоипало. Могли бы что-нибудь и придумать.
|
|||
18
Лефмихалыч
15.04.13
✎
19:58
|
(17) может когда-то и придумают. В конце концов ведь ЗначениеЗаполнено() была не всегда
|
|||
19
Defender aka LINN
15.04.13
✎
20:09
|
(17) Говорят, в 1С можно всякие штуки-дрюки писать, которые, типа, функциями называются.
|
|||
20
Поросенок Петр
15.04.13
✎
20:13
|
(19) Все функции типа "ОбщегоНазнчения", которые приходится включать в _каждую_ конфигурацию, это суть костыли к платформе.
|
|||
21
Поросенок Петр
15.04.13
✎
20:14
|
+(20) Указанный в (18) "ЗначениеЗаполнено" есть прекрасный к тому пример.
|
|||
22
Defender aka LINN
15.04.13
✎
20:16
|
(20) Лично мне такая функция нигде не впилась за все время работы, ни в единой конфигурации, не говоря уж о том, чтобы ее везде пихать.
|
|||
23
Поросенок Петр
15.04.13
✎
20:37
|
(22) Уверен что тебе (как и любому другому) 15-20% функций уже существующих в 1С никуда не впились (ну и 1-5 % про которые даже не знаешь). Это не значит, что они лишние.
|
|||
24
hhhh
15.04.13
✎
22:48
|
(23) а у автора в (7) разве не набор костылей? Сначала он сливает имена колонок в строку через запятую, потом эту же строку разбивает опять на имена. И потом в завершение применяет супертормозную функцию ЗаполнитьЗначенияСвойств.
Хотя в (6) ему привели решение в 3 строчки, которое будет работать гораздо быстрее. |
|||
25
Shved_72
16.04.13
✎
04:16
|
(6), (24) спасибо
чото сразу невкурил,конечно так еще красивше ТЗ = Запрос.Выполнить().Выгрузить(); Ск = Новый Структура; Для каждого КолонкаТЗ Из ТЗ.Колонки Цикл Ск.Вставить(КолонкаТЗ.Имя, ТЗ[0][КолонкаТЗ.Имя]); КонецЦикла; Возврат (Ск); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |