Доброго времени. На форме добавлен реквизит типа табличный документ. В пользовательском режиме ввожу туда данные, как их можно считать с этого документа программно?
---
Спасибо всем. Вот конечный вариант:

```1c
    ТабЗначений = Новый ТаблицаЗначений;

    ПоследняяСтрока = ТабДок.ВысотаТаблицы;
    ПоследняяКолонка = ТабДок.ШиринаТаблицы;

    ОбластьЯчеек = ТабДок.Область(1, 1, ПоследняяСтрока, ПоследняяКолонка);
    ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьЯчеек);
    ПостроительОтчета = Новый ПостроительОтчета;
    ПостроительОтчета.ИсточникДанных = ИсточникДанных;
    ПостроительОтчета.Выполнить();

    ТабЗначений = ПостроительОтчета.Результат.Выгрузить();
```
---
первое, что пришло в голову - тынц.
---
не не так, вот так ))))
тынц
---
типа такого

```1c
    ТекстыЯчеек = Новый Массив;
    ТекстыЯчеек.Добавить(Неопределено); // добавим нулевую строку, чтобы дальше номера совпадали с таблицей
    Для к = 1 По ТабличныйДокумент.ШиринаТаблицы Цикл
    ТекстыЯчеек.Добавить(СокрЛП(ТабличныйДокумент.Область("R"+Формат(НомерСтроки,"ЧГ=")+"C"+Формат(К,"ЧГ=")).Текст));
    КонецЦикла;
```
---
Ну как-как... Область().Текст :)
А шо вы хотели?
Лучше всего, если вы хотите наколенного Excel, то нужно не вводить в табдок а потом оттуда считывать, а наоборот.
Строить в ТЗ модель редактируемых данных в привязке к строкам отчета, потом при начале редактирования определять по данным расшифровки чего именно редактируется, вносить изменение в модель а потом отражать их в табличном документе. В этом случае можно эффективно реализовывать аналоги формул и выполнять пересчеты плюс у вас всегда есть в памяти "считанные" данные :)
ЗЫ. Недавно, что-то похожее пришлось в тонком клиенте реализовывать. Ессно не в ТЗ, пришлось на вложенных коллекциях. Была даже мыслишка выложить шаблончик в виде публикации, да никак руки не доходят...
---
посмотрите код стандартной обработки Загрузка данных из табличного документа
---
Спасибо всем. Вот конечный вариант:

```1c
    ТабЗначений = Новый ТаблицаЗначений;

    ПоследняяСтрока = ТабДок.ВысотаТаблицы;
    ПоследняяКолонка = ТабДок.ШиринаТаблицы;

    ОбластьЯчеек = ТабДок.Область(1, 1, ПоследняяСтрока, ПоследняяКолонка);
    ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьЯчеек);
    ПостроительОтчета = Новый ПостроительОтчета;
    ПостроительОтчета.ИсточникДанных = ИсточникДанных;
    ПостроительОтчета.Выполнить();

    ТабЗначений = ПостроительОтчета.Результат.Выгрузить();
```
---
молодец.
Но если напрямки обходить ячейки обрабатывая тексты, то можно прямо в них же писать результат обработки в комментарий или подкрашивать. А потом при необходимости и сохрянять в лог.

А через ТЗ это дополнительное количество телодвижений для реализации.
---
А пример где-то можно посмотреть?
---
так я же в (3) привел, пример физического обхода ячеек.
так вот как считывать данные, так и записывать в них без проблем можно
---
Спасибо за идею, но в моем случае не отрабатывал на методе выгрузить() возможно версия платформы 8.3.18.1289, в итоге обошел области в цикле чтобы по имени шапки выключить обработку, вот вариант:

```1c
    ТабЗначений = Новый ТаблицаЗначений;
    ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
    ПоследняяСтрока = ТабДок.ВысотаТаблицы;
    ПоследняяКолонка = Область.Имя;
    ПоследняяКолонка = Число(Сред(ПоследняяКолонка, СтрНайти(ПоследняяКолонка, "C")+1));
    номерСтроки = 1;
    Пока номерСтроки <= ПоследняяСтрока Цикл
    Текст = ТабДок.Область(номерСтроки, ПоследняяКолонка).Текст;
    Если СтрНайти(Текст, "нужное имя колонки") Тогда
    Возврат;
    КонецЕсли;
    номерСтроки = номерСтроки + 1;
    КонецЦикла;
```
---
в ТД были расшифровки через построитель не прочитало, пришлось перебором самому лопатить!