Имя: Пароль:
1C
1С v8
Вопрос по Таблице значений на Управляемой форме 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) Тогда только кастом