|
Получить текущий элемент табличного поля | ☑ | ||
---|---|---|---|---|
0
Про100Филя
28.09.15
✎
15:09
|
Как получить элемент
Есть две колонки колнка1 и колонка2 в табличном поле. У колонки2 есть событие при изменении : Процедура МояТаблицаКолонка2(Элемент) Элемент.Значение = Элемент.Значение+" "+Элемент.Значение; //ну это к примеру КонецПроцедуры В другой процедуре я добавляю строку в мою таблицу, заполняю строку, как мне правильно вызвать событие при изменении Колонка2? |
|||
1
kosts
28.09.15
✎
15:10
|
(0) Смотри какие процедуры вызываются в том событии и прописывай себе. Часто срабатывает.
|
|||
2
Fuas4
28.09.15
✎
15:11
|
Если я правильно понял, то:
МояТаблицаКолонка2(неопределено) - если нигде в коде процедуры не используешь "Элемент". Если используешь, то передавай его |
|||
3
kosts
28.09.15
✎
15:12
|
(2) Не рекомендую. Отход от стандарта.
|
|||
4
Про100Филя
28.09.15
✎
15:12
|
(2) Так он используется только при изменении в ячейки. Как мне элемент ячейки новой строки достать?
|
|||
5
Про100Филя
28.09.15
✎
15:14
|
(1) НоваяСтр = МояТаблица.Добавить();
НоваяСтр.Колонка1="йцуйцу"; НоваяСтр.Колонка2="йцуйцу"; МояТаблицаКолонка2(НоваяСтр.Колонка2);// не проходёт, Как добраться до элемента? |
|||
6
kosts
28.09.15
✎
15:14
|
(4) Зачем тебе элемент ячейки?, возможно нужны только данные
|
|||
7
Про100Филя
28.09.15
✎
15:28
|
(6) в событии при изменении есть условия исходя из которых ставится цвет(Элемент.ЦветФона)
Процедура МояПроцедура() НоваяСтр = МояТаблица.Добавить(); НоваяСтр.Колонка1="йцуйцу"; НоваяСтр.Колонка2="йцуйцу"; МояТаблицаКолонка2(НоваяСтр.Колонка2); // как от сюда вызвать событие при изменении правильно? КонецПроцедуры Процедура МояТаблицаКолонка2ПриИзменении(Элемент) // Событие При изменении значения в колонка2 Элемент.Значение = Элемент.Значение+" "+Элемент.Значение;// Тут идут действия с элементом КонецПроцедуры |
|||
8
kosts
28.09.15
✎
15:35
|
Вроде так, могу ошибаться... |
|||
9
Про100Филя
28.09.15
✎
15:36
|
(7) Опечатался МояТаблицаКолонка2ПриИзменении(НоваяСтр.Колонка2);
С полем ввода все просто: МоеПолеВводаПриИзменении(ЭлементыФормы.МоеПолеВвода); а вот с ячейкой в табличном поле косяк какой-то... (8) не подойдет в текущих данных нет полей элемента (цветфона и других). |
|||
10
Про100Филя
28.09.15
✎
15:40
|
Нашел вот так но это для всей колонки:
ЭлементыФормы.МояТаблица.Колонки.ВидДокумента.ЭлементУправления и по индексу строки не перебирается. Обычные формы. |
|||
11
bootini
28.09.15
✎
15:47
|
(10)
раскрашивание обычно здесь делается: Процедура МояТаблицаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если ДанныеСтроки.Колонка2 = 666 Тогда ОформлениеСтроки.Колонка2.ЦветФона = Новый Цвет(0,0,0); КонецЕсли КонецПроцедуры |
|||
12
Про100Филя
28.09.15
✎
15:59
|
(11) Можно и при получении данных, но при выводе строки обходит весь список таблицы, а это очень затруднительно для проверки. В проверки значения есть запрос по http. который может изменить в первой колонке значение(Я не очень уверен, но по идеи разрабочиков 1С снова должны сработать события ПриВыводеСтроки и ПриПолученииДанных). Вообщем это на крайний случай.
|
|||
13
bootini
28.09.15
✎
16:27
|
(12) При выводе строки, не вся таблица ,а только те строки которые будут на экране. Поэтому это хозяйство подтормаживает, когда начинают прокручивать список.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |