|
Вопрос по Таблице значений на Управляемой форме 1С 8.3 | ☑ | ||
---|---|---|---|---|
0
ivamailh
09.04.19
✎
10:04
|
Добрый день, коллеги.
Просветите, пожалуйста, по такому вопросу, если кто знает: Есть таблица значений (таблица формы) на управляемой форме (внешняя обработка). В этой таблице есть возможность при помощи стандартной команды "Найти" отобрать строки по какому то условию. Каким образом можно вывести в подвал по определенной колонке сумму только по видимым строкам? Я нашел бы как решить вопрос, но никак не могу сообразить, каким обработчиком можно обработать (перехватить) событие этого самого стандартного "Найти". Вот, например, сортировка перехватывается обработчиком "ПриИзменении", а поиск никак не могу перехватить... Заранее спасибо. |
|||
1
Ns33
09.04.19
✎
11:43
|
Видимые, насколько знаю, ты никак не получишь. Я что-то подобное делал, но по выделенным.
&НаСервере Процедура Команда1НаСервере() Для каждого Элемент Из элементы.Список.ПодчиненныеЭлементы Цикл ПутьКДанным=Элемент.ПутьКДанным; ИмяРеквизита=Сред(ПутьКДанным,8);//Из "Список.Дата" получаем "Дата" Если ИмяРеквизита="Дата" или ИмяРеквизита="Номер" Тогда Продолжить; КонецЕсли; ИмяДок=Сред(ЭтаФорма.Список.ОсновнаяТаблица,10);//тут напр "РеализацияТоваровУслуг" ТипРекв=Строка(метаданные.документы[ИмяДок].Реквизиты[ИмяРеквизита].Тип); Если ТипРекв <>"Число" Тогда Продолжить; КонецЕсли; Сум=0; Для каждого Док Из элементы.Список.ВыделенныеСтроки Цикл Сум=Сум+Док[ИмяРеквизита]; КонецЦикла; Элемент.ТекстПодвала= ОбщегоНазначения.ФорматСумм(Сум); Элемент.ГоризонтальноеПоложениеВПодвале=ГоризонтальноеПоложениеЭлемента.Право; КонецЦикла; КонецПроцедуры |
|||
2
sqr4
09.04.19
✎
12:00
|
Пока кроме подключения обработчика ожидания с постоянным перерасчетом в голову ничего не приходит
|
|||
3
sqr4
09.04.19
✎
12:01
|
Вероятнее всего приАктивизации строки тоже сработает
|
|||
4
fisher
09.04.19
✎
12:10
|
Тоже подумал про события ПриАктивизации...
Если и они не срабатывают - тогда идей нет. |
|||
5
fisher
09.04.19
✎
12:12
|
(1) Можно через ПроверитьСтроку()
|
|||
6
sqr4
09.04.19
✎
12:26
|
УФ. Какое событие возникает при поиске в табличной части
год назад тоже не решили эту задачу |
|||
7
Ns33
09.04.19
✎
12:43
|
(5) ПроверитьСтроку() - это для определения соответствует ли отбору строка; в данном случает проще весь список в ТЗ выгрузить, и там подсчитать.
|
|||
8
ivamailh
09.04.19
✎
13:41
|
(3) (4) ПриАктивизации пробовал - не срабатывает
|
|||
9
ivamailh
09.04.19
✎
14:05
|
(2) Скорее всего, только так, или свой поиск вместо стандартного
|
|||
10
ivamailh
09.04.19
✎
15:42
|
А люди берутся сделать - http://1clancer.ru/offer/taskId=44405
Заказчик не я, просто наткнулся. Спросить бы у них - как они собираются это реализовать? С обработчиком ожидания сделал, но совершенно не комильфо, если открывать поиск через "Ещё", то заметно лагает, "Ещё" постоянно закрывается. После осуществления Поиска или Отмены Поиска видна задержка при пересчёте. |
|||
11
1Сергей
09.04.19
✎
17:15
|
А на ОФ это проще делалось, кажысь
|
|||
12
Вафель
09.04.19
✎
17:16
|
вроде доступа к "найти" нет совсем
|
|||
13
sqr4
09.04.19
✎
17:31
|
(10) убирать итоги из формы и вешать кнопку которая будет считать, так и пользователи не запутаются и от обработчика ожидания можно будет уйти
|
|||
14
sqr4
09.04.19
✎
17:34
|
ХОтя тоже не вариант
|
|||
15
ivamailh
09.04.19
✎
17:56
|
(13) С кнопкой понятно. Но это уж совсем крайний случай. Совсем не комильфо.
|
|||
16
Вафель
09.04.19
✎
17:57
|
(15) а как ты по кнопке найдешь все отборы "найти" ?
|
|||
17
Вафель
09.04.19
✎
17:57
|
Хотя если ctrl+A нажать, то можно
|
|||
18
sqr4
09.04.19
✎
17:58
|
(16) А там через проверитьСТроку
|
|||
19
fisher
11.04.19
✎
09:17
|
(7) ПроверитьСтроку() - единственный способ идентифицировать отобранные строки.
|
|||
20
ivamailh
17.04.19
✎
10:10
|
Написал в службу поддержки 1С. Попытались отфутболить - не согласился. Интересно, что-нибудь ответят по существу? Подождём.
|
|||
21
Новиков
17.04.19
✎
11:01
|
(17) Событие ПриАктивизацииСтроки() на Ctrl+A не срабатывает ни в таблице, ни в динамическом списке, и поэтому ВыделенныеСтроки все равно нужно будет проверять в обработчике ожидания.
(20) итоги в таблице по отборам и (или) выделенным - это давняя тема. На текущий момент спасает только обработчик ожидания. Но ответ напиши, интересно что ответят. |
|||
22
Garykom
гуру
17.04.19
✎
11:18
|
Свою кнопку вместо стандартной команды "Найти" можно навесить?
|
|||
23
ivamailh
17.04.19
✎
14:15
|
С обработчиком ожидания и с ПроверитьСтроку() всё получилось хорошо, не глючит теперь, считает, правда, с небольшой задержкой, но это ладно. Меня теперь эта тема интересует в большей степени по вопросу очистки условий поиска (отбора). Таблица значений, где производится поиск, находится на странице формы (назовём страницей 2), при возврате к другой странице (к странице 1) страница 2 (где таблица значений и поиск) закрывается. При выборе какого то значения на странице 1, страница 2 опять открывается, заново пересчитывается/выводится таблица значений, а предыдущее условие поиска то остаётся... Если снова нажать Ctrl-F и Отменить поиск, то всё работает нормально, ну или если перед закрытием Страницы 2 Отменить поиск, то, соответственно, всё работает, а вот если забыть. Вот как это условие поиска очистить? Уже и в Условном оформлении всё прочесал, и во всех Хранилищах был. Безрезультатно, не нашёл. Остаётся только полностью форму открыть/закрыть. Но это же неправильно.
|
|||
24
Cyberhawk
17.04.19
✎
14:17
|
Поиск - он для пользователя, а не разработчика
|
|||
25
ivamailh
18.04.19
✎
10:19
|
(24) Да, но задача разработчика сделать его удобным.
|
|||
26
Сияющий в темноте
18.04.19
✎
15:54
|
я делал через две таблицы-одна с данными,но пользователю не видна,а вторая на морде,при отборе,чтобы там пользователь в отбор не напихал,шуруем на сервер и запросом строим в видимую на основе невидимой и показываем.
|
|||
27
Cyberhawk
18.04.19
✎
18:48
|
(25) Тогда только кастом
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |