Имя: Пароль:
1C
 
Индекс находится за границами массива
0 pasha801
 
26.11.25
10:50
есть код:
&НаСервере
&Вместо("ОбработатьДанныеПоКодуСервер")
Процедура РМКШтрПрд_ОбработатьДанныеПоКодуСервер(СтруктураРезультат)
    
Если этаформа.ТекущийЭлемент.ТекущаяСтрока <> Неопределено Тогда
стр = Объект.Товары[этаформа.ТекущийЭлемент.ТекущаяСтрока];
стр.Продавец = СтрокаРезультата.ВладелецКарты;
КонецЕсли;

При сканировании выходит ошибка "Индекс находится за границами массива", проблема в платформе сто процентов, можно ли как то обойти эту ошибку
1 Волшебник
 
26.11.25
10:51
Что ж вы такие беспомощные...
2 Fedor-1971
 
26.11.25
11:05
(0) проведи эксперимент:
1. Добавляешь строку в ТЧ
2. удаляешь строку из ТЧ
3. ещё раз добавляешь, смотришь в этаформа.ТекущийЭлемент.ТекущаяСтрока и удивляешься, что это идентификатор строки формы, а не индекс или номер строки
Почитай про ПолучитьПоИдентификатору()
3 Буковка
 
26.11.25
11:39
(0) Вы, скорее всего, переходите с клиента на сервере, в серверном вызове изменяются свойства элементов, которые влияют на внешний вид формы
4 orakool
 
26.11.25
13:20
(3) мне нейросети похожие сказки рассказывают
5 Ненавижу 1С
 
гуру
26.11.25
13:20
(0) ТекущаяСтрока это не индекс в коллекции!
6 pasha801
 
26.11.25
13:36
(2) спасибо, заработало
                    ТекСтрокаИдентификатор = Элементы.Товары.ТекущаяСтрока;
                    ТекущиеДанные = Объект.Товары.НайтиПоИдентификатору(ТекСтрокаИдентификатор);
                    ТекущиеДанные.Продавец = СтрокаРезультата.ВладелецКарты;
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший