программная активизация ячейки табличного поля управляемой формы
☑
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;
КонецЕсли;
Прервать;
КонецЕсли;
Если ЭлементНоменклатура = Родитель Тогда
ЭлементНайден = Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс