Учусь программировать и самый верный способ - учиться на живых задачах(так быстрее учиться).
И вот надумал задачку себе, которую, почему-то не могу решить)))

Хочу копипастом заполнять ТабличныйДокумент на форме, зачем конвертировать информацию в ТаблицуЗначений и грузить в документ.

```1c
    &НаСервере
    Процедура ЗаполнитьТЧНаСервере()

    x = 2;

    Пока Талица.Область("R" + Строка(x) + "С1").Текст <> " Цикл
    Строка = Новый Структура;

    Попытка
    Номенклатура = СокрЛП(Талица.Область("R" + Строка(x) + "С1").Текст);
    Исключение
    Номенклатура = ";
    КонецПопытки;
    Если Номенклатура <> " тогда
    Количество = Число(СокрЛП(Талица.Область("R" + Строка(x)+ "С3").Текст));
    Цена = Число(СокрЛП(Талица.Облать("R" + Строка(x) + "С4").Текст));

    НоваяСтрока = ТаблизаЗначений.Добавить();
    НоваяСтрока.Номенклатура = Номенклатура;
    НоваяСтрока.Количество = Количество;
    НоваяСтрока.Цена = Цена;
    КонецЕсли;
    x = x+1;
    КонецЦикла;

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

Область R1C1 не найдена...
Не могу понять что не так....
---
Привет, у тебя в строке "Пока Талица.Область("R" + Строка(x) + "С1").Текст <> "" Цикл" С - русская.Поменяй на анг-ую и в других местах тоже
---
у таб.дока есть метод ВысотаТаблицы(), если не ошибаюсь, можно её использовать в качестве счетчика для цикла
а в самом цикле проверять на заполненность текста "номенклатуры". Не нужно никакой попытки/исключения..

 ошибка еще в

```1c
    Строка = Новый Структура;
```

мало того, что название переменной не соответствует её содержимому, так еще и зарезервированное слово используется под неё.

```1c
    "R" + Строка(x)
```
  - тут неявное преобразование к строке и так есть, можно не использовать "строка()"
но похоже код падает еще на первой строке цикла, видимо, как отметили выше, это русская буква, или реквизит "талица" не есть тот самый таб.док
---
Строка как переменная и строка(), это разное.
А ошибка действительно была в русской "C" в одной из строк.... хз в какой, переписал все разом и все работает.
Еще была ошибка в "Облать", вместо "ОблаСть".....
Сейчас все работает!
---
Привет, у тебя в строке "Пока Талица.Область("R" + Строка(x) + "С1").Текст <> "" Цикл" С - русская.Поменяй на анг-ую и в других местах тоже
---
Черт подери, эти одинаковые буквы!
Вчера 100500 раз перепроверил что бы везде был английский.....
Видимо работать ночью- не сулит ничего хорошего))))
Спасибо за пинок переписать еще раз области!
---
И зачем вы из переписываете? Если можно использовать Не Область("R1C1"), а Область(1,1,1,1)?
В вашем примере - Область(X, 1, X, 1).
---
И если точно в табличном документе будет такая таблица как на картинке, то предлагаю цикл строить так :

```1c
    Для x = 1 ПО Талица.ВысотаТаблицы Цикл

    КонецЦикла;
```
---
первая строка там под заголовки выделена
---
Для чисел лучше использовать формат(), для того чтобы при 1000+ строк не было разделителя разрядов.

А для преобразования можно такой вариант использовать

```1c
    Функция ПреобразоватьТабличныйДокументВТаблицуЗначений(ТабДокумент)
    ПоследняяСтрока = ТабДокумент.ВысотаТаблицы;
    ПоследняяКолонка = ТабДокумент.ШиринаТаблицы;
    ОбластьЯчеек = ТабДокумент.Область(1, 1, ПоследняяСтрока, ПоследняяКолонка);
    // Создаем описание источника данных на основании области ячеек табличного документа.
    ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьЯчеек);
    // Создаем объект для интеллектуального построения отчетов,
    // указываем источник данных и выполняем построение отчета.
    ПостроительОтчета = Новый ПостроительОтчета;
    ПостроительОтчета.ИсточникДанных = ИсточникДанных;
    ПостроительОтчета.Выполнить();
    // Результат выгружаем в таблицу значений.
    ТабЗначений = ПостроительОтчета.Результат.Выгрузить();
    Возврат ТабЗначений
    КонецФункции
```

Взято из http://1centerprise8.blogspot.com/2016/08/td-v-tz.html
---
... и если первая строчка не заголовки колонок, а непосредственно данные... красота!
---
Спасибо! Так гораздо удобнее.