И так, на форму брошено табличное поле - Таблица.
ЭлементыФормы.Таблица.Колонки.Добавить() - добавлено много колонок.
ЭлементыФормы.Таблица.Значение.Добавить() - добавлено много строчек.
При открытии формы видны много строчек и много колонок. Пустые.

Вопрос: как заполнить ячейку ЭлементыФормы.Таблица[3,3]?
Или ЭлементыФормы.Таблица[X,Y]?

Спасибо.
---
Держи, думаю разберешься
---
Win98,

```1c
    МассивТипов = Новый Массив;
    МассивТипов.Добавить(Тип("СправочникСсылка.<ИмяСправочника>"));
    МассивТипов.Добавить(Тип("ДокументСсылка.<ИмяДокумента>"));
    Описание = Новый ОписаниеТипов(МассивТипов);

    Таблица.Колонки.Добавить("ИмяКолонки", Описание,,);
```

Попробуй.
И ещё.

ЭлементыФормы.Таблица.Значение.Добавить() - добавлено много строчек.
Ты просто добавляешь кучу строк? А как же их заполнение?
Ну хотя бы

```1c
    НоваяСтрока = Таблица.Добавить();
    НоваяСтрока.Реквизит1 = Значение1;
    НоваяСтрока.Реквизит2 = Значение2;
```

???
---
KlesAlex, Ты просто добавляешь кучу строк? А как же их заполнение?
Количество строк мне известно заранее, а что в них поместить я еще не знаю. Могу заполнить их нулями, например.
Как потом ноль в ячейке [3,3] заменить на "7"?
---
разместить на форме таблицу значений, заполнить ее программно полностью и вывести на форму.
---
artems, так вот не работает :(
Ниже (6) самый простой пример :(

ЧЯДН?
---
Win98, любую строку ТЧ ты можешь получить по её номеру

Если ты хочешь заполнить значение в строке [3.3]
можешь сделать так

Таблица[2].<ИмяКолонки> = ЗНАЧЕНИЕ(нужное тебе) 2 - номер строки. Нумерация с 0 начинается.
А вот координаты колонки не цифрой прописывай а именем колонки
---
KlesAlex, Таблица[2].<ИмяКолонки>
Что-то делаю не так, не работает :(
Сейчас просто пустой тестовый вариант буду делать, пошагово :)

1. Внешняя обработка. Бросаю элемент на форму.

```1c
    Процедура ПриОткрытии()
    Для НомерКолонки=1 по 10 Цикл
    ЭлементыФормы.ТабличноеПоле1.Колонки.Добавить(,Строка(НомерКолонки));
    КонецЦикла;
    Для НомерСтроки=1 по 10 Цикл
    ЭлементыФормы.ТабличноеПоле1.Значение.Добавить();
    КонецЦикла;
    ЭлементыФормы.ТабличноеПоле1[3].Колонка1 = "7";
    КонецПроцедуры
```

{Форма.Форма.Форма(13)}: Получение элемента по индексу для значения не определено
  ЭлементыФормы.ТабличноеПоле1[3].Колонка1 = "7";
---
Win98, не к табличному полю надо обращаться по индексу а к таблице значений

таблица сама у вас в реквизите "Значение" у элемента формы
---
KlesAlex,

```1c
    Процедура ПриОткрытии()
    Для НомерКолонки=1 по 10 Цикл
    ТабличноеПоле1.Колонки.Добавить("К"+Строка(НомерКолонки));
    КонецЦикла;
    Для НомерСтроки=1 по 10 Цикл
    ТабличноеПоле1.Добавить();
    КонецЦикла;
    ТабличноеПоле1[3].К1 = "7";
    КонецПроцедуры
```

Табличное поле на форме вообще пустое. Хотя ТабличноеПоле1 (на форме) имеет Данные ТабличноеПоле1
---
Win98,
(16) Win98,
теперь ты в ТЗ колонки создаешь а на форме нет.
---
На форме сделай табличное поле. Вот тебе пример:

ЭтотОбъект.ТабличноеПоле.Очистить();
 Структ=ПолучитьСтруктуруХраненияБазыДанных();
 ЭлементыФормы.ТабличноеПоле.Значение=Структ;
 ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
 КЧ = Новый КвалификаторыЧисла(12,0);
    Массив = Новый Массив;
    Массив.Добавить(Тип("Число"));
    ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ,КЧ);
 ЭлементыФормы.ТабличноеПоле.Колонки.Добавить("НомерТаблицы",ОписаниеТиповЧ);
 ЭтотОбъект.ТабличноеПоле.Колонки.Добавить("НомерТаблицы",ОписаниеТиповЧ);
 ЭтотОбъект.ТабличноеПоле=Структ.Скопировать();
---
deniseek77, в (6) простой пример, ЧЯДН?
---
Win98, ЭлементыФормы.ТабличноеПоле1[3].Колонка1 = "7";

попробуй:

```1c
    ЭлементыФормы.ТабличноеПоле1.Значение[3].Колонка1 = "7";
```
---
m-serg74,
{Форма.Форма.Форма(15)}: Поле объекта не обнаружено (Колонка1)
        ЭлементыФормы.ТабличноеПоле1.Значение[3].Колонка1 = "7";
---
Win98, значит там нет Колонки с именем Колонка1
---
m-serg74, в отладке смотрю (Шифт+Ф9) - есть :)
---
Win98,

ЭлементыФормы.ТабличноеПоле1.Колонки.Добавить(,Строка(НомерКолонки));

КолонкиТабличногоПоля.Добавить (TableBoxColumns.Add)
КолонкиТабличногоПоля (TableBoxColumns)
Добавить (Add)
Синтаксис:

Добавить(<Имя>, <ТекстШапки>)
Параметры:

ты присваиваешь ей Заголовок в шапке а имя "Колонка1" ты колонке не присваиваешь
---
m-serg74, ты присваиваешь ей Заголовок в шапке а имя "Колонка1" ты колонке не присваиваешь
Не-а, заголовок я присваиваю "1", "2" и т.д. а имя "Колонка1" и т.д. присваивается автоматом.
---
Win98, может... не проверял... но вообще через элемент формы обращаться и заполнять ТЗ... ИМХО фигня какая то...
заполнил данные в ТЗ, потом отобразил на форме...

ну может конечно я что то не понимаю)
---
ТЗ=Новый ТаблицаЗначений;
Тз.Колонки.Добавить("Колонка1");
Тз.Колонки.Добавить("Колонка2");
Для й=0 по 9 цикл
   СтрокаТЗ=ТЗ.Добавить();
   СтрокаТЗ.Колонка1="1";
   СтрокаТЗ.Колонка1="2";
Конеццикла;

Вот твоя таблица значений, на форме у тебя табличное поле, тебе нужно его заполнить, либо ТЗ скопировать в ТабличноеПоле на форме, либо переборами заполнить...
---
Держи, думаю разберешься
---
deniseek77, Спасибо, вот так сработало.

```1c
    Процедура ПриОткрытии()
    НоваяТЗ = Новый ТаблицаЗначений;
    Для НомерКолонки=1 по 10 Цикл
    НоваяТЗ.Колонки.Добавить("К"+Строка(НомерКолонки));
    КонецЦикла;
    Для НомерСтроки=1 по 10 Цикл
    СтрокаТЗ = НоваяТЗ.Добавить();
    КонецЦикла;
    ЭлементыФормы.ТабличноеПоле1.Значение = НоваяТЗ;
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
    ЭлементыФормы.ТабличноеПоле1.Значение[3][3] = "7";
    КонецПроцедуры
```

У меня подозрение что не хватает ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки(); сейчас подумаю куда ее можно ткнуть ;)
---
В примере текст

ЭлементыФормы.ТабличноеПоле1.Значение.Очистить();
 //очистим
 Тз=Новый ТаблицаЗначений;
 Тз.Колонки.Добавить("Колонка1");
 Тз.Колонки.Добавить("Колонка2");
 //создали 2 колонки
 Для й=0 по 9 цикл
 Строкатз=Тз.Добавить();
 //Создали 10 строк
КонецЦикла;
//Заполним ТабличноеПоле

ЭлементыФормы.ТабличноеПоле1.Значение=тз;
ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
ЭлементыФормы.ТабличноеПоле1.Значение.ЗаполнитьЗначения("Ого-го","Колонка2");
//Установим значение во 2 колонку
ЭлементыФормы.ТабличноеПоле1.Значение[3][0]="УРРА!";
//Установили в 1 колонке в 4 строке текст УРРА!
---
ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки(); ЭлементыФормы.ТабличноеПоле1.Значение[3][3] = "7"; КонецПроцедуры

а это кто?
---
у тебя уже есть СоздатьКолонки()
---
m-serg74, не, в моем самом первом примере
---
Win98, в этом?

И так, на форму брошено табличное поле - Таблица.
ЭлементыФормы.Таблица.Колонки.Добавить() - добавлено много колонок.
ЭлементыФормы.Таблица.Значение.Добавить() - добавлено много строчек.
При открытии формы видны много строчек и много колонок. Пустые.

Вопрос: как заполнить ячейку ЭлементыФормы.Таблица[3,3]?
Или ЭлементыФормы.Таблица[X,Y]?

Спасибо.

тут ты писал что много строк и КОЛОНОК видны
---
m-serg74, ага, видны, а обратится [][] не получается, короче, спишем на фичу 1С. Делаю как в (23).
Спасибо.
---
Win98, можно обратиться по координатам
вот тебе инструкция

ЭлементыФормы.Таблица.Значение[X][ЭлементыФормы.Таблица.Колонки[Y].Имя]

Где X и Y Координаты твоей ячейки.
Попробуй.
---
KlesAlex, ЭлементыФормы.Таблица.Значение[X][ЭлементыФормы.Таблица.Колонки[Y].Имя]

Наверное "Имя" лишнее: ЭлементыФормы.Таблица.Значение[X][ЭлементыФормы.Таблица.Колонки[Y]] ??

Сейчас попробую :)
---
KlesAlex,

```1c
    Процедура ПриОткрытии()
    Для НомерКолонки=1 по 10 Цикл
    ЭлементыФормы.ТабличноеПоле1.Колонки.Добавить("К"+Строка(НомерКолонки),Строка(НомерКолонки));
    КонецЦикла;
    Для НомерСтроки=1 по 10 Цикл
    ЭлементыФормы.ТабличноеПоле1.Значение.Добавить();
    КонецЦикла;
    ЭлементыФормы.ТабличноеПоле1.Значение[2][ЭлементыФормы.ТабличноеПоле1.Колонки[2].Имя] = "7";
    КонецПроцедуры
```

{Форма.Форма.Форма(13)}: Поле объекта не обнаружено (К3)
 ЭлементыФормы.ТабличноеПоле1.Значение[2][ЭлементыФормы.ТабличноеПоле1.Колонки[2].Имя] = "7";

:(
---
Win98, {Форма.Форма.Форма(13)}: Поле объекта не обнаружено (К3)
у тебя ошибка раньше обращения к ячейке происходит)
Установи в отладчике "Останавливаться по ошибке". Мой код работает - проверял)
---
KlesAlex,
Упростил:

```1c
    Процедура ПриОткрытии()
    Для НомерКолонки=1 по 10 Цикл
    ЭлементыФормы.ТабличноеПоле1.Колонки.Добавить(,Строка(НомерКолонки));
    ЭлементыФормы.ТабличноеПоле1.Значение.Добавить();
    КонецЦикла;

    ЭлементыФормы.ТабличноеПоле1.Значение[2][ЭлементыФормы.ТабличноеПоле1.Колонки[2].Имя] = "7";
    КонецПроцедуры
```

{Форма.Форма.Форма(7)}: Поле объекта не обнаружено (Колонка3)
 ЭлементыФормы.ТабличноеПоле1.Значение[2][ЭлементыФормы.ТабличноеПоле1.Колонки[2].Имя] = "7";

Ошибка в строке 7: ЭлементыФормы.ТабличноеПоле1.Значение[2][ЭлементыФормы.ТабличноеПоле1.Колонки[2].Имя] = "7";
---
Win98, Упростил

КолонкиТабличногоПоля (TableBoxColumns)
Добавить (Add)
Синтаксис:

Добавить(<Имя>, <ТекстШапки>)
Параметры:

<Имя> (необязательный)

Тип: Строка.
Имя колонки. Если имя колонки не указано, то будет сформировано имя вида "КолонкаN".

Как раз таки задать первый параметр более приоритетно. Хоть в этой задаче разницы и нет так как имя получаем из индекса. Но все же
---
KlesAlex, так он нормально ругается: Поле объекта не обнаружено (Колонка3), т.е. имя колонке задано верно, а вот в ЭлементыФормы.ТабличноеПоле1.Колонки[2].Имя] оно есть, а в ЭлементыФормы.ТабличноеПоле1.Значение[2] его нет :(
---
Win98, вы попробуйте сначала не в цикле а просто по индексу обратиться
только по существующему

И соответственно убедитесь что колонки вообще есть у вашей таблицы перед обращением
---
KlesAlex,
Так я и обращаюсь после цикла, а не в цикле, весь код 6 строчек, что именно поправить?
---
Не лишнее как раз

Потому что Таблица[0].Количество - обращение к ячейке в первой строке в колонке "Количество"
Соотвественно обращение по имени колонки без точки в [] скобках

То есть Таблица[0].Количество = Таблица[0]["Количество"]

"Количество" мы получаем из ЭлементыФормы.Таблица.Колонки.Количество.Имя
ЭлементыФормы.Таблица.Колонки[5] - прямое обращение к колонке по её индексу.

Единственное что глянь а то я не посмотрел с 1 или с 0 начинается индексирование колонок...по моему тоже с нуля

то есть если нужны координаты 14/17. То надо задавать в предложенную мной строку 13/16 соответсвтенно.

Удачи
---
ЭлементыФормы.ТабличноеПоле1.Значение[2] - это вторая строка

Посмотри до обращения следующее ЭлементфФормы.ТабличноеПоле1.Значение.Количество()

Если 0 - тогда строк нету просто)
---
KlesAlex,

```1c
    Процедура ПриОткрытии()
    Для НомерКолонки=1 по 10 Цикл
    ЭлементыФормы.ТабличноеПоле1.Колонки.Добавить(,Строка(НомерКолонки));
    ЭлементыФормы.ТабличноеПоле1.Значение.Добавить();
    КонецЦикла;
    Сообщить(ЭлементыФормы.ТабличноеПоле1.Значение.Количество());
    //ЭлементыФормы.ТабличноеПоле1.Значение[2][ЭлементыФормы.ТабличноеПоле1.Колонки[2].Имя] = "7";
    КонецПроцедуры
```

10

Строки есть.
---
KlesAlex,

Сделал так:

```1c
    Процедура ПриОткрытии()
    Для НомерКолонки=1 по 10 Цикл
    ЭлементыФормы.ТабличноеПоле1.Колонки.Добавить(,Строка(НомерКолонки));
    ЭлементыФормы.ТабличноеПоле1.Значение.Добавить();
    КонецЦикла;
    Сообщить(ЭлементыФормы.ТабличноеПоле1.Значение.Количество());

    КонецПроцедуры

    Процедура ОсновныеДействияФормыСтарт(Кнопка)
    ЭлементыФормы.ТабличноеПоле1.Значение[2][ЭлементыФормы.ТабличноеПоле1.Колонки[2].Имя] = "7";
    КонецПроцедуры
```

Т.е. кнопку "старт" нажимаю уже после того как вижу на экране табличку в 10 колонок и в 10 строчек: {Форма.Форма.Форма(13)}: Поле объекта не обнаружено (Колонка3)
 ЭлементыФормы.ТабличноеПоле1.Значение[2][ЭлементыФормы.ТабличноеПоле1.Колонки[2].Имя] = "7";
---
KlesAlex, Если 0 - тогда строк нету просто)
У меня ощущение что нет колонок, они есть но их как бы нет :(
ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки() не хватает, но куда ее воткнуть?
---
Win98, ДЕРЖИ

```1c
    Процедура ПриОткрытии()
    Для НомерКолонки=1 по 10 Цикл
    ТабличноеПоле1.Колонки.Добавить("Колонка" + Строка(НомерКолонки));
    ТабличноеПоле1.Добавить();
    КонецЦикла;
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
    КонецПроцедуры

    Процедура ОсновныеДействияФормыСтарт(Кнопка)
    ЭлементыФормы.ТабличноеПоле1.Значение[2][ЭлементыФормы.ТабличноеПоле1.Колонки[2].Имя] = "7";
    КонецПроцедуры
```
---
KlesAlex, Спасибо.
Можно и так.

```1c
    Процедура ПриОткрытии()
    Для НомерКолонки=1 по 10 Цикл
    ТабличноеПоле1.Колонки.Добавить("Колонка" + Строка(НомерКолонки));
    ТабличноеПоле1.Добавить();
    КонецЦикла;
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
    ЭлементыФормы.ТабличноеПоле1.Значение[2][ЭлементыФормы.ТабличноеПоле1.Колонки[2].Имя] = "7";
    КонецПроцедуры
```
---
Win98, не за что) Пользуйся)
---
Обращаться нужно к именам полей а не к индексам