0
slafor
31.07.21
✎
13:37
|
Наверное, на ерунде споткнулся, но никак не могу разобраться...
В документе есть табличная часть "Товары". Она заполняется при нажатии на кнопку "Заполнить". При этом, если таблица уже была заполнена, пользователю выдается вопрос "Перед заполнение табличная часть будет очищена. Продолжить?", и, если пользователь нажимает "Да", таблица "Товары" очищается и заполняется новыми данными.
В табличной части на форме используется процедура "Выбор" - то есть при двойном клике на строке ТЧ открывается выбранный элемент справочника "Номенклатура". Код выглядит примерно так:
&НаКлиенте
Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле.Имя = "Таблица1Номенклатура"
Попытка
ОткрытьЗначение(Объект.Товары[ВыбраннаяСтрока].Номенклатура);
Исключение
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Так вот, при первичном заполнении табличной части все в порядке. А при повторном и последующих Объект.Товары очищается, а ВыбранныхСтрок становится больше, т.е. они суммируются с теми строками, что были там до этого. И понятно, что при выборе, скажем, первой строки в таблице в поле "ВыбраннаяСтрока" у нас уже не "1", а 1 + количество строк до обновления.
Понимаю, что решить скорее всего просто, но не пойму как. Подскажите, пожалуйста.
|
|
2
slafor
31.07.21
✎
14:27
|
(1) Заменил код на:
&НаКлиенте
Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле.Имя = "Таблица1Номенклатура"
Попытка
ВыбСтрока = Объект.Товары.НайтиПоИдентификатору(ВыбраннаяСтрока);
ОткрытьЗначение(ВыбСтрока.Номенклатура);
Исключение
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Помогло! Все работает, спасибо.
|
|