![]() |
|
8.3. УФ. Глючит ОтборСтрок на поле ТЧ | ☑ | ||
---|---|---|---|---|
0
SeiOkami
28.07.15
✎
09:46
|
Здравия всем!
Платформа 8.3.5.1231. Конфа не имеет значения (самописка). Есть отчет. У него ТЧ, где есть булевная колонка (пусть будет "Пометка"). На управляемую форму выведены 2 таблицы привязанные к этой ТЧ. ПриСозданииНаСервере я на одну таблицу устанавливаю отбор строк, где "Пометка" = Истина, а на другую, где она "Ложь". Логика такая - пользователи нажимают на флажок "Пометка" и строка визуально переносится в другую таблицу, фактически же находится в той же ТЧ и меняется только флажок. Так вот, отбор строк срабатывает прекрасно. До того момента как я начинаю нажимать галки. Если я нажму галку в Таблице1, то в ней набор строк больше не изменится. То есть я могу сколько угодно галку включать\отключать, но строка все равно в Таблице1 останется. Таблица2 при этом будет работать как надо, но если в ней нажмешь галку - сломается и эта таблица. Ради эксперимента вывел третью таблицу без каких либо отборов. Если в ней меняю галку, то ничего не ломается. Повесил на таблицы обработчик ПриИзменении() в котором для таблиц вызываю Обновить(); Не помогает. В общем, что это за странное поведение? Как мне его "починить"? |
|||
1
Fedor-1971
28.07.15
✎
09:52
|
Для начала, попробуй делать не Обновить(), а заново устанавливать ОтборСтрок().
Код покажи, может что-то и прояснится. |
|||
2
SeiOkami
28.07.15
✎
09:58
|
(1), забыл написать, что пробовал. Работает, но
1. тупит (галочки-то быстро лепим) 2. постоянно прыгает в начало списка, что тоже неюзабельно код простой. Элементы.Таблица1.ОтборСтрок = Новый ФиксированнаяСтруктура("Пометка", Истина); Элементы.Таблица2.ОтборСтрок = Новый ФиксированнаяСтруктура("Пометка", Ложь); |
|||
3
SeiOkami
28.07.15
✎
10:00
|
+ Пробовал условное оформление на "Видимость" поставить. Постоянные глюки с прорисовкой шапки. Её то нет, то она кривая
|
|||
4
DmitrO
28.07.15
✎
10:00
|
Ну, по идее, ты вводишь данные не соответствующие текущему отбору, что в общем случае, наверняка, не рассматривалось разработчиками платформы как правильный/возможный сценарий использования.
|
|||
5
Fedor-1971
28.07.15
✎
10:05
|
(2) подключи ОбработчикОжидания и обновляй отборы в нём чрез NN секунд
|
|||
6
SeiOkami
28.07.15
✎
10:15
|
(5), неюзабельно. Выходит, что строки будут переносится с задержкой + постоянно таблицы будут прыгать в начало списка
|
|||
7
DmitrO
28.07.15
✎
10:15
|
Я бы сценарий такого ввода данных реализовал так: две таблицы без отборов, без флажков, у каждой свои данные. Перевод из одной в другую выполнялся бы драгэндропом (с учетом множественного выделения).
Даже если для конечного результата нужна одна таблица с будевым полем принадлежности к одному из двух наборов, получал бы ее программно сливая две в одну. |
|||
8
DmitrO
28.07.15
✎
10:16
|
*с булевым полем принадлежности
|
|||
9
SeiOkami
28.07.15
✎
10:16
|
(4), я не вывожу данные. Я меняю данные и если они не соответствуют отбору то вполне логичено, что платформа должна их скрывать
|
|||
10
SeiOkami
28.07.15
✎
10:17
|
(7) реализовать можно по-разному. Более интересно как починить глюк
|
|||
11
DmitrO
28.07.15
✎
10:18
|
(9)установкой флажка ты ВВОДИШЬ данные, именно это я и написал. Причем тут вывод.
|
|||
12
SeiOkami
28.07.15
✎
10:20
|
(11), это не важно, в любом случае данные, не соответствующие отбору, должны быть платформой скрыты
|
|||
13
DmitrO
28.07.15
✎
10:22
|
(12)понимаешь, абсурд ситуации в том, что при вводе данных строка исчезает, именно этот сценарий и не отвергают разработчики платформы.
|
|||
14
DmitrO
28.07.15
✎
10:26
|
Представь редактируемое текстовое поле ввода с таким условием видимости: если во вводимом тексте содержится строка "сок", то надо чтобы оно было не видимым.
|
|||
15
DmitrO
28.07.15
✎
10:27
|
(13) читать так:
понимаешь, абсурд ситуации в том, что при вводе данных строка исчезает, именно этот сценарий и отвергают разработчики платформы. |
|||
16
SeiOkami
28.07.15
✎
10:29
|
(15), это глюк. Просто глюк. В обычных формах всё работает. А в УФ просто глюк.
|
|||
17
DmitrO
28.07.15
✎
10:34
|
Понимаешь, отбор строк отрабатывает на сервере. Так работают УФ.
|
|||
18
Fedor-1971
28.07.15
✎
10:35
|
(2)тогда имеет смысл сделать через кнопку перенос из одной таблицы в другую.
Примерно такая логика: выдели всё что тебе не нужно в Таблице1 и нажми кнопку для переноса в Таблицу2 и наоборот. (15) я думаю что нет, ОтборСтрок - разовое действие, отобрал и работай с ними, для динамики оно не предназначено. Попробуй использовать Отбор у ТЧ, а не ОтборСтрок, оно как раз таки на динамику рассчитано. |
|||
19
DmitrO
28.07.15
✎
10:36
|
Кстати, можно эту задачу решить и без отбора строк. Но все равно: 2 таблицы со своими данными, и при изменении флажка программно перемещать строку.
Тогда будет быстро и как ты хочешь, да еще и в рамках клиента, без серверных вызовов. |
|||
20
SeiOkami
28.07.15
✎
10:37
|
Пока реализовал так. При двойном щелчке сам программно меняю флажок и ничего не ломается) Это странный костыль, но работает
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |