Имя: Пароль:
1C
1С v8
УТ11 Вопрос по СтрокаТаблицыЗначений
, ,
0 yuraskas
 
01.06.18
09:26
В цикле получаю строку таблицы значений. Как вывести в переменную имя колонки конкретного поля?

В помошнике в СтрокаТаблицыЗначений есть единственное свойство: <Имя колонки>, как его получить в переменную?
1 hhhh
 
01.06.18
09:28
(0) СтрокаТаблицыЗначений.Владелец().Колонки
2 yuraskas
 
01.06.18
09:42
(1) Мне ж нужно узнать имя колонки конкретной позиции, чтото типа такого стрЭ[1].Владелец.Колонки, а как это сделать?
3 НЕА123
 
01.06.18
09:46
стрЭ.Владелец.Колонки[1]
4 yuraskas
 
01.06.18
09:55
(3) я делаю обход строк а не колонок. Этот вариант не проходит
5 Buster007
 
01.06.18
10:09
(0) так в чем дело то?
6 Antony8x
 
01.06.18
10:10
(3) :)
7 catena
 
01.06.18
10:17
(4)Т.е., у тебя есть стр.ИмяКолонки и тебе хочется получить "ИмяКолонки"? В чем проблема, если ты его знаешь?

Два варианта:

Для каждого Стр из ТЗ
   Значение = Стр[0];
   ИмяКолонки = ТЗ.Колонки[0].Имя;
КонецЦикла;

Для каждого Стр из ТЗ
   Значение = Стр.Номенклатура;
   ИмяКолонки = "Номенклатура";
КонецЦикла;

Твой какой?
8 dezss
 
01.06.18
10:20
(7) Ну ему же нужно имя колонки строки, а не имя колонки ТЗ, что бы это ни значило.)))

(0) Может тебе нужно получить имя колонки текущего выделенного элемента строки?
9 yuraskas
 
01.06.18
10:22
вот это уже ближе
Для каждого Стр из ТЗ
   Значение = Стр[0];
   ИмяКолонки = ТЗ.Колонки[0].Имя;
КонецЦикла;
10 Малыш Джон
 
01.06.18
10:25
(0) ну ты же из строки как-то само поле получаешь? по аналогии - из коллекции колонок получай колонку с именем.
11 yuraskas
 
01.06.18
10:28
Смысл задачи: обойти первою строку в таблице значений, и там где пустое значение, определить имя колонки, и вывести это имя в массив.
12 dezss
 
01.06.18
10:34
(11) а затем?
13 Малыш Джон
 
01.06.18
10:36
(11) пустое значение как определять собираешься? цикл по полям строки?
14 yuraskas
 
01.06.18
10:36
(12)так а затем это уже другая история, как решить (11)
15 catena
 
01.06.18
10:38
(14)Эээ... Из (9) (11) решается добавлением двух строк.
16 yuraskas
 
01.06.18
10:49
(15) в (9) у тебя идет обращение по конкретному индеку ("ТЗ.Колонки[0].Имя;") - так работает. Но для СтрокаТаблицыЗначений нельзя задать цикл с ПО.
17 yuraskas
 
01.06.18
10:49
и мне не определить имя колонки для текущей ячейки строки.
18 dezss
 
01.06.18
10:50
(14) если тебе вывести сообщение пользователю, то не надо имя колонки определять, надо использовать СообщениеПользователю.
19 dezss
 
01.06.18
10:51
(17) Возможно обращение к значению колонки данной строки посредством оператора [...]. В качестве аргумента передается индекс колонки (нумерация с 0).

И это будет тот же самый индекс, что и индекс колонки ТЗ.
20 dezss
 
01.06.18
10:52
(16) что мешает создать цикл с ПО?
21 perester
 
01.06.18
10:54
я походу понял
для каждого строка из ТЗ цикл
        для каждого колонка из строка.владелец().колонки цикл
            если значениезаполнено(строка[колонка.имя]) тогда
                
            КонецЕсли;
            
        КонецЦикла;
    КонецЦикла;

Только по идее надо
для каждого строка из ТЗ цикл
        для каждого колонка из тз.колонки цикл
            если значениезаполнено(строка[колонка.имя]) тогда
                
            КонецЕсли;
            
        КонецЦикла;
    КонецЦикла;
22 catena
 
01.06.18
10:55
(16)12 лет... За 12 лет счетчиком ни разу не пользовался? Серьезно?
23 yuraskas
 
01.06.18
10:57
(22) Уже не помню :) Не, ну чтобы получить имя колонки надо столько городить кода, это конечно сугс.
24 dezss
 
01.06.18
10:59
(23)
И где тут много кода?
Или вариант из (21).

Для каждого стр из ТЗ Цикл
    Для й = 0 По ТЗ.Колонки.Количество()-1 Цикл
        ЗначениеМоейКолонки = стр[й];
        ИмяМоейКолонки = ТЗ.Колонки[й];
    КонецЦикла
КонецЦикла
25 yuraskas
 
01.06.18
11:01
Спасибо за обсуждение.