|
Поиск и выбор строки в ТЧ документа | ☑ | ||
---|---|---|---|---|
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) благодарю, понял, учту.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |