|
Как программно установить курсор на текущее поле ввода в табличной части обычной формы? |
☑ |
0
Mikhail Volkov
12.12.21
✎
14:49
|
Перед записью документа с табличной частью Состав проверяется заполненность реквизитов Сделка. Если Сделка не заполнена, то происходит отказ от записи. И желательно, чтобы курсор встал на это поле - стало активным. Написал так:
Для каждого Строка Из Состав Цикл
Если обЗначениеНеЗаполнено(Строка.Сделка) Тогда
ЭтаФорма.ЭлементыФормы.Состав.ТекущаяСтрока = Строка;
ЭтаФорма.ЭлементыФормы.Состав.ТекущаяКолонка = Строка.Сделка;
:
КонецЕсли;
КонецЦикла;
Но в описании ТекущаяКолонка сказано: если устанавливается значение Неопределено, то активная колонка сбрасывается. У меня курсор вообще исчезает!? Если убрать ЭтаФорма.ЭлементыФормы.Состав.ТекущаяКолонка = Строка.Сделка; то курсор встает на нужную строку, но колонка прежняя.
Как установить курсор на нужную колонку?
|
|
1
vicof
12.12.21
✎
14:54
|
А тип у текущей колонки какой?
|
|
2
vicof
12.12.21
✎
14:55
|
точней у ТекущаяКолонка
|
|
3
Мимохожий Однако
12.12.21
✎
15:29
|
В оформлении ячейки Отметка не заполненного установить в истину.
|
|
4
Mikhail Volkov
12.12.21
✎
15:32
|
(1) Документ, обычно Заказ-наряд, или какая ни будь Реализация...
(2) Переписал: ЭтаФорма.ЭлементыФормы.Состав.ТекущаяКолонка = ТипЗнч(Строка.Сделка); Ошибка при установке значения атрибута контекста (ТекущаяКолонка) по причине: Несоответствие типов. Как правильно написать тип колонки?
|
|
5
Mikhail Volkov
12.12.21
✎
15:33
|
(3) Это как?
|
|
6
Мимохожий Однако
12.12.21
✎
16:00
|
(5) В нужном поле использовать АвтоОтметкаНезаполненного.
..
Или пример из СП
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = НСтр("ru = 'В строке 11 табличной части Номенклатура не хватает "
+ "; en = 'In line 11 of tabular section Nomenclature is missing' ")
+ НедостающееКоличество + " " + ЕдиницаИзмеренияНоменклатуры;
Сообщение.Поле = "Номенклатура[10].Количество";
Сообщение.УстановитьДанные(ОбъектДанных);
Сообщение.Сообщить();
|
|
7
Mikhail Volkov
12.12.21
✎
16:13
|
(6) А как это сделать? Пример не понял, к чему?
Переписал конкретно: ЭтаФорма.ЭлементыФормы.Состав.ТекущаяКолонка = Тип("ДокументСсылка.РеализацияТоваров") - та же ошибка!?
Из описания ТекущаяКолонка: Содержит текущую колонку табличного поля. Если данному свойству присвоить КолонкаТабличногоПоля, то произойдет активизация указанной колонки. Как присвоить КолонкаТабличногоПоля?
|
|
8
hhhh
12.12.21
✎
16:42
|
(7) как это может такое быть? Текущая колонка равна типу??
|
|
9
hhhh
12.12.21
✎
16:42
|
бред какой-то
|
|
10
hhhh
12.12.21
✎
16:43
|
(7) отладчиком пройдите и посмотрите, что находится в ЭтаФорма.ЭлементыФормы.Состав.ТекущаяКолонка
|
|
11
Ёпрст
гуру
12.12.21
✎
17:45
|
(0)
ЭлементыФормы.Состав.ТекущаяКолонка = элементыФормы.Состав.Колонки.Сделка;
|
|
12
Mikhail Volkov
12.12.21
✎
18:27
|
(10) Ничего, даже написал: КолонкаТабличногоПоля = ЭтаФорма.ЭлементыФормы.Состав.ТекущаяКолонка; - ничего не вижу, в этих строках Строка.Сделка не заполнена. А в заполненных - документы сделок. Это (2) меня сбил, ну и: Ошибка при установке значения атрибута контекста (ТекущаяКолонка) по причине: Несоответствие типов.
(11) Спс, так сработало! Вроде раньше пробовал так...
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший