Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

УТ11 Вопрос по СтрокаТаблицыЗначений

УТ11 Вопрос по СтрокаТаблицыЗначений
Я
   yuraskas
 
01.06.18 - 09:26
В цикле получаю строку таблицы значений. Как вывести в переменную имя колонки конкретного поля?

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

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

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

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

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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует