Имя: Пароль:
1C
1С v8
Как программно установить курсор на текущее поле ввода в табличной части обычной формы?
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) Спс, так сработало! Вроде раньше пробовал так...
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан