Имя: Пароль:
1C
1С v8
Провалиться в ячейку табличного поля после программного добавления строки
0 web_profiler
 
30.05.15
12:06
согласен тем очень много, но у меня не получается "провалиться" в программно добавленную строку
помогите разобраться

Обычное приложение
Есть форма, на ней таб поле
при открытии добавляю строку товары.добавить();

при активизации строки "проваливаюсь в ячейку"
    ТекущийЭлемент = ЭлементыФормы.товары;
    ТекСтрока = ЭлементыФормы.Товары.ТекущаяСтрока;//товары.Получить(товары.Количество() - 1);
    Если ТекСтрока <> Неопределено Тогда
        ТекущийЭлемент.ТекущаяСтрока = ТекСтрока;
        ТекущийЭлемент.ТекущаяКолонка = ЭлементыФормы.Товары.Колонки.Штрихкод;
    КонецЕсли;

потом при изменении ТоварыШтрихкодПриИзменении(Элемент)

    стр = товары.Добавить();
        
    ТекущийЭлемент = ЭлементыФормы.товары;
    ТекущийЭлемент.ТекущаяСтрока    = товары.Получить(товары.Количество() - 1);

активизирую добавленную строку

и тут вопрос: как "провалиться"новую строку ?
1 oslokot
 
30.05.15
12:14
(0) Провалиться мне на месте, вот не пойму что такое "провалиться"? активизировать ячейку поля и войти в режим редактирования?
2 web_profiler
 
30.05.15
12:23
ячейка активизирована
неполучается войти в режим редактирования
вход непосредственно установлен
3 web_profiler
 
30.05.15
12:23
активизирована
4 web_profiler
 
30.05.15
12:25
Процедура ПриОткрытии()
    товары.Добавить();
КонецПроцедуры


Процедура ТоварыПриАктивизацииСтроки(Элемент)
    
    ТекущийЭлемент = ЭлементыФормы.товары;
    ТекСтрока = ЭлементыФормы.Товары.ТекущаяСтрока;//товары.Получить(товары.Количество() - 1);
    Если ТекСтрока <> Неопределено Тогда
        ТекущийЭлемент.ТекущаяСтрока = ТекСтрока;
        ТекущийЭлемент.ТекущаяКолонка = ЭлементыФормы.Товары.Колонки.Штрихкод;
    КонецЕсли;
КонецПроцедуры

Процедура ТоварыШтрихкодПриИзменении(Элемент)
        //ЭлементыФормы.Товары.ЗакончитьРедактированиеСтроки(Ложь);
    //ТекСтрока = товары.Получить(товары.Количество() - 1);
    //Если ТекСтрока <> Неопределено Тогда
    
    
    
    стр = товары.Добавить();
        
    ТекущийЭлемент = ЭлементыФормы.товары;
    ТекущийЭлемент.ТекущаяСтрока    = товары.Получить(товары.Количество() - 1);
    
    
    
    ТекущийЭлемент.ТекущаяКолонка    = ЭлементыФормы.товары.Колонки.Штрихкод;
    //ЭлементыФормы.Товары.ИзменитьСтроку();
    //КонецЕсли;
КонецПроцедуры
5 web_profiler
 
30.05.15
12:31
ап
6 web_profiler
 
30.05.15
12:38
помогите, не получается войти в редактирование ячейки
7 web_profiler
 
30.05.15
12:50
хелп!!!
8 RomanYS
 
30.05.15
12:55
ЭлементыФормы.ТабличнаяЧасть1.ИзменитьСтроку();
9 web_profiler
 
30.05.15
13:17
(8) не работает
10 web_profiler
 
30.05.15
13:18
(8) см. (4)
11 RomanYS
 
30.05.15
13:24
ты хочешь при открытии добавить строку и начать её редактирование?
Причем здесь обработчики активизации и изменения, делай всё при открытии. (8) работает, просто у тебя оно не вызывается
12 RomanYS
 
30.05.15
13:40
видимо при открытии отрабатываю какие-то действия, которые завершают редактирование, получилось так:

Процедура _do()
    ТЧ = ЭлементыФормы.ТабличнаяЧасть1;
    Стр = ТабличнаяЧасть1.Добавить();
    ТЧ.ТекущаяСтрока  = Стр;
    ТЧ.ТекущаяКолонка = ТЧ.Колонки.Реквизит2;
    ТЧ.ИзменитьСтроку();
КонецПроцедуры


Процедура ПриОткрытии()
    ПодключитьОбработчикОжидания("_do", 0.1, Истина);
КонецПроцедуры
13 Zhuravlik
 
30.05.15
14:03
(12) у него табличное поле
(0) Почему не использовать табл. чать? Табл. поле - поддерживает ввод данных, но вообще ориентировано на вывод информации, а не на ввод.
14 Zhuravlik
 
30.05.15
14:04
А, не доглядел "ЭлементыФормы.Товары.Колонки.Штрихкод", извиняюсь. В названии темы ошибка.
15 Zhuravlik
 
30.05.15
14:06
И снова пардон, нет ошибки) Попутал Табличное поле <> поле табличного документа.