|
|
|
|
программная активизация ячейки табличного поля управляемой формы |
☑ |
0
alnovin
09.06.12
✎
08:38
|
Всем привет!
Имеем табличное поле Управляемой формы. Имея текущие данные нужно активизировать поле в следующей строке табличного поля.
Как таковую следующую строку можно получить.
ТекущаяСтрока = ДеревоНоменклатуры.НайтиПоИдентификатору(ИдентификаторСтроки);
Родитель = ТекущаяСтрока.ПолучитьРодителя();
ЭлементыСклад = Родитель.ПолучитьЭлементы();
ЭлементНайден = Ложь;
Для Каждого ЭлементСклад Из ЭлементыСклад Цикл
Если ЭлементНайден Тогда
Элементы.ДеревоНоменклатуры.ТекущаяСтрока = ДеревоНоменклатуры.НайтиПоИдентификатору(ЭлементСклад.ПолучитьИдентификатор());
Элементы.ДеревоНоменклатуры.ТекущийЭлемент = Элементы.ДеревоНоменклатурыКоличество;
Прервать;
КонецЕсли;
Если ЭлементСклад = ТекущаяСтрока Тогда
ЭлементНайден = Истина;
КонецЕсли;
КонецЦикла;
Но вот с активизацией беда.
|
|
1
alnovin
09.06.12
✎
09:05
|
up
|
|
2
alnovin
09.06.12
✎
09:36
|
Вот такие костыли получились:
ТекущаяСтрока = ДеревоНоменклатуры.НайтиПоИдентификатору(ИдентификаторСтроки);
Родитель = ТекущаяСтрока.ПолучитьРодителя();
ЭлементыСклад = Родитель.ПолучитьЭлементы();
ЭлементНайден = Ложь;
ЭлементОбработан = Ложь;
Для Каждого ЭлементСклад Из ЭлементыСклад Цикл
Если ЭлементНайден Тогда
ЭлементОбработан = истина;
Элементы.ДеревоНоменклатуры.ТекущаяСтрока = Элементы.ДеревоНоменклатуры.ТекущаяСтрока + 1;
Прервать;
КонецЕсли;
Если ЭлементСклад = ТекущаяСтрока Тогда
ЭлементНайден = Истина;
КонецЕсли;
КонецЦикла;
//попробуем активизировать первый элемент склад в следующей ветки если она есть
ЭлементНайден = ложь;
Если Не ЭлементОбработан Тогда
ЭлементыНоменклатура = ДеревоНоменклатуры.ПолучитьЭлементы();
Для каждого ЭлементНоменклатура Из ЭлементыНоменклатура Цикл
Если ЭлементНайден Тогда
ЭлементыСклад = ЭлементНоменклатура.ПолучитьЭлементы();
Если ЭлементыСклад.Количество() > 0 тогда
Элементы.ДеревоНоменклатуры.ТекущаяСтрока = Элементы.ДеревоНоменклатуры.ТекущаяСтрока + 2;
КонецЕсли;
Прервать;
КонецЕсли;
Если ЭлементНоменклатура = Родитель Тогда
ЭлементНайден = Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
|
|
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.