![]() |
![]() |
|
Как строку таблицыЗначений превратить в структуру? | ☑ | ||
---|---|---|---|---|
0
Мисти
08.01.15
✎
17:40
|
Строка содержит почти всё, что мне нужно, я ее хочу подсунуть в одну процедуру вместо структуры. Как ее преобразовать?
|
|||
1
Фокусник
08.01.15
✎
17:47
|
(0) можно попробовать прямо строку тз передать.
Преобразовать тоже не сложно: перебрать колонки ТЗ и в структуру добавить одноименные свойства :) |
|||
2
Мисти
08.01.15
✎
17:49
|
Мне надо туда еще одно поле вставить, прежде чем передавать.
Перебрать колонки ТЗ?? А чтоб само как-нибудь? |
|||
3
Фокусник
08.01.15
✎
17:54
|
(2) 4 строки кода всего :)
Создать новую структуру Цикл по колонкам (2 строки) Добавление нового свойства в структуру. Можно сделать функцию в общем модуле и пользоваться потом, если потребуется... |
|||
4
oslokot
08.01.15
✎
17:54
|
ТаблицаЗначений[0].Выгрузить(Структура)
|
|||
5
mrDSide
08.01.15
✎
17:55
|
// если совпадают имена колонок можно так:
Строка = Таблица[НомерСтроки0]; структура = Новый Структура(); Для каждого колонка Из Строка.Колонки Цикл структура.Вставить(колонка.Имя, Строка[колонка.Имя]) КонецЦикла; структура.Вставить("ЕщеПоле", ЗначениеДляИнициализации) |
|||
6
Мисти
08.01.15
✎
18:01
|
Спасибо, разжевали!
ТаблицаЗначений[0].Выгрузить(Структура) - а вот так-то - не бывает? |
|||
7
oslokot
08.01.15
✎
18:03
|
(6) не знаю, попробуй)
|
|||
8
Мисти
08.01.15
✎
18:07
|
(7) Вот я так по-английски разговариваю - строю неведомые конструкции, но при этом помогаю руками, выражением лица и т.д., меня понимают. Жаль, что с 1С это не проходит.
|
|||
9
oslokot
08.01.15
✎
18:07
|
А вообще, если красиво, то ЗаполнитьЗначенияСвойств
|
|||
10
Мимохожий Однако
08.01.15
✎
18:12
|
(8)Что самое любопытное, можно говорить на любом языке. Всё равно поймут.
|
|||
11
Мисти
08.01.15
✎
18:37
|
Так вот!
СтруктураШапкиДокумента.Колонки - не работает, потому что СтруктураШапкиДокумента - это уже строка таблицы значений. |
|||
12
Мисти
08.01.15
✎
18:40
|
СтруктураШапкиДокумента.Выгрузить(Структура) - тоже не работает
|
|||
13
unregistered
08.01.15
✎
18:45
|
В коде из (5) ошибка
вместо "Для каждого колонка Из Строка.Колонки Цикл" должно быть "Для каждого колонка Из Таблица.Колонки Цикл" |
|||
14
Мисти
08.01.15
✎
18:46
|
Да уж догадалась!
|
|||
15
unregistered
08.01.15
✎
18:51
|
Разницы особой нет, но я бы сделал как-то так:
// создание структуры Структура = Новый Структура; Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл Структура.Вставить(Колонка.Имя); КонецЦикла; Структура.Вставить("ЕщеОдинМойЭлементСтруктуры"); //заполнение структуры значениями из строк ТЗ Для Каждого СтрокаТЗ Из ТаблицаЗначений Цикл ЗаполнитьЗначенияСвойств(Структура, СтрокаТЗ); Структура.Вставить("ЕщеОдинМойЭлементСтруктуры", ЗначениеЕщеОдногоМоегоЭлементаСтруктуры); МояМегаПроцедураИмениМеняЛюбимогоКудаЯпередаюСтруктуруВКачествеПараметра(Структура); КонецЦикла; |
|||
16
Фокусник
08.01.15
✎
19:04
|
(11) если сама ТЗ не доступна (например не передаётся в процедуру), а доступна только строка ТЗ, то ТЗ можно получить так: СтрокаТЗ.Владелец()
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |