|
Очистить индекс выделенных строк в табличной части обработки ↓ (Волшебник 21.08.2024 09:27) |
☑ |
0
newtech
naïve
20.08.24
✎
21:00
|
Проблема такая...
1. Есть обработка с табличной частью
2. По команде (Загрузить) загружаю в ТЧ некоторые данные (3 строки).Перед этим выполняю Объект.ТЧСписок.Очистить()
3. Выбираю нужные мне данные (к примеру 2 первые строки) и обрабатываю, используя МассивВыделенныхСтрок = ЭтаФорма.Элементы.ТЧСписок.ВыделенныеСтроки
получаем массив из 2 элементов, со значениями 0,1
4. Если не закрывая табличную часть, снова (с Объект.ТЧСписок.Очистить() ) загрузить данные начиная с П.2
то получаем массив из 2 элементов, со значениями 3,4. Из за чего получаю ошибку (Индекс находится за границами массива)
Как очистить индексы выделяемых строк, перед повторным заполнением ТЧ?
|
|
1
Волшебник
20.08.24
✎
21:33
|
чушь
|
|
2
PR
20.08.24
✎
21:41
|
(0) — Давай купим картошку
— Я вчера мешок купил, она что, вся испортилась?
— Нет она вся свекла
Я к тому, что не нужно заниматься всякой чушью типа "очистить индексы выделяемых строк"
Лучше потратить время на изучение предметной области, в частности такой вещи, как ИсходныйНомерСтроки
|
|
3
newtech
naïve
20.08.24
✎
22:01
|
(1) Возможно не точно описал проблему. Дополню..
после заполнения ТЧ, выбираю только те строки которые меня интересуют, для дальнейшей обработки.
где получаю в МассивВыделенныхСтрок - список значений(Номера выделенных строк, выделяя через ctrl, в той последовательности, которая необходима).
далее... массив передаю через ПоказатьВопрос(Новый ОписаниеОповещения("ОтправитьПоАдресам", ЭтотОбъект, Новый Структура("МассивВыделенныхСтрок", МассивВыделенныхСтрок)), ТекстВопроса,РежимДиалогаВопрос.ДаНет);
далее...
М = ДополнительныеПараметры.МассивВыделенныхСтрок;
далее Для Каждого ТекСтрока Из М Цикл
где получаю Объект.ТЧСписок[ТекСтрока].НужныеДанные
теперь если не закрывая ТЧ, снова загрузить и обработать вылетает ошибка.
возможно нужно поменять алгоритм обработки выделенных строк., натолкните на мысль..))
|
|
4
timurhv
20.08.24
✎
22:22
|
|
|
5
newtech
naïve
20.08.24
✎
23:08
|
(4) Да, уж ларчик просто открывается., СПАСИБО.
PS. прежде чем обратится сюда, убил сутки ))
Заменил НужныеДанные = Объект.ТЧСписок[ТекСтрока].НужныеДанные
на НужныеДанные = Объект.ТЧСписок.НайтиПоИдентификатору(ТекСтрока).НужныеДанные
и все зашелестело ))
|
|
6
Ненавижу 1С
21.08.24
✎
08:34
|
Идентификатор строки это не ее индекс в источнике
|
|
7
PR
21.08.24
✎
12:08
|
(5) А мог бы просто прочитать (2)
Но, видимо, чукча не читатель
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший