Работа с элементом ТабличноеПоле

Новая тема
Всем, здравствуйте! В первой колонке табличного поля у меня флажок, подскажите как к нему добраться?
Спасибо за помощь.
Какой странный вопрос. Флажок, если это не картинка - всегда имеет конкретные данные.
"Вот в таком коде условие не выполняется
номерВыбСтр = -1;
Для счетчик = 0 По ЭлементыФормы.ДоговораТП.Колонки.Количество() - 1 Цикл
  Если ЭлементыФормы.ДоговораТП.Колонки[0] = Истина Тогда
номерВыбСтр = счетчик;
КонецЕсли;
КонецЦикла;
"
"Странный код - из него даже не понятно, что пытаетесь сделать.
> Вот в таком коде условие не выполняется
> номерВыбСтр = -1;
> Для счетчик = 0 По ЭлементыФормы.ДоговораТП.Колонки.Количество() - 1 Цикл

это как понимать? Взять нулевую колонку, а строка какая? К тому же вы работаете с элементами формы, а тогда еще надо указать Значение (ЭлементыФормы.ДоговораТП[НомерСтроки][НомерКолонки].Значение). К тому же не ясно зачем счетчик, если в условии не фигурирует.
> Если ЭлементыФормы.ДоговораТП.Колонки[0] = Истина Тогда

> номерВыбСтр = счетчик;
> КонецЕсли;
> КонецЦикла;
>

Если обратить внимание на вашу переменную номерВыбСтр, получается, что ищите выбранную строку. Таким циклом (даже если бы он был правильный) - найдете последнюю выбранную строку. Если же нужна текущая, то чем не устраивает ЭлементыФормы.ДоговораТП.ТекущаяСтрока?"
"Мне не понятно как работать с ТаблицейЗначений. Если это аналог DataTable в С#, то сходства в использовании я не вижу. Я изменил цикл т.о.:

номерВыбСтр = -1;
счетчик = 0;
Для каждого СтрТаб Из ДоговораТП Цикл
   ЗначениеФлажка = СтрТаб.Отметка;  //отметка - имя колонки
   Если ЗначениеФлажка = Истина Тогда
      номерВыбСтр = счетчик;
   КонецЕсли;
счетчик = счетчик + 1;
КонецЦикла;

Как тогда должен выглядеть код? У меня была мысль использовать событие "Выбор"
"
"> Как тогда должен выглядеть код? У меня была мысль использовать событие "Выбор"
А что вы пытаетесь сделать? Событие выбор возникает при двойном щелчке на поле (входе в редактирование).
Что же вам надо?
Получить текущую строку? Тогда ЭлементыФормы.ДоговораТП.ТекущаяСтрока
Получить номер последней строки с Отметкой - тогда ваш цикл правильный.
Получить первый номер строки с Отметкой - тогда надо бы прервать цикл.

Тоже самое, что у вас, только без счетчика:
> номерВыбСтр = -1;
> Для каждого СтрТаб Из ДоговораТП Цикл
>     ЗначениеФлажка = СтрТаб.Отметка;  //отметка - имя колонки
>     Если ЗначениеФлажка = Истина Тогда
       номерВыбСтр = ДоговораТП.Индекс(СтрТаб);
>     КонецЕсли;
> КонецЦикла;
"
Как я предполагал раньше: для удобства в ТабличноеПоле добавил флажок, бухгалтер отмечает соответствующую строку, нажимает на кнопку "ОК", в цикле идет перебор строк, где выполняется проверка состояния флажка (и выбор номера строки откуда брать данные для передачи в др форму).
"1. За табличным полем стоит Таблица значений. Я надеюсь, что Отметка это не просто имя колонки, но тоже самое написано в свойстве ДанныеФлажка и имеется соответствующее поле в Таблице значений (заметьте, для Табличного поля и Таблицы значений могут не совпадать количество колонок, их имена. Табличное поле опирается на то что указано в свойствах Данные и ДанныеФлажка)
2. Предположим, что 1-е выполняется. В принципе ваш цикл правильный. Маленькое дополнение:

МасСтр = Новый Массив;
Для каждого СтрТаб Из ДоговораТП Цикл
  ЗначениеФлажка = СтрТаб.Отметка;  //отметка - имя колонки
  Если ЗначениеФлажка = Истина Тогда
     МасСтр.Добавить (СтрТаб);
  КонецЕсли;
КонецЦикла;
//Теперь можете передавать массив МасСтр куда угодно."
Спасибо, все заработало, пункт 1 не выполнялся.
Читают тему
(гостей: 1)

Быстрый переход