Имя: Пароль:
1C
1С v8
Поиск по табличной части и постановка курсора в ячейку кол-во
,
0 shock3r
 
17.10.12
12:02
добрый день
Подскажите как реализовывается следующий механизм:
Есть Табличная часть:
N | Номенклатура | Количеств

в ТЧ есть данные:
1 Холодильник 0
2 Телевизор 0

Есть поле ввода Номенклатура. Пользователь выбирает значение (например "Телевизор") из справочника. В коде "при изменении" мне нужно реализовать следующий механизм.

Поиск по ТЧ строки с Номенклатурой "Телевизор" и установить курсор в ячейку "Количество" чтобы пользователю оставалось только нажать цифру, затем enter и вернуться обратно в поле ввода.
1 GLazNik
 
17.10.12
12:05
(0) НайтиСтроки... не?
2 Reset
 
17.10.12
12:11
Найти строку через метод Найти табличной части.
Если нашли, установить Свойства ТекущаяСтрока и ТекущаяКолонка табличного поля.
Чтобы для редактирования количества не требовалось нажимать Enter, у колонки установить РежимРедактирования "Непосредственно"
3 shock3r
 
17.10.12
12:24
(2) нашел строку через метод найти.
Установил режим редактирования для колонки "Количество"

А подскажите подробнее где и как устанавливать Свойства ТекущаяСторка и ТекущаяКолонка
4 shock3r
 
17.10.12
12:30
ИскомаяСтрокаТЧ2 = ТабличнаяЧасть2.Найти(текСтрока.Номенклатура, "Номенклатура");
           
           ЭлементыФормы.ТабличнаяЧасть2.ТекущаяСтрока = ИскомаяСтрокаТЧ2.НомерСтроки;
           ЭлементыФормы.ТабличнаяЧасть2.ТекущаяКолонка = ИскомаяСтрокаТЧ2.Количество;

Такой код выдает след ошибку

{Форма.Форма.Форма(19)}: Ошибка при установке значения атрибута контекста (ТекущаяСтрока)
           ЭлементыФормы.ТабличнаяЧасть2.ТекущаяСтрока = ИскомаяСтрокаТЧ2.НомерСтроки;
по причине:
Отсутствует ключ строки
5 hhhh
 
17.10.12
12:31
ЭлементыФормы.НАзваниеТабличногоПоля.ТекущаяСтрока = ТВояНайденнаяСтрокаИзМетодаНайти;

ЭлементыФормы.НАзваниеТабличногоПоля.ТекущаяКолонка = ТВояНайденнаяКолонка;
6 hhhh
 
17.10.12
12:32
(4)

ЭлементыФормы.ТабличнаяЧасть2.ТекущаяСтрока = ИскомаяСтрокаТЧ2;
7 shock3r
 
17.10.12
12:37
(5)
Со строкой разобрался. А откуда взять ТВояНайденнаяКолонка ??

Если я беру колонку из найденной сторки.<имя колонки>

ЭлементыФормы.ТабличнаяЧасть2.ТекущаяКолонка = ИскомаяСтрокаТЧ2.Количество;


{Форма.Форма.Форма(20)}: Ошибка при установке значения атрибута контекста (ТекущаяКолонка)
           ЭлементыФормы.ТабличнаяЧасть2.ТекущаяКолонка = ИскомаяСтрокаТЧ2.Выдано;
по причине:
Несоответствие типов
8 Reset
 
17.10.12
12:38
+
ЭлементыФормы.ТабличнаяЧасть2.ТекущаяКолонка=ЭлементыФормы.ТабличнаяЧасть2.Колонки.Количество;

Еще, вероятно, потребуется установка ТекущийЭлемент=ЭлементыФормы.ТабличнаяЧасть2;
Лучше перед установкой строки и колонки
9 shock3r
 
17.10.12
12:38
.Выдано это у меня .Количество, при описание проблемы на мисте  решил что проще Выдано Количеством заменить
10 Reset
 
17.10.12
12:39
ну напиши Выдано.
11 shock3r
 
17.10.12
12:47
Спасибо! Почти заработало))

О как теперь передать курсор из найденого поля ТЧ, обратно в ПОЛЕ ВВОДА на форме документа?
12 GLazNik
 
17.10.12
12:50
(11) а если изменили количество непосредственно в табличной части? имхо при изменении поля ввода на форму заполняй какуюнить переменную. после изменения количество в табличной части проверяй эту переменную и возвращай фокус через ЭлементыФормы.ТекущийЭлемент = твое поле ввода
13 shock3r
 
17.10.12
13:05
12

Фокус таким образом не хочет передаваться, выдает ошибку!
{Форма.Форма.Форма(45)}: Поле объекта не обнаружено (ТекущийЭлемент)
   ЭлементыФормы.ТекущийЭлемент = ЭлементыФормы.Номенклатура;
14 GLazNik
 
17.10.12
13:07
(13) форма.ТекущийЭлемент или ЭтаФорма.ТекущийЭлемент
15 Reset
 
17.10.12
13:08
или ТекущийЭлемент = ЭлементыФормы.Номенклатура;
16 shock3r
 
17.10.12
13:23
при заполнении Поля Номенклатура, передаю фокус на табличную часть 2, на найденную строку и колонку кодом:

ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ТабличнаяЧасть2; // передача фокуса на ТЧ2

всё прекарсно отрабатывает, но когда заполняю колонку Количество, она не хочет передавать фокус на Поле Номенклатура.

У колонки стоит режим редактирование "Непосредственно", в свойстве ячейки "при изменении" - следующий код:

ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.Штрихкод;

всё равно остаюсь висеть в ячейке после нажатия на Enter
17 shock3r
 
17.10.12
13:24
ЭлементыФормы.Штрихкод = ЭлементыФормы.Номенклатура для примера на форуме
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.