|
Неверные значения выбранной строки |
☑ |
0
Bukasoid
05.12.15
✎
00:24
|
Есть форма справочника, в ней табличная часть с таблицей значений. При двойном щелчке на строку открывается форма элемента другого справочника. Заношу изменения, закрываю, все обновляется, но при повторном выборе этой строки выскакивает ошибка "Индекс находится за пределами массива", в параметр "ВыбраннаяСтрока" обработчика события Выбор передается № выбранной строки + кол-во строк(т.е. если в таблице 2 строки, то первый раз передастся 0, а при повторном выборе той же строки - 2)
Подскажите, в чем может быть проблема?
Пробовал очищать таблицу перед повторным заполнением - не помогает.
P.S. Извиняюсь за корявое объяснение
|
|
1
Bukasoid
05.12.15
✎
00:26
|
Вот кусок кода с обработчиками:
&НаСервере
Процедура ОбновитьСправки(Значение = Неопределено, Параметры = Неопределено)
Запрос = Новый Запрос("ВЫБРАТЬ
| Справки.Ссылка,
| Справки.ДатаНач,
| Справки.ДатаКон
|ИЗ
| Справочник.Справки КАК Справки
|ГДЕ
| Справки.ФизЛицо = &ФизЛицо");
Запрос.УстановитьПараметр("ФизЛицо", Объект.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Счетчик = 0;
Справки.Очистить();
ЭтаФорма.Справки.Очистить();
Пока Выборка.Следующий() Цикл
Счетчик = Счетчик + 1;
СтрокаТЗ = Справки.Добавить();
СтрокаТЗ.Номер = Счетчик;
СтрокаТЗ.ДатаНач = Выборка.ДатаНач;
СтрокаТЗ.ДатаКон = Выборка.ДатаКон;
СтрокаТЗ.Ссылка = Выборка.Ссылка;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура СправкиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура("Ключ",ЭтаФорма.Справки[ВыбраннаяСтрока].Ссылка) ;
Форма = ПолучитьФорму("Справочник.Справки.ФормаОбъекта", ПараметрыФормы);
Форма.ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("ОбновитьСправки", ЭтаФорма);
Форма.Открыть();
КонецПроцедуры
|
|
2
Сергиус
05.12.15
✎
00:43
|
(0)У тебя в форме ТЧ какого справочника? Справки или другого?
|
|
3
Сергиус
05.12.15
✎
00:48
|
+(2)А вообще, скорее всего проблема вот в этом месте:
ЭтаФорма.Справки[ВыбраннаяСтрока], т.к. ВыбраннаяСтрока это не индекс строки, а ее идентификатор. Т.е. надо использовать ЭтаФорма.Справки.НайтиПоИдентификатору(ВыбраннаяСтрока).
|
|
4
Bukasoid
05.12.15
✎
22:23
|
(3) Спасибо, проблема решилась
|
|