Имя: Пароль:
1C
1С v8
Поиск и выбор строки в ТЧ документа
,
0 sdm82
 
20.12.11
17:09
Имеется внешняя обработка. На форме табличное поле с данными по документам требование-накладная в трёх колонках:

НомерДокумента
ДатаДокумента
НоменклатураКод

Двойной клик на строке табличного поля запускает поиск документа в базе и если находит открывает его форму. Как в открывшемся документе найти и ВЫБРАТЬ строку, в которой код номенклатуры равен значению НоменклатураКод?
1 hhhh
 
20.12.11
17:13
найти сразу и документ и номер строки. Зачем вы отдельно документ разыскиваете?
2 НуВотКак
 
20.12.11
17:13
Для Каждого Стр из НайденыйДо.Товары
Если Стр.Номенклатура.код =
3 Eugene_life
 
20.12.11
17:15
(0) При поиске документа найти ссылку на документ и номер строки в документе. Открыть документ, сообщить номер строки.
4 sdm82
 
20.12.11
17:26
(1) НуВотКак, Идея понятна, но в этом-то вопрос и заключается:

Для Каждого СтрокаТовары Из НайденнаяСсылка.Товары Цикл
Если СтрокаТовары.Номенклатура.Код = НКод Тогда
//как выбрать строку;
КонецЕсли;
КонецЦикла;

(3) Eugene_life, вопрос не в том как определить номер строки, а как её выделить/выбрать/активизировать?
5 Axel2009
 
20.12.11
17:27
ТекущаяСтрока
6 sdm82
 
20.12.11
17:33
(5) я бы с удовольствием, но нет такого параметра ((
7 sdm82
 
20.12.11
17:38
Жму на табличное поле с НомерДокумента, ДатаДокумента, НоменклатураКод.
Пытаюсь так, не получается:


НайденнаяСсылка=Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(НомерДокумента,ДатаДокумента);

Если НайденнаяСсылка <> Документы.ПоступлениеТоваровУслуг.ПустаяСсылка() Тогда
Форма = НайденнаяСсылка.ПолучитьФорму();
Форма.Открыть();

   Для Каждого СтрокаТовары Из НайденнаяСсылка.Товары Цикл
   Если СтрокаТовары.Номенклатура.Код = НоменклатураКод Тогда
       //я так понимаю тут надо как-то выделить строку, но как ???
   КонецЕсли;
КонецЦикла;
8 Axel2009
 
20.12.11
17:40
Форма.ЭлементыФормы.Товары.ТекущаяСтрока
9 sdm82
 
21.12.11
09:27
(8) папытался так, всё равно не выделяется строка


//Форма.ЭлементыФормы.Товары.ТекущаяСтрока = НомерСтроки; //Ошибка при установке значения атрибута контекста (ТекущаяСтрока) по причине: Отсутствует ключ строки

//Форма.ЭлементыФормы.Товары.ТекущаяСтрока = Форма.ЭлементыФормы.Товары[НомерСтроки]; //Получение элемента по индексу для значения не определено

//Форма.ЭлементыФормы.Товары.ТекущаяСтрока = Форма.ЭлементыФормы.Товары.Найти(Справочники.Номенклатура.НайтиПоКоду(НоменклатураКод),"Номенклатура"); //Метод объекта не обнаружен (Найти)

//Форма.ЭлементыФормы.Товары.ТекущаяСтрока = Форма.ЭлементыФормы.Товары.НайтиСтроки("Номенклатура",Справочники.Номенклатура.НайтиПоКоду(НоменклатураКод)); //Метод объекта не обнаружен (НайтиСтроки)
10 hhhh
 
21.12.11
09:32
(9) у тебя в голове полная каша:

1. ТекущаяСтрока - там не номер должен быть, а ссылка на строку.
2. Глупо делать Найти в Элементах формы: элементы формы - это всякие квадратики и рисунки. Ищи в данных, в самой табличной части.
11 Ненавижу 1С
 
гуру
21.12.11
09:34
Форма.ЭлементыФормы.Товары.ТекущаяСтрока = Объект.Товары[НайденныйНомер-1];
12 Axel2009
 
21.12.11
09:55
Форма.ЭлементыФормы.Товары.Значение.НайтиСтроки
13 sdm82
 
21.12.11
10:40
(10) есть такой момент :)
(11) не совсем понял про Объект.Товары[НайденныйНомер-1]. Объект - это что?? Чему он равен?

В общем, возможно не очень изящно, но главное заработало:


ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Номенклатура",Справочники.Номенклатура.НайтиПоКоду(НоменклатураКод));
НайденныеСтроки = Форма.ЭлементыФормы.Товары.Значение.НайтиСтроки(ПараметрыОтбора);
Форма.ЭлементыФормы.Товары.ТекущаяСтрока = НайденныеСтроки[0];


Всем огромное спасибо за помощь!
14 Axel2009
 
21.12.11
11:00
проверяй что строка найдена. а то ошибка будет
15 sdm82
 
21.12.11
12:35
(14) благодарю, понял, учту.