Формы: Управление элементами сумиирование - qazard/1c_etxt_help GitHub Wiki

Получить имя значения колонки на Клиенте

ИмяКолонки = Элементы.ТекущийЭлемент.Имя;
ИмяКолонки = СтрЗаменить(ИмяКолонки, ИмяТаблицы, "");
ЗначениеАктивнойЯчейки = Элементы.ИмяТаблицы.ТекущиеДанные[ИмяКолонки];

Невозможно будет использовать если будет изменено ИмяТаблицы в элемента. Подходит только для значений по умолчаию Плюсы, что не будут выполняться серверные вызовы

Получение имени и значения колонки с использованием серверных вызовов

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

&НаСервере
Функция ИмяКолонки(ИмяЭлементаКолонки)
    ПолеФормыКолонкаТаблицы = Элементы[ИмяЭлементаКолонки];
    МассивЦепочкаПутиКДанным = СтрРазделить(ПолеФормыКолонкаТаблицы.ПутьКДанным, ".");
    Возврат МассивЦепочкаПутиКДанным[МассивЦепочкаПутиКДанным.ВГраница()];
КонецФункции

Суммирование любой выделенной колонки формы

&НаКлиенте
Процедура ВывестиСуммуВыделенных(Элемент)
	Если Элемент.ТекущиеДанные= Неопределено Тогда
		Возврат;
	КонецЕсли;
	ИмяКолонки =  ИмяКолонки(Элемент.ТекущийЭлемент.Имя);
	//Сообщить(Элемент.ТекущиеДанные[ИмяКолонки]);
	
	ОбщаяСуммаВыделеных = 0;
	ЭлементВыделенныеСтроки = Элемент.ВыделенныеСтроки.Количество();
	Если ЭлементВыделенныеСтроки = 0 Тогда
		Возврат;
	КонецЕсли;
	
	ТекИндекс = 0;	
	Пока ЭлементВыделенныеСтроки > ТекИндекс  Цикл 
		ЗначениеВыделенойКолонки = Элементы[Элемент.Имя].ДанныеСтроки(Элемент.ВыделенныеСтроки[ТекИндекс])[ИмяКолонки];
		Если НЕ ТипЗнч(ЗначениеВыделенойКолонки) = ТИП("Число") Тогда
			Возврат
		КонецЕсли;
		ОбщаяСуммаВыделеных  = ОбщаяСуммаВыделеных + ЗначениеВыделенойКолонки;
		ТекИндекс = ТекИндекс +1;
	КонецЦикла;
        Сообщить(ОбщаяСуммаВыделеных);
	
КонецПроцедуры

&НаСервере
Функция ИмяКолонки(ИмяЭлементаКолонки)
	ПолеФормыКолонкаТаблицы = Элементы[ИмяЭлементаКолонки];
	МассивЦепочкаПутиКДанным = СтрРазделить(ПолеФормыКолонкаТаблицы.ПутьКДанным, ".");
	Возврат МассивЦепочкаПутиКДанным[МассивЦепочкаПутиКДанным.ВГраница()];
КонецФункции



Ссылка на обсуждение