Как программно узнать, что искали в таблице ТЧ? (УФ)

1. adhocprog 1141 23.04.20 11:48 Сейчас в теме
На скрине элемент Таблица, отображающего Табличную часть.
Одна строка скрыта.
Как программно узнать что именно искали по кнопке Найти (Ctrl+F)?
Какое поле, какая строка поиска?
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. davealone 166 23.04.20 12:00 Сейчас в теме
(1) А нужен именно текст или просто видимые/невидимые строки?
4. adhocprog 1141 23.04.20 12:20 Сейчас в теме
(2) Именно текст. Строки я могу прочитать, которые отображены.
47. Rain_man 19.07.22 08:42 Сейчас в теме
(4)
Строки я могу прочитать, которые отображены.


Как?
49. adhocprog 1141 21.07.22 15:37 Сейчас в теме
(47) Как-то так:
Тч = Объект.ИмяВашейТабличнойЧасти;
ЭлементТаблица = Элементы.ИмяВашейТаблицы;

КолОтобранныхСтрок = 0;
Для Каждого СтрокаТч из Тч Цикл

	ФлагСтрокаОтображена = ЭлементТаблица.ПроверитьСтроку(СтрокаТч.ПолучитьИдентификатор());

	Если ФлагСтрокаОтображена Тогда
		КолОтобранныхСтрок = КолОтобранныхСтрок + 1;
	КонецЕсли;

КонецЦикла;
Показать
Jullis; aatm; Wrols; +3 Ответить
51. Rain_man 22.07.22 06:47 Сейчас в теме
(49)
ЭлементТаблица.ПроверитьСтроку(СтрокаТч.ПолучитьИдентификатор());


Ожидаемый ответ. Однако, до 8.3.17 (а даже у многих свежих конфигураций - режим совместимости ниже выставлен), если строка была удалена из ТЧ, это вызовет исключение.
52. Rain_man 22.07.22 08:11 Сейчас в теме
(51) Я, в итоге, сделал вместо ПроверитьСтроку, через функцию ДанныеСтроки - она не вызывает исключение в аналогичной ситуации, а просто возвращает неопределено.
adhocprog; +1 Ответить
53. adhocprog 1141 22.07.22 13:54 Сейчас в теме
(51) как строка удалена, если я перебираю строки из табличной части?
Как вариант, можно поставить Попытка/Исключение.
54. Rain_man 25.07.22 04:16 Сейчас в теме
(53)
(51) как строка удалена, если я перебираю строки из табличной части?
Как вариант, можно поставить Попытка/Исключение.

Да. Я по номерам перебирал. В варианте Для Каждого, должно быть всё ровно.
55. adhocprog 1141 25.07.22 20:41 Сейчас в теме
(54) >> Для Каждого, должно быть всё ровно.
В обычном приложении да, в управляемом нет.
Приведите программный код перебора )
48. Rain_man 19.07.22 09:03 Сейчас в теме
(2)
видимые/невидимые строки

А если "видимые/невидимые строки" ?
3. user856012 14 23.04.20 12:06 Сейчас в теме
(1)
программно узнать что именно искали по кнопке Найти (Ctrl+F)
А программно обратиться к результатам такого интерактивного поиска можно? Если можно, то копать где-то рядом.

А если нельзя, то и параметры поиска тоже недоступны - ИМХО, это функция платформы и программно нигде не фиксируется.
20. starik-2005 3060 23.04.20 17:57 Сейчас в теме
(1)
Как программно узнать что именно искали по кнопке Найти (Ctrl+F)?
Какое поле, какая строка поиска?
Примитивно:
Если НЕ Элементы.Таблица.ОтборСтрок = Неопределено Тогда
  Для Каждого Ст ИЗ Элементы.Таблица.ОтборСтрок Цикл
    Сообщить( СтрШаблон( "Колонка: %1, значение: %2", Ст.Ключ, Ст.Знгачение ) );
  КонецЦикла;
