helpf.pro
Регистрация

v8: Управляемый интерфейс: Произвольное поле табличной части

conborath
07.08.2011 11:37Прочитано: 12291
Привет.
Подскажите, пожалуйста, как получить поле (элемент) конкретной строки (по индексу)?

Например, надо узнать какое значение имеет свойство ТолькоПросмотр у поля "Сумма" в строке с индексом 5, табличной части Номенклатура. Свойства полей в одной колонке могут быть разные для разных строк, т.к. есть условное оформление.

Объект.Номенклатура[5].Сумма - дает не поле, а его значение (данные).

Благодарю.
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
08.08.2011 09:33Ответ № 1
получай через ЭлементыФормы
conborath
08.08.2011 10:54Ответ № 2
в Управляемой Форме нет "ЭлементыФормы"
Если брать через Элементы.Номенклатура.ПодчиненныеЭлементы["Сумма"], то получаем колонку, а не конкретное поле конретной строки
E_Migachev
08.08.2011 13:07Ответ № 3
(2) conborath, да всли управляемое приложение, то "ЭлементыФормы" поменяете на "Элементы"
а не проще это сделать через событие ПриВыводеСтроки?
conborath
08.08.2011 15:45Ответ № 4
Вы не понимаете суть вопроса, т.к. не знаете особенностей Управляемой Формы и УсловногоОформления.

В УФ нет "ПриВыводеСтроки", и мне не нужен перебор строк.
Мне известен индекс строки и наименование колонки, надо узнать свойство "ТолькоПросмотр" этого Поля.
E_Migachev
08.08.2011 17:06Ответ № 5
(4) conborath, а, точно, ты ж в УП делаешь! до них я пока не добрался *09, времени не хватает(
Marfeus
09.08.2011 09:20Ответ № 6
Через Элемент ПриИзменении сделай
Marfeus
09.08.2011 10:12Ответ № 7
Хотя нет так не получиться будет контекст всей таблицы, помоему так в управляемых нельзя сделать . Если найдешь как получить напиши сюда пожалуйста
conborath
09.08.2011 11:19Ответ № 8
Вопрос возник из необходимости загружать в ТЗ данные из файла, но вот нельзя менять те значения, Которые стоят в только просмотр.
Можно, конечно, изваражться и составлять вторую таблицу (или массив) тех строк и колонок, которые только просмотр и обращаться туда, но это лишнее, ищу встроеный метод, пока не нашел
Marfeus
26.08.2011 12:31Ответ № 9
Процедура ОтключениеДоступностиПоляСтроки()

УО = ЭтаФорма.УсловноеОформление;
УО.Элементы.Очистить();
ЭлементУО = УО.Элементы.Добавить();

Оформляемоеполе = ЭлементУО.Поля.Элементы.Добавить(); // Поля таблицы для которых будет действовать оформление
Оформляемоеполе.Поле = Новый ПолеКомпоновкиДанных("ТабКолонка1");
Оформляемоеполе.Использование = ИСТИНА;


ЭлементОтбора = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); // отбор текущей строки таблицы
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Таб.НомерСтроки");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Объект.Таб[Объект.Таб.Индекс(Объект.Таб.НайтиПоИдентификатору(Элементы.Таб.ТекущаяСтрока)) ].НомерСтроки;




ЭлементУО.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", ИСТИНА); // Установка оформления
ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФОна",WebЦвета.БледноЗолотистый);

КонецПроцедуры
Marfeus
26.08.2011 12:32Ответ № 10
только тут для текущей строки если тебя для нескольких строк тогда надо будет создать список значений заполнить их номерами строк и проверить в отборе по списку
Marfeus
26.08.2011 12:37Ответ № 11
Оформляемоеполе.Поле = Новый ПолеКомпоновкиДанных("ТабКолонка1"); Здесь Имя складываеться из "Таб" - имяТаблицы + "Колонка1" - ИмяКолонки.
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.