|   |   | 
| 
 | Уф как обновить коллекцию выделенных строк таблицы формы | ☑ | ||
|---|---|---|---|---|
| 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) Использование: Только чтение. Описание: Тип: Массив. Содержит массив ИДЕНТИФИКАТОРОВ выделенных строк. (а не индексов) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |