# Форум 1С > Конфигурирование, программирование 1С - Предприятие >  Получение элемента по индексу для значения не определено

## KRUTO

Ребята, подскажите, на форме есть таблица, присваиваю одной из ее ячеек значение типа "структура". При обращение к этой ячейки получаю сообщение "Получение элемента по индексу для значения не определено".

вот примерный код: 


```
НоваяСтрока				= ТекущаяНастройка.Строки.Добавить();
		НоваяСтрока.Обработка 	= ЭлементыФормы.ТекущаяНастройка.Значение;
		ТекущаяНастройка 		= НоваяСтрока;
		ЭтаФорма.ЭлементыФормы.ДоступныеОбработки.ТекущаяСтрока = НоваяСтрока;
ТекущаяНастройка.Настройка = НоваяНастройка;

сообщить("1 " + ЭтаФорма.ЭлементыФормы.ДоступныеОбработки.ТекущаяСтрока.Настройка["РеквизитыДляСохранения"]);
```

Если я обращаюсь напрямую к структуре "НоваяНастройка" ошибки нет, а если присвоить ячейке в таблице - косяк. Что не так? спасибо

----------


## avm3110

А через
ЭтаФорма.ЭлементыФормы.Дос  тупныеОбработки.ТекущаяСт  ока = НоваяСтрока;

ты видать думаешь, что обработка сама  "на форме" меняет положение строкИ? С чего ты так решил?

----------


## KRUTO

А через
ЭтаФорма.ЭлементыФормы.Дос тупныеОбработки.ТекущаяСт? ?ока = НоваяСтрока; 
Я же этим задал положение строки, забыл сказать, что 'доступныеобработки' - это таблица на форме с типом 'дерево значений'

----------


## avm3110

> А через
> ЭтаФорма.ЭлементыФормы.Дос тупныеОбработки.ТекущаяСт? ?ока = НоваяСтрока; 
> Я же этим задал положение строки, забыл сказать, что 'доступныеобработки' - это таблица на форме с типом 'дерево значений'


Вы действительно уверены, что присваивая что-либо ЭтаФорма.ЭлементыФормы. можно менять отображение на экранной форме?

Вы можете менять только реквизиты ЭтотОбъект, а ЭтаФорма управляется иначе

----------


## KRUTO

Понял вас, спасибо

----------


## KRUTO

Буду курить

----------


## KRUTO

> Вы действительно уверены, что присваивая что-либо ЭтаФорма.ЭлементыФормы. можно менять отображение на экранной форме?
> 
> Вы можете менять только реквизиты ЭтотОбъект, а ЭтаФорма управляется иначе


Ну вот этот код работает:


```
НоваяСтрока = ТекущаяНастройка.Строки.Добавить();
	НоваяСтрока.Обработка = ЭлементыФормы.ТекущаяНастройка.Значение;
	ТекущаяНастройка = НоваяСтрока;
	ЭтаФорма.ВладелецФормы.ЭлементыФормы.ДоступныеОбработки.ТекущаяСтрока = НоваяСтрока;
	ТекущаяНастройка.Настройка = НоваяНастройка;
	сообщить("0 " + ТипЗнч(ТекущаяНастройка.Настройка));
```

Строка на форму добавляется...
Только типзнч(ТекущаяНастройка.На  стройка) строка получается.  Форма - обычная, неуправляемая.

----------


## avm3110

Давайте сначала. Что хотите?
И еще, ну чтобы не было путаницы.
Есть объект (например элемент справочника), у которого есть реквизиты и табличные части.
Есть Форма в которой отображается Объект и есть элементы формы в которые отображаются реквизиты и табличные части.

когда Вы добавляете строку в табличную часть программно - у вас соответственно это отображается на Форме.
Вы всегда можете узнать, какая строка на форме является "Текущей"... И-и-и-и... что хотите сделать и что хотите получить?

ПыСы.. Чтобы не путаться, давайте своим реквизитам и табличным частям какие-то "не стандартные имена, а то лично у меня происходит путаница, когда вижу типа ТекущаяНастройка.Строки.До  бавить()

----------


## KRUTO

Ну вот, постараюсь объяснить, с терминологией  у меня беда). Есть переменная  формы  (или реквизит формы) "ДоступныеОбработки" с типом значения "Деревозначений", и ее отображение на форме в виде таблице.  Оно тоже называется ""ДоступныеОбработки". "ДоступныеОбработки" - это НЕ реквизит объекта.обработка. Я сделал 3 колонки на форме в этой таблице. Одной из колонок хочу присвоить значение типа "структура". Но этой колонке присваивается значение "строка". Вот вопрос - как присвоить значение типа "структура". В структуре хранится таблица значений.

----------


## avm3110

Вообще-то "таблица на форме" - это весьма плохой объект для отображения "Дерева значений".

А вам точно нужно "дерево"?

----------


## KRUTO

А какой тогда объект использовать? Можно и не дерево, а просто таблицу, хотя хотелось бы дерево

----------


## avm3110

Используй ТаблицуЗначений. ТЗ она "двумерная" и нет проблем с постоянным гимором "родитель-потомок".

----------


## KRUTO

> Используй ТаблицуЗначений. ТЗ она "двумерная" и нет проблем с постоянным гимором "родитель-потомок".


Ну вот, капец, с таблицей значений всё получается...
А с деревом - ерунда. Просто взял обработку "универсальныйподбориобра  откаобъектов". Переделываю для РегистровНакопления (ради спортивного интереса). Так вот там дерево и оно позволяет сохранять структуру, я точно такую же таблицу делаю, только с деревом, а она сохраняет строку и всё тут... А таблица значений работает...

----------


## avm3110

Работа с деревом требует более глубоких знаний 1С :-)

----------

KRUTO (21.03.2017)

----------


## KRUTO

Пришла идея, опробую

----------


## KRUTO

капец, не брался пару дней за эту фигню. Открыл, решил сменить название переменной, куда сохраняется дерево (с помощью метода "сохранитьзначение". И всё встало на свои места. Что-то намудрил... Получается: при создании подстроки дерева - она создается с теми же типами значения, что и родительИ?

----------


## avm3110

Да, имеено

----------

