|
Уф как обновить коллекцию выделенных строк таблицы формы | ☑ | ||
---|---|---|---|---|
0
Droning1C
03.03.21
✎
17:37
|
По нажатию на форме обработки, встроенной в расширение, вызывается выполнение следующего кода:
&НаКлиенте Процедура СформироватьОтчетОстатки(Команда) Если НЕ Элементы.СоставЗаказа.ТекущаяСтрока = Неопределено Тогда МассивВыделеннойНоменклатуры = Новый Массив; Для Каждого Индекс Из Элементы.СоставЗаказа.ВыделенныеСтроки Цикл МассивВыделеннойНоменклатуры.Добавить(Объект.СоставЗаказа[Индекс].Номенклатура); КонецЦикла; УсловияОтбора = Новый Структура("Номенклатура", МассивВыделеннойНоменклатуры); ПараметрыФормы = Новый Структура("Отбор, СформироватьПриОткрытии", УсловияОтбора, Истина); ОткрытьФорму("Отчет.ОстаткиИДоступностьТоваров.Форма", ПараметрыФормы); Иначе ПараметрыФормы = Новый Структура("СформироватьПриОткрытии", Ложь); ОткрытьФорму("Отчет.ОстаткиИДоступностьТоваров.Форма", ПараметрыФормы); КонецЕсли; КонецПроцедуры Если выделить несколько строк в тч, удалить их и вызвать выполнение кода, то коллекция выделенных строк не обновляется, в следствии чего получаю ошибки. Как обновить коллекцию выделенных строк таблицы формы в данном случае? |
|||
1
Droning1C
03.03.21
✎
17:40
|
По нажатию на форме обработки))) Извиняюсь... По нажатию кнопки, конечно же)
|
|||
2
Droning1C
03.03.21
✎
18:58
|
Я явно упускаю какой-то пустяк, просто из-зи отсутствия опыта работы с УФ. Пробовал по-разному, не получается.
|
|||
3
Droning1C
03.03.21
✎
19:02
|
Мне нужно по выделенным строкам формировать отбор вызываемого отчета. Если заполнить ТЧ обработки, выделить строки и сформировать отчет, то все ок.
Если после заполнения удалить первые, допустим, 5 строк из 7ми, то при повторном вызове процедуры формирования отчета, индексы выделенных строк в коллекции выделенных строк остаются прежними и вызывается искл ситуация - индекс находится за границами массива. |
|||
4
ДенисЧ
03.03.21
✎
19:05
|
И правильно вызываются.
Ибо не поиндексам нужно строки брать, а по идентификаторам. В книжке по УФ это написано. |
|||
5
Droning1C
03.03.21
✎
19:18
|
(4)
Для Каждого Идентификатор Из Элементы.СоставЗаказа.ВыделенныеСтроки Цикл НСтроки = Объект.СоставЗаказа.НайтиПоИдентификатору(Идентификатор).НомерСтроки; МассивВыделеннойНоменклатуры.Добавить(Объект.СоставЗаказа[НСтроки-1].Номенклатура); КонецЦикла; Так? или тоже изврат? |
|||
6
Chameleon1980
03.03.21
✎
19:39
|
ну книгу то открыл?
или СП чтоли |
|||
7
Droning1C
03.03.21
✎
20:15
|
(6) стр 624-628)))
Для Каждого Идентификатор Из Элементы.СоставЗаказа.ВыделенныеСтроки Цикл СтрокаКоллекции = Объект.СоставЗаказа.НайтиПоИдентификатору(Идентификатор); ИндексСтрокиКоллекции = Объект.СоставЗаказа.Индекс(СтрокаКоллекции); МассивВыделеннойНоменклатуры.Добавить(Объект.СоставЗаказа[ИндексСтрокиКоллекции].Номенклатура); КонецЦикла; теперь то не изврат?) |
|||
8
Droning1C
03.03.21
✎
20:17
|
и еще, на что я изначально не обратил внимание -
ВыделенныеСтроки (SelectedRows) Использование: Только чтение. Описание: Тип: Массив. Содержит массив ИДЕНТИФИКАТОРОВ выделенных строк. (а не индексов) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |