Имя колонки ТЗ задается программно #578274


#0 by Fomania
Подскажите пожалуйста, как обратиться к ячейке таблицы и изменить значение, если мне нужно сделать действие такого типа: СтрокаТаблицыЗначений.ИмяКолонки = СтрокаТаблицыЗначений.ИмяКолонки+Число; Но имя колонки мне неизвестно, я программно получаю имя колонки из файла - т.е. создается таблица с заранее неизвестным количеством колонок. Как потом к ним обращаться? Может нужно как-то через индекс это делать, но у меня не получилось. Пробовала примерно так: СтрокаТЗ.Установить(ИндексКолонки, Строка[ИндексКолонки]+Число); Очень надо, заранее спасибо!
#1 by Axel2009
Строка["ИмяКолонки"] = Неопределено
#2 by Starhan
где логика. Создаю неизвестное количество колонок, как потом к ним обращаться. У меня закономерный вопрос. Откуда ты знаешь к какой колонке ты хочешь обратиться?
#3 by izekia
это должно работать или проще СтрокаТЗ[ИндексКолонки] = СтрокаТЗ[ИндексКолонки] + Число
#4 by izekia
скорее всего у тебя на этапе получения строки проблема давай код
#5 by Reset
1. Если известно имя колонки, то СтрокаТЗ[ИмяКолонки]=СтрокаТЗ[ИмяКолонки]+Число; 2. Если известен индекс колонки, то ИмяКолонки=ТЗ.Колонки[Индекс].Имя; и далее 1.
#6 by Starhan
надо смортеть как создаешь колонки
#7 by Reset
+ Через Установить:
#8 by Starhan
ты думаешь ей надо просто к каждой колонке прибвавить полученное число? я так понял число - это индекс колонки. О_о
#9 by izekia
я не телепат выдержка из сп: Элементы коллекции: Произвольный Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются значения в колонке данной строки. Возможно обращение к значению колонки данной строки посредством оператора [...]. В качестве аргумента передается индекс колонки (нумерация с 0).
#10 by izekia
так что работает и не надо никакого имени
#11 by Reset
??
#12 by Reset
Через имя тоже работает. Не понял, к чему это.
#13 by Starhan
код рабочий если Индекс колонки число в пределах диапозона индексов а "Число" имеет тип слогаемый с со значением в Строка[ИндексКолонки]
#14 by Starhan
хотя вру хз чо такое строка в будет правильно :)
#15 by izekia
я в ответ на вот на эту часть написал: "2. Если известен индекс колонки, то ИмяКолонки=ТЗ.Колонки[Индекс].Имя; и далее 1. "
#16 by izekia
+ лишняя операция
#17 by Reset
:) А копипаста зачем? Я где-то говорил, что нельзя через число? Где? :) Или научился копипастить и хвастаешься? Версия через числовой индекс уже была тебя в . Я просто привел другие варианты. В каких-то случаях они могут быть хуже, в каких-то лучше. Мне вообще нельзя писать что-то в темах, где ты что-то предложил? Твои ответы единственно верные и точные? Ты один такой профи и все должны молчать и завидовать? :))
#18 by Fomania
Я выгружаю данные из текстового файла в таблицу. Если выгружать без отбора, получаются такие колонки: ИмяГостя (в гостинице), КодНачисления (за услуги), СуммаНачисления. Мне нужно получить таблицу, где каждый код начисления будет отдельной колонкой, а в ячейке ИмяГостя[КодНачисления] будут суммироваться суммы начисления. ТЗ = Новый ТаблицаЗначений;
#19 by Reset
Во все не врубался, конец можно заменить на:
#20 by izekia
чтобы показать что у меня есть сп. Нет. Нигде. Нет, хвастаюсь наличием сп. Можно. Нет. Да, но можно не молча, а еще и восхвалять))
#21 by Reset
копирование-зло )
#22 by Starhan
Зачем ще раз искать строчку?
#23 by Reset
Короче, перепишите кусок кода девушке, мне работать надо :)
#24 by izekia
вкратце:
#25 by Fomania
Почему-то при попытке вывести строку методом Сообщить не удалось получить данные, хотя из Если она работает. хотя по идее и после КонецЕсли данные должны быть доступны
#26 by Starhan
последняя строчка не правильно
#27 by Reset
смотри, в все уже более-менее прилично, только последнюю стороку взять из - там ошибка с 1 параметром в "Установить", в остальном правильно (имхо)
#28 by izekia
(точно, копипаст - зло
#29 by izekia
читать последнюю как:
#30 by izekia
спасибо за восторженные отзывы)
#31 by Starhan
опять ошибка. Строка нет такой переменной, есть СтрокаТЗ
#32 by Reset
Кстати "Строка" нигде не определено(может, До этого кода?), так что открытый вопрос, должно быть ... =Строка[   или  ... =СтрокаТЗ[
#33 by Reset
Заказывали восхвалять.
#34 by izekia
да что же делать)) дайте ТС тоже поработать)
#35 by izekia
)))
#36 by Fomania
с этой поправкой все заработало! Спасибо всем огромное!!!
#37 by Reset
По прежнему не вникая в задачу, провел еще дополнительный рефакторинг (после )
#38 by Fomania
Только там = СтрокаТЗ[КолонкаТЗ.Имя] )
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С