|
ТабличнаяЧасть Документа - Как передать фокус нужному столбцу? | ☑ | ||
---|---|---|---|---|
0
AleksandrKulik
03.09.18
✎
15:37
|
Здравствуйте.
Работаю с табличной частью документа. При выборе в первой колонке нужного адреса абонента в зависимости от типа абонента остальные столбцы в строке табличной части подтягиваются из среза последних из РС... Это реализовано и работает нормально. Но есть тип абонентов при котором все столбцы будут с нулями, а заполнить нужно только последние две колонки в строке табличной части ПоказаниеСчетчика и Тариф (предполагается ввод в ручную оператором). Уперся в то что не знаю как передать программно фокус в уже выбранной строке ТЧ к нужному мне столбцу ("ПоказаниеСчетчика") таким образом, чтобы поле было не просто подсвечено как выбранное, а уже выбрано для ввода значения (нужный эффект при работе достигается двойным кликом на ячейке)? Помогите пожалуйста кто знает, я уже пару дней ищу и безрезультатно... |
|||
1
Малыш Джон
03.09.18
✎
16:03
|
(0) если уж нужно ткнуть пользователя куда и что ему вводить, я обычно список значений формирую и через ВыбратьИзСписка() пользователя тыкаю в нужное место формы.
|
|||
2
AleksandrKulik
03.09.18
✎
16:41
|
(1) Не подойдет... Объем ввода у оператора большой, и важна скорость ввода. Однотипных Ситуаций с абонентами у меня всего пять, четыре типа уже вводятся как надо без проблем причем буквально двумя кликами мыши из выпадающего списка, осталась последняя пятая ситуация где нужно именно передача фокуса нужной колонке в редактируемой строке и активация этой ячейки до готовности ввода значения.
То есть оператор кликнул по галочке - выбрал в списке адрес и сразу ввел цыфры показаний счетчика, все значения подставились автоматом кроме значений счетчика, и здесь реально для скорости работы нужно это реализовать. :-((( |
|||
3
hhhh
03.09.18
✎
16:59
|
(2) ну, Элементы.ВашеТабполе.ТекущаяКолонка = ТомуТо;
|
|||
4
dmt
03.09.18
✎
17:11
|
+ к (3), только .ТекущийЭлемент = ПолеВвода1
У ПоляВвода1 свойство Режим редактирования = Вход при вводе |
|||
5
AleksandrKulik
03.09.18
✎
19:58
|
(3) Ну прописал как вы предлагаете ...
в моем случае будет так: Элементы.ТабличнаяЧасть1.ТекущаяКолонка = Qов; где: ТабличнаяЧасть1 - ТЧ документа; Qов - реквизит этой табличной части (это и есть "ПоказаниеСчетчика") при проверке выводит {Документ.Начисление.Форма.ФормаДокумента.Форма(61,46)}: Переменная не определена (Qов) Элементы.ТабличнаяЧасть1.ТекущаяКолонка = <<?>>Qов; (Проверка: Тонкий клиент) (4) свойство Режим редактирования = Вход при вводе установлен. |
|||
6
AleksandrKulik
03.09.18
✎
20:01
|
Вообщем не выходит....
Вот целиком процедура на всякий случай для лучшего представления ситуации: &НаКлиенте Процедура ТабличнаяЧасть1ЛокацияПриИзменении(Элемент) // проверяем как считаем по счетчику или по площади СтрокаТабличнойЧасти = Элементы.ТабличнаяЧасть1.ТекущиеДанные; Объект.Сч = Ложь; Если ПолучИзРСКоэф.ПроверкаСпособаРасчета(Объект.Дата, СтрокаТабличнойЧасти.Локация) Тогда // значит в РС СпоНач значение ресурса ПоПлощади стоит галочка, т.е. значение Истина. ПлощадьОтапливаемая = ПолучИзРСКоэф.ПолучитьПоследнийПлощадь (Объект.Дата, СтрокаТабличнойЧасти.Локация); //Сообщить ("Отапливаемая площадь = " + ПлощадьОтапливаемая + " м2;"); НОТ = 0.11082 * ПлощадьОтапливаемая / 12; //Сообщить ("ГКАЛ = " + НОТ + ";"); Если ПолучИзРСКоэф.ПроверкаСпособаРасчета2(Объект.Дата, Объект.НазваниеАбонента) Тогда // этот блок для формулы по начислению бюджетникам и юрлицам по площади СтрокаТабличнойЧасти.Qb = ПолучИзРСКоэф.ПолучитьПоследнийQ(Объект.Дата, СтрокаТабличнойЧасти.Локация); СтрокаТабличнойЧасти.T = ПолучИзРСКоэф.ПолучитьПоследнийT(Объект.Дата, СтрокаТабличнойЧасти.Локация); СтрокаТабличнойЧасти.tвн = ПолучИзРСКоэф.ПолучитьПоследнийtвн(Объект.Дата, СтрокаТабличнойЧасти.Локация); СтрокаТабличнойЧасти.tфнв = ПолучИзРСКоэф.ПолучитьПоследнийtфнв(Объект.Дата, СтрокаТабличнойЧасти.Локация); СтрокаТабличнойЧасти.tрнв = ПолучИзРСКоэф.ПолучитьПоследнийtрнв(Объект.Дата, СтрокаТабличнойЧасти.Локация); СтрокаТабличнойЧасти.Qов = СтрокаТабличнойЧасти.Qb*((СтрокаТабличнойЧасти.tвн-СтрокаТабличнойЧасти.tфнв)/(СтрокаТабличнойЧасти.tвн-СтрокаТабличнойЧасти.tрнв))*СтрокаТабличнойЧасти.T; СтрокаТабличнойЧасти.Тариф = ПолучИзРСКоэф.ПолучитьПоследнийТариф(Объект.Дата, СтрокаТабличнойЧасти.Локация); СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Qов * СтрокаТабличнойЧасти.Тариф; Иначе // этот блок для формулы по начислению населению по площади СтрокаТабличнойЧасти.Qb = 0.00; СтрокаТабличнойЧасти.T = 0.0; СтрокаТабличнойЧасти.tвн = 0.0; СтрокаТабличнойЧасти.tфнв = 0.0; СтрокаТабличнойЧасти.tрнв = 0.0; СтрокаТабличнойЧасти.Qов = 0.11082*ПлощадьОтапливаемая/12; СтрокаТабличнойЧасти.Тариф = ПолучИзРСКоэф.ПолучитьПоследнийТариф(Объект.Дата, СтрокаТабличнойЧасти.Локация); СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Qов * СтрокаТабличнойЧасти.Тариф; КонецЕсли; Иначе // значит в РС СпоНач значение ресурса ПоПлощади не стоит галочка, т.е. значение Ложь. Значит считаем по счетчику. Объект.Сч = Истина; СтрокаТабличнойЧасти.Qb = 0.00; СтрокаТабличнойЧасти.T = 0.0; СтрокаТабличнойЧасти.tвн = 0.0; СтрокаТабличнойЧасти.tфнв = 0.0; СтрокаТабличнойЧасти.tрнв = 0.0; СтрокаТабличнойЧасти.Qов = 0.00; СтрокаТабличнойЧасти.Тариф = ПолучИзРСКоэф.ПолучитьПоследнийТариф(Объект.Дата, СтрокаТабличнойЧасти.Локация); СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Qов * СтрокаТабличнойЧасти.Тариф; //ПолучИзРСКоэф.ПереходКQов(); Элементы.ТабличнаяЧасть1.ТекущаяКолонка = Qов; КонецЕсли; Объект.ИнфОБюджете = Лев(ПолучИзРСКоэф.ТипБюджета(Объект.Дата, Объект.НазваниеАбонента),1); Объект.СоздалПользователь = ПодстЗначений.ПолучТекущПольз (); КонецПроцедуры |
|||
7
dmt
03.09.18
✎
20:24
|
(6) Элементы.<ИмяТаблицы>.ТекущийЭлемент = Элементы.<ИмяПоляВвода>
|
|||
8
AleksandrKulik
03.09.18
✎
23:57
|
(7) Спасибо! Получилось... но столько времени вокруг да около бродил...Работает в таком виде
Элементы.ТабличнаяЧасть1.ТекущийЭлемент = Элементы.ТабличнаяЧасть1Qов; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |