Множественное выделение строк в табличном поле
Добрый вечер.
Столкнулся с странным поведением 1с.
В общем, имеется табличное поле, добавил на форму чекбокс, для выбора и выделения всех строк.
Например, в документе 6 строк, ставлю птичку, все строчки выделяются, подвал пересчитывается.
Если снять 2 галки остаются 4 выделенные, тоже норм, но если поставить галку обратно, на снятую, то все выделенные снимаются и остаётся только одна.
Почему так?
Обычная форма - УТ 10.3
Для выделения строк использую событие табличного поля - ПриИзмененииФлажка:
Столкнулся с странным поведением 1с.
В общем, имеется табличное поле, добавил на форму чекбокс, для выбора и выделения всех строк.
Например, в документе 6 строк, ставлю птичку, все строчки выделяются, подвал пересчитывается.
Если снять 2 галки остаются 4 выделенные, тоже норм, но если поставить галку обратно, на снятую, то все выделенные снимаются и остаётся только одна.
Почему так?
Обычная форма - УТ 10.3
Для выделения строк использую событие табличного поля - ПриИзмененииФлажка:
КоличествоМест = Число(Элемент.Колонки.КоличествоМест.ТекстПодвала);
Сумма = Число(Элемент.Колонки.Сумма.ТекстПодвала);
Если Колонка.Имя = "Включить" Тогда
НайденныйЭлемент = Включено.НайтиПоЗначению(Элемент.ТекущаяСтрока);
Если НайденныйЭлемент = Неопределено Тогда
Включено.Добавить(Элемент.ТекущаяСтрока);
Элемент.ВыделенныеСтроки.Добавить(Элемент.ТекущаяСтрока);
КоличествоМест = КоличествоМест + Элемент.ТекущаяСтрока.КоличествоМест;
Сумма = Сумма + Элемент.ТекущаяСтрока.Сумма;
Иначе
Включено.Удалить(НайденныйЭлемент);
Элемент.ВыделенныеСтроки.Удалить(Элемент.ТекущаяСтрока);
КоличествоМест = КоличествоМест - Элемент.ТекущаяСтрока.КоличествоМест;
Сумма = Сумма - Элемент.ТекущаяСтрока.Сумма;
КонецЕсли;
КонецЕсли;
Элемент.Колонки.КоличествоМест.ТекстПодвала = КоличествоМест;
Элемент.Колонки.Сумма.ТекстПодвала = Сумма;
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Попробуйте так:
Если Колонка.Имя = "Включить" Тогда
Для Каждого ТекущаяВыделеннаяСтрока Из Элементы.ВыделенныеСтроки Цикл
Элемент.ВыделенныеСтроки.Добавить(Элементы.НайтиПоИдентификатору(ТекущаяВыделеннаяСтрока));
КонецЦикла;
НайденныйЭлемент = Включено.НайтиПоЗначению(Элемент.ТекущаяСтрока);
Если НайденныйЭлемент = Неопределено Тогда
Включено.Добавить(Элемент.ТекущаяСтрока);
Элемент.ВыделенныеСтроки.Добавить(Элемент.ТекущаяСтрока);
КоличествоМест = КоличествоМест + Элемент.ТекущаяСтрока.КоличествоМест;
Сумма = Сумма + Элемент.ТекущаяСтрока.Сумма;
Иначе
Включено.Удалить(НайденныйЭлемент);
Элемент.ВыделенныеСтроки.Удалить(Элемент.ТекущаяСтрока);
КоличествоМест = КоличествоМест - Элемент.ТекущаяСтрока.КоличествоМест;
Сумма = Сумма - Элемент.ТекущаяСтрока.Сумма;
КонецЕсли;
КонецЕсли;
Показать
а зачем вам выделенные строки (зачем их постоянно держать выделенными на форме?)
обычно выделяют строчки, что бы с ними сделать какие-то действия, обработать
после этого выделение всех не нужно
вообще это интерактивный механизм, сам смысл выделения показать текущую строку, или текущую группу
любое тыканье в ТЗ меняет текущее состояние
опишите изначально задачу, для чего вам это постоянное выделение?
вот как вариант используйте свои отметки, они более постоянные и не зависят от простого тыканья в строчки ТЗ
обычно выделяют строчки, что бы с ними сделать какие-то действия, обработать
после этого выделение всех не нужно
вообще это интерактивный механизм, сам смысл выделения показать текущую строку, или текущую группу
любое тыканье в ТЗ меняет текущее состояние
опишите изначально задачу, для чего вам это постоянное выделение?
вот как вариант используйте свои отметки, они более постоянные и не зависят от простого тыканья в строчки ТЗ
(8)Есть обработка по доставке. В табличное поле, по заданным критериям попадают документы. Оператор выбирает документ и кликает по кнопке Добавить в заказ (тут таблица очищается). Нужно реализовать множественный выбор. Для начала Выбрать все (галка), это работает. Вот выбраны все документы, оператор снимает выделение с некоторых и жмет на кнопку Добавить. Хорошо, но вот он решает, что с одним документом он ошибся и нужно вернуть его в выделенные.
Как-то так.
Как-то так.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот