Команда для удаление строки
Событие "Выбор" для ТЗ
Казалось бы все просто, но не работает. После удаление строки. Если "выбрать" строку ниже удаленной, выдает данные на строку ниже, хотя отображает верно.
Пример:
Состояние 1 строки
1
2
3
4
5
Удаляем 2
Выбираем 3
На экране видим сообщение по 4 строке.
Что я не так делаю?
ИндексСтроки = Элементы.СписокСловДляКонтроля.ТекущаяСтрока;
СписокСловДляКонтроля.Удалить(ИндексСтроки);
Событие "Выбор" для ТЗ
&НаКлиенте
Процедура СписокСловДляКонтроляВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
// Вставить содержимое обработчика.
сСписокСловДляКонтроля = СписокСловДляКонтроля[ВыбраннаяСтрока];
текПеревод = ПолучитьПеревод(сСписокСловДляКонтроля.Слово);
ПоказатьПредупреждение(,текПеревод);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьПеревод(вхСлово)
Возврат вхСлово.Перевод;
КонецФункции
ПоказатьКазалось бы все просто, но не работает. После удаление строки. Если "выбрать" строку ниже удаленной, выдает данные на строку ниже, хотя отображает верно.
Пример:
Состояние 1 строки
1
2
3
4
5
Удаляем 2
Выбираем 3
На экране видим сообщение по 4 строке.
Что я не так делаю?
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ессно... удаление приводит к смещению индекса, ту столько копий уже поломали на подобных удалениях
я для себя привык нужные позиции выгружать в пустой клон таблицы или списка, пропуская те, которые нужно удалить, потом чищу исходную таблицу и загружаю в нее из клона "отфильтрованные" нужные позиции...
да, может не очень практично, зато без ошибок ))
я для себя привык нужные позиции выгружать в пустой клон таблицы или списка, пропуская те, которые нужно удалить, потом чищу исходную таблицу и загружаю в нее из клона "отфильтрованные" нужные позиции...
да, может не очень практично, зато без ошибок ))
(3) А мне не логично.
Я удаляю первую строку. И вижу на экране что удаляется первая строка.
Теперь делаю выбор первой строки (которая раньше была второй), и получаю индекс строки 1.
Мне не понятно почему 1, когда я вижу на экране что строка первая, а значит индекс строки должен быть 0.
Я удаляю первую строку. И вижу на экране что удаляется первая строка.
Теперь делаю выбор первой строки (которая раньше была второй), и получаю индекс строки 1.
Мне не понятно почему 1, когда я вижу на экране что строка первая, а значит индекс строки должен быть 0.
Попробую по-другому объяснить.
Есть ТЗ, эта ТЗ размещена на форме в виде Табличного поля.
Добавляю обработку Выбор, в которой хочу получить строку таблицы значений связанную с выбранной строкой Табличного поля.
Для меня казалось логичным, что ТекущаяСтрока в ТабличномПоле и ТЗ одна и та же. Но оказывается нет.
Как добраться до строки в ТЗ?
Есть ТЗ, эта ТЗ размещена на форме в виде Табличного поля.
Добавляю обработку Выбор, в которой хочу получить строку таблицы значений связанную с выбранной строкой Табличного поля.
Для меня казалось логичным, что ТекущаяСтрока в ТабличномПоле и ТЗ одна и та же. Но оказывается нет.
Как добраться до строки в ТЗ?
(23) поверь делают, вот пример из Акселота
выделил несколько строк, в одной выбрал нужное значение, во всех выделенных заполнилось тем же значением поле
&НаКлиенте
Процедура ТоварыЯчейкаПриИзменении(Элемент)
текСтрока = Элементы.Товары.ТекущиеДанные;
Для Каждого текВыдСтрока Из Элементы.Товары.ВыделенныеСтроки Цикл
Товары.НайтиПоИдентификатору(текВыдСтрока).Ячейка = текСтрока.Ячейка;
КонецЦикла;
КонецПроцедуры
Показатьвыделил несколько строк, в одной выбрал нужное значение, во всех выделенных заполнилось тем же значением поле
(25) Прикольно. Только суть моего замечания в том, что либо ты изначально реализовываешь обработку множественного выбора (и тогда вопрос не стоит), либо он не предусмотрен. И если забыли его отключить, то упасть по эксепшну в случае если пользователь его ошибочно произвел - абсолютно нормально. В итоге либо будет запрещен множественный выбор, либо реализован (если пользователям это нужно).
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот