Формы: Управление элементами сумиирование - qazard/1c_etxt_help GitHub Wiki
Получить имя значения колонки на Клиенте
ИмяКолонки = Элементы.ТекущийЭлемент.Имя;
ИмяКолонки = СтрЗаменить(ИмяКолонки, ИмяТаблицы, "");
ЗначениеАктивнойЯчейки = Элементы.ИмяТаблицы.ТекущиеДанные[ИмяКолонки];
Невозможно будет использовать если будет изменено ИмяТаблицы в элемента. Подходит только для значений по умолчаию Плюсы, что не будут выполняться серверные вызовы
Получение имени и значения колонки с использованием серверных вызовов
&НаКлиенте
Процедура НоменклатураБезКартинокПриАктивизацииЯчейки(Элемент)
//Элемент - это ТаблицаФормы
Если Элемент.ТекущиеДанные= Неопределено Тогда
Возврат;
КонецЕсли;
ИмяКолонки = ИмяКолонки(Элемент.ТекущийЭлемент.Имя);
Сообщить(Элемент.ТекущиеДанные[ИмяКолонки]);
КонецПроцедуры
&НаСервере
Функция ИмяКолонки(ИмяЭлементаКолонки)
ПолеФормыКолонкаТаблицы = Элементы[ИмяЭлементаКолонки];
МассивЦепочкаПутиКДанным = СтрРазделить(ПолеФормыКолонкаТаблицы.ПутьКДанным, ".");
Возврат МассивЦепочкаПутиКДанным[МассивЦепочкаПутиКДанным.ВГраница()];
КонецФункции
Суммирование любой выделенной колонки формы
&НаКлиенте
Процедура ВывестиСуммуВыделенных(Элемент)
Если Элемент.ТекущиеДанные= Неопределено Тогда
Возврат;
КонецЕсли;
ИмяКолонки = ИмяКолонки(Элемент.ТекущийЭлемент.Имя);
//Сообщить(Элемент.ТекущиеДанные[ИмяКолонки]);
ОбщаяСуммаВыделеных = 0;
ЭлементВыделенныеСтроки = Элемент.ВыделенныеСтроки.Количество();
Если ЭлементВыделенныеСтроки = 0 Тогда
Возврат;
КонецЕсли;
ТекИндекс = 0;
Пока ЭлементВыделенныеСтроки > ТекИндекс Цикл
ЗначениеВыделенойКолонки = Элементы[Элемент.Имя].ДанныеСтроки(Элемент.ВыделенныеСтроки[ТекИндекс])[ИмяКолонки];
Если НЕ ТипЗнч(ЗначениеВыделенойКолонки) = ТИП("Число") Тогда
Возврат
КонецЕсли;
ОбщаяСуммаВыделеных = ОбщаяСуммаВыделеных + ЗначениеВыделенойКолонки;
ТекИндекс = ТекИндекс +1;
КонецЦикла;
Сообщить(ОбщаяСуммаВыделеных);
КонецПроцедуры
&НаСервере
Функция ИмяКолонки(ИмяЭлементаКолонки)
ПолеФормыКолонкаТаблицы = Элементы[ИмяЭлементаКолонки];
МассивЦепочкаПутиКДанным = СтрРазделить(ПолеФормыКолонкаТаблицы.ПутьКДанным, ".");
Возврат МассивЦепочкаПутиКДанным[МассивЦепочкаПутиКДанным.ВГраница()];
КонецФункции