Имя: Пароль:
1C
1С v8
как получить имя колонки элемента при событии "ПриИзменении"
0 vde69
 
30.11.12
08:49
есть обработчик на много полей сразу, нужно получить имя колонки к которой принадлежит элемент, сейчас есть такой код


Процедура ОтражениеВУчетеПриИзмененииПоля(Элемент) Экспорт
   СтрокаТабличнойЧасти = ЭлементыФормы.ОтражениеВУчете.ТекущиеДанные;
   ИмяКолонки = ЭлементыФормы.ОтражениеВУчете.ТекущаяКолонка.Имя;


но при програмном изменении значения обработчик отрабатывает криво, как получить имя колонки для "Элемента"
1 Морозов Александр
 
30.11.12
08:53
А енто... а чего когда программно меняешь не знаешь в какую колонку пишешь?
2 vde69
 
30.11.12
08:56
(1) этот вариант самый последний :)
не хочется заморачиваться с тем что платформа сама умеет (например сравнивать старое и новое значение)
3 Defender aka LINN
 
30.11.12
08:59
(0) Есть такая вещь, как необязательные параметры
4 vde69
 
30.11.12
09:07
(3) обработчик ПриИзменении имеет только один параметр, при попытке поставить второй - ругается :)
5 kosts
 
30.11.12
09:12
(0)

Процедура ОтражениеВУчетеПриИзмененииПоля(Элемент) Экспорт
...
   ПриИзмененииПоля(Строка, ИмяКолонки);
КонецПроцедуры

Процедура ПриИзмененииПоля(Строка, ИмяКолонки);
...
КонецПроцедуры

Процедура ПрограммнаяОбработка()
   Цикл
       ПриИзмененииПоля(Строка, ИмяКолонки);
   конеццикла;
КонецПроцедуры
6 Defender aka LINN
 
30.11.12
09:15
(4) Зочем ви т'гавите? Все работает. Хотя сама идея ущербная, ИМХО. Тебе процедур жалко, что ли?
7 vde69
 
30.11.12
09:17
странно но вот так все работает


Процедура ОтражениеВУчетеПриИзмененииПоля(Элемент) // Экспорт
   СтрокаТабличнойЧасти = ЭлементыФормы.ОтражениеВУчете.ТекущиеДанные;
   мКолонки = ЭлементыФормы.ОтражениеВУчете.Колонки;
   //ИмяКолонки = ЭлементыФормы.ОтражениеВУчете.ТекущаяКолонка.Имя;
   ИмяКолонки = "";
   Для Каждого мКолонка из мКолонки Цикл
       Если мКолонка.ЭлементУправления = Элемент Тогда
           ИмяКолонки = мКолонка.Имя;
       КонецЕсли;
   КонецЦикла;
AdBlock убивает бесплатный контент. 1Сергей