КонецЕсли;
21. starik-2005 3060 23.04.20 18:09 Сейчас в теме
Не, так, оказывается, не работает )))
5. Ditron 186 23.04.20 15:15 Сейчас в теме +1 $m
Хе, интересный вопрос, оказывается можно!
раз: https://its.1c.ru/db/v8317doc#bookmark:dev:TI000001239
два: (из помощника):
ИсторияПоискаТаблицы (TableSearchHistory)
Описание:
Содержит настройки, в которых хранится история поиска в таблице формы клиентского приложения.
Доступность:
Сервер, толстый клиент.
Сериализуется.
Использование в версии:
Доступен, начиная с версии 8.3.5.
user1619761; baracuda; SlavaKron; ixijixi; +4 Ответить
22. adhocprog 1141 23.04.20 21:04 Сейчас в теме
(5) Спасибо, конечно, за наводки )
Мне кажется, что История все-таки это история ) а не то, что ввели.
Если только последнее значение смотреть...
24. Ditron 186 23.04.20 21:06 Сейчас в теме
(22)почитайте ниже, я вам даже пример кода дал, это именно Истрия поиска а не ввода
25. adhocprog 1141 23.04.20 21:18 Сейчас в теме
(24) Я почитал внимательно )
здесь под словами "что ввели" я имею ввиду последний введенный поиск, который скрыл строки.
Я попробовал ваш код, у меня внешняя обработка и функция Загрузить возвращает Неопределено.
26. Ditron 186 23.04.20 21:24 Сейчас в теме
(25)я тоже тестировал внешней обработкой, и использовал список заказов после выполнения расширенного поиска, если у вас неопределено, вероятно для неверно определён объект настройки (первый параметр).
27. adhocprog 1141 23.04.20 21:51 Сейчас в теме
(26) >> и использовал список заказов после выполнения расширенного поиска
под словами "у меня внешняя обработка" я имею ввиду, что элемент таблица (табличная часть) находится в самой внешней обработке, а не в списке документов, входящих в конфигурацию.
хорошо, попробую сначала список заказов.
23. adhocprog 1141 23.04.20 21:06 Сейчас в теме
(5) В моем случае может даже и подойдет.
43. ixijixi 1833 25.04.20 18:03 Сейчас в теме
(5) спасибо, добрый человек, как долго я это искал!
44. Ditron 186 25.04.20 18:36 Сейчас в теме
6. Ditron 186 23.04.20 15:18 Сейчас в теме
это с "раз" если нет доступа к ИТС:
раздел "Системное хранилище"
Настройка: история поиска в таблице формы
● Ключ объекта ‑ Общее/ИсторияПоискаТаблицы/<Имя формы>.<Имя таблицы> (Common/TableSearchHistory/<Имя формы>.<Имя таблицы>).
Пример ключа объекта:
Общее/ИсторияПоискаТаблицы/Справочник.Товары.Форма.ФормаСписка.Список
● Ключ настройки ‑ пустая строка.
● Тип сохраняемого значения ‑ ИсторияПоискаТаблицы. Объект без свойств и методов.
7. davealone 166 23.04.20 16:39 Сейчас в теме
(6)
ИсторияПоискаТаблицы. Объект без свойств и методов

Ключевое видимо это )))
Дальше с ним ничего не сделаешь, разве что переписать другому пользователю
8. Ditron 186 23.04.20 16:40 Сейчас в теме
11. davealone 166 23.04.20 16:46 Сейчас в теме
(8)ага, пусто. Через получить список возвращает список значений с одним элементом, но там тоже пусто
12. Ditron 186 23.04.20 16:49 Сейчас в теме
(11)аж заинтриговало, ща попробуем
13. Ditron 186 23.04.20 17:13 Сейчас в теме
(11)получить список и будет пусто потому что ключ настройки "", а вот если вот так сделать:
ЗначениеВСтрокуВнутр(ХранилищеСистемныхНастроек.Загрузить("Общее/ИсторияПоискаТаблицы/Документ.ЗаказПокупателя.Форма.ФормаСписка.Список", ""));

получим:
{"#",a92a9892-86ab-48d1-91c6-754a3c40bfa5,
{0,2,
{"Контрагент",2,
{"#",b692a3bc-f9d8-4bec-836e-67bb38767199,123:94b15bb72b78a86947bdca8253e31a5d},"НКМЗ ПАТ"},
{"Организация",2,
{"#",a1af1af2-f26f-40c9-a516-a66ff64531ed,146:811900155d32d10611e983ad3eebb030},"СКС СТРОЙ"}
}
}
Показать

как то так
user1619761; adhocprog; davealone; +3 Ответить
14. Ditron 186 23.04.20 17:14 Сейчас в теме
15. davealone 166 23.04.20 17:21 Сейчас в теме
(13) Прикольно, я все думал, что они имели в виду под "сериализуется" - в XDTO/JSON не хотел конвертировать
16. Ditron 186 23.04.20 17:23 Сейчас в теме
(15)да, системный тип, видимо еще не придумали что туда добавить, причем данные сохраняются только расширенного поиска, полнотекствый по полю нифига
18. davealone 166 23.04.20 17:52 Сейчас в теме
(16) История поиска "Доступен, начиная с версии 8.3.5." долго не могут придумать )))
Есть еще "Общее/ПараметрыПоискаТаблиц" и "Общее/ИсторияГлобальногоПоиска" может там где-то и глобальный валяется
adhocprog; +1 Ответить
19. Ditron 186 23.04.20 17:53 Сейчас в теме
(18)та да, ну это для таких как мы, страждущих ))

(18)
Есть еще
тоже полезно
17. Ditron 186 23.04.20 17:24 Сейчас в теме
(15)один вариант разбирать эту строку, или попробовать конвертнуть в структуру сзаменой определенных ИД
28. adhocprog 1141 23.04.20 21:58 Сейчас в теме
(13) Странно, у меня все равно Неопределено возвращает.
УТ 11.4 типовая. Платформа: 8.3.15.1700.

&НаСервере
Процедура ПоказатьНаСервере()

	хОбъект = ХранилищеСистемныхНастроек.Загрузить("Общее/ИсторияПоискаТаблицы/Документ.ЗаказПокупателя.Форма.ФормаСписка.Список", "");
	
	Сообщить("хОбъект = ("+ТипЗнч(хОбъект)+") "+хОбъект, СтатусСообщения.Информация);
	
	Стр = ЗначениеВСтрокуВнутр(хОбъект);
	
	Сообщить(Стр);
	
КонецПроцедуры
Показать
29. Ditron 186 24.04.20 09:35 Сейчас в теме
(28)ха, так а имя формы то не то, ты же говоришь что табличное поле на форме внешней обработки? Там должно быть что-то типа «ВнешняяОбработка.ИмяОбработки.Форма.ИмяФормы.ИмяТабличногоПоля»
30. adhocprog 1141 24.04.20 12:01 Сейчас в теме
(29) :) Естественно, я сначала попробовал для своей обработки. Возвращает Неопределено. Думаю, мало ли, может для внешних обработок оно не регистрирует.
Поэтому взял таблицу, как у тебя в коде (у тебя же работает). Поискал в списке заказов расширенный поиском. Но у меня и для этой таблицы возвращает Неопределено.
31. Ditron 186 24.04.20 12:50 Сейчас в теме
32. Ditron 186 24.04.20 12:51 Сейчас в теме
33. adhocprog 1141 24.04.20 13:37 Сейчас в теме
(32) УТ 11.4 типовая. Платформа: 8.3.15.1700
34. Ditron 186 24.04.20 13:56 Сейчас в теме
(33)А имя формы списка и имя табличного поля (списка документов) в заказах покупателя в твоей конфигурации такое же как и у меня? то есть все совпадает?
35. adhocprog 1141 24.04.20 14:04 Сейчас в теме
(34) сорри
было:
"Общее/ИсторияПоискаТаблицы/Документ.ЗаказПокупателя.Форма.ФормаСписка.Список"
сделал:
"Общее/ИсторияПоискаТаблицы/Документ.ЗаказКлиента.Форма.ФормаСписка.Список"

перепроверил, снова Неопределено... :-/
40. Ditron 186 24.04.20 14:23 Сейчас в теме
(35)ты уверен что табличное поле на форме (элемент) называется "список" и в этом списке был выполнен хотя-бы один поиск
36. adhocprog 1141 24.04.20 14:04 Сейчас в теме
(34) какая у тебя конфигурация?
37. Ditron 186 24.04.20 14:07 Сейчас в теме
38. Ditron 186 24.04.20 14:08 Сейчас в теме
(36)могу вообще на самописке проверить, ща
39. Ditron 186 24.04.20 14:21 Сейчас в теме +1 $m
(36)(36) результат по самописке, сделал по справочнику ФизическиеЛица все четко
{"#",a92a9892-86ab-48d1-91c6-754a3c40bfa5,
{0,5,
{"ДатаРождения",2,
{"D",19940420000000},"20.04.1994 00:00:00"},
{"ДатаРождения",2,
{"D",19521112000000},"12.11.1952 00:00:00"},
{"Наименование",1,
{"S","гарбуз мар"},"гарбуз мар"},
{"ДатаРождения",2,
{"D",19950404000000},"04.04.1995 00:00:00"},
{"Наименование",1,
{"S","олександр арка"},"олександр арка"}
}
}

зато теперь понятны некоторые теги, если {"D",19521112000000} это первый параметр тип, второй значение типа, а в там где поле ссылка:
{"#",b692a3bc-f9d8-4bec-836e-67bb38767199,123:94b15bb72b78a86947bdca8253e31a5d} 1 параметр типа ссылка, второй идентификатор ссылки, третий идентификатор объекта метаданных, о как
41. Ditron 186 24.04.20 14:37 Сейчас в теме
(39)
{"#",b692a3bc-f9d8-4bec-836e-67bb38767199,123:94b15bb72b78a86947bdca8253e31a5d}
вот этот элемент вообще просто, если выполнить ЗначениИзСтрокиВнутр("{""#"",b692a3bc-f9d8-4bec-836e-67bb38767199,123:94b15bb72b78a86947bdca8253e31a5d}") получишь ссылку на конкретный объект базы который был в поиске по полю ссылочного типа )
50. unknown181538 158 21.07.22 16:13 Сейчас в теме
(33) А может там режим совместимости с версией, в которой этого не было?
9. Ditron 186 23.04.20 16:40 Сейчас в теме
(7)ну например это может быть коллекция
10. Ditron 186 23.04.20 16:41 Сейчас в теме
(7)надо пробовать, человек спросил, я ответил))
42. Ditron 186 24.04.20 15:03 Сейчас в теме
И еще один нюанс, он сохраняет только 5 последних, расположены в порядке убывания, то есть последний в начале, и сохранение только при закрытии всего приложения, а не формы в которой был поиск, то есть пока пользователь не закроет приложение ты не получишь свежих данных о его поиске (
user1619761; ixijixi; adhocprog; +3 Ответить
45. adhocprog 1141 19.05.20 16:12 Сейчас в теме
46. adhocprog 1141 19.05.20 16:13 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот