Добрый день!
Каким образом можно получить значение активной ячейки табличной части документа?
---
```1c
    ИмяКолонки = Элементы.ТекущийЭлемент.Имя;
    ИмяКолонки = СтрЗаменить(ИмяКолонки, ИмяТаблицы, ");
    ЗначениеАктивнойЯчейки = Элементы.ИмяТаблицы.ТекущиеДанные[ИмяКолонки];
```
---
Вроде так:
ДокументРезультат.ВыделенныеОбласти

```1c
    Если ТипЗнч(ДокументРезультат.ВыделенныеОбласти) = Тип("ВыделенныеОбластиТабличногоДокумента") Тогда
    ...
    ...
    ...
    КонецЕсли;
```
---
fromtomike, это метод табличного документа, а мне нужна ячейка табличной части документа
---
julia96_07,
это выбранная строка. имя колонки.
попробуйте прописать сообщить(... тогда разберётесь быстро.
---
white-mount, мне имя колонки заранее не известно. Необходимо получить и имя колонки, которую выберет пользователь. Думала, что есть свойство, в котором хранится данное значение.
---
julia96_07, да, оно хранится в
```1c
    Элементы.ТекущийЭлемент.Имя
```
.
---
antz, это имя колонки с именем ТЧ, а значение хранится?
---
julia96_07, оно известно форме, на которой активирована ячейка.
---
white-mount, (11) antz, я сделала, как предложил (3) dj_serega, просто думала может есть именно свойство, в кортом хранится значение активной ячейки.

Спасибо за помощь!
---
julia96_07, Такого к сожалению нет. А если подумать то это лишняя информация :)
---
```1c
    ИмяКолонки = Элементы.ТекущийЭлемент.Имя;
    ИмяКолонки = СтрЗаменить(ИмяКолонки, ИмяТаблицы, ");
    ЗначениеАктивнойЯчейки = Элементы.ИмяТаблицы.ТекущиеДанные[ИмяКолонки];
```
---
dj_serega, а возможно только через имя колонки? так эти данные нигде не хранятся?
---
Может возникнуть проблема, так как ИмяКолонки = ИмяТаблицыИмяКолонки. ИмяКолонки = СтрЗаменить(ИмяКолонки, ИмяТаблицы, "") вернет "" , как вариант: Прав(ИмяКолонки,СтрДлина(ИмяКолонки)-СтрДлина(ИмяТаблицы))
---
А значение получаешь через Элементы.ИмяЭлементаТабличнойЧасти.ТекущиеДанные[ИмяКолонки].
---
Я у себя через ПутьКДанным получал, так как поле тч формы в управляемых формах могут переименовать. ТекущаяКолонка - это доп. реквизит формы.

```1c
    &НаСервере
    Процедура НоменклатураЗаказчикаТекущаяКолонка()
    ПутьКДанным = ЭтотОбъект.Элементы.НоменклатураЗаказчика.ТекущийЭлемент.ПутьКДанным;
    ЭтотОбъект.ТекущаяКолонка = СтрЗаменить(ПутьКДанным, "Объект.НоменклатураЗаказчика.", ");
    КонецПроцедуры
```
---
Имена Таблицы формы и Полей формы (колонок таблицы) могут быть вообще не связаны, если их вручную задавать, как на картинке в прикрепленном файле. Вот этот код справляется с подобным:
```1c
    &НаКлиенте
    Процедура НоменклатураБезКартинокПриАктивизацииЯчейки(Элемент)
    //Элемент - это ТаблицаФормы
    Если Элемент.ТекущиеДанные= Неопределено Тогда
    Возврат;
    КонецЕсли;
    ИмяКолонки = ИмяКолонки(Элемент.ТекущийЭлемент.Имя);
    Сообщить(Элемент.ТекущиеДанные[ИмяКолонки]);
    КонецПроцедуры

    &НаСервере
    Функция ИмяКолонки(ИмяЭлементаКолонки)
    ПолеФормыКолонкаТаблицы = Элементы[ИмяЭлементаКолонки];
    МассивЦепочкаПутиКДанным = СтрРазделить(ПолеФормыКолонкаТаблицы.ПутьКДанным, ".");
    Возврат МассивЦепочкаПутиКДанным[МассивЦепочкаПутиКДанным.ВГраница()];
    КонецФункции
```
Непонятно только как быть с цитатой из СП. Нельзя, но работает? :ПриАктивизацииЯчейки() ... Примечание: В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.
---
Много раз обсуждалось. Серверный вызов не требуется, если закэшировать связи имён колонок и пути к данным. Либо через реквизит формы ТаблицаЗначений, либо через переменную модуля на клиенте типа Соответствие.
---
Кеширование - это очевидно и замечательно. Чтобы сделать кеширование - тоже нужна процедура на сервере типа приведенной мной в коде. И, наконец, эта страница выходит в первых при поиске в яндексе, так что хорошо что Вы повторили то, что много раз обсуждалось, теперь это сразу найдут. Удивительно, что тривиальная операция требует ухищрений.