Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Вопрос по Таблице значений на Управляемой форме 1С 8.3

Вопрос по Таблице значений на Управляемой форме 1С 8.3
Я
   ivamailh
 
09.04.19 - 10:04
Добрый день, коллеги.
Просветите, пожалуйста, по такому вопросу, если кто знает:

Есть таблица значений (таблица формы) на управляемой форме (внешняя обработка).
В этой таблице есть возможность при помощи стандартной команды "Найти" отобрать строки по какому то условию.
Каким образом можно вывести в подвал по определенной колонке сумму только по видимым строкам? Я нашел бы как решить вопрос, но никак не могу сообразить, каким обработчиком можно обработать (перехватить) событие этого самого стандартного "Найти". Вот, например, сортировка перехватывается обработчиком "ПриИзменении", а поиск никак не могу перехватить...

Заранее спасибо.
 
 
   Ns33
 
1 - 09.04.19 - 11:43
Видимые, насколько  знаю, ты никак не получишь. Я что-то подобное делал, но по выделенным.

&НаСервере
Процедура Команда1НаСервере()
Для  каждого Элемент  Из  элементы.Список.ПодчиненныеЭлементы Цикл
            ПутьКДанным=Элемент.ПутьКДанным;
            ИмяРеквизита=Сред(ПутьКДанным,8)//Из "Список.Дата" получаем "Дата"

        
            
            Если ИмяРеквизита="Дата"  или ИмяРеквизита="Номер" Тогда
                Продолжить;
            КонецЕсли;  
            ИмяДок=Сред(ЭтаФорма.Список.ОсновнаяТаблица,10)//тут напр "РеализацияТоваровУслуг"

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

(20) итоги в таблице по отборам и (или) выделенным - это давняя тема. На текущий момент спасает только обработчик ожидания. Но ответ напиши, интересно что ответят.
   Garykom
 
22 - 17.04.19 - 11:18
Свою кнопку вместо стандартной команды "Найти" можно навесить?
   ivamailh
 
23 - 17.04.19 - 14:15
С обработчиком ожидания и с ПроверитьСтроку() всё получилось хорошо, не глючит теперь, считает, правда, с небольшой задержкой, но это ладно. Меня теперь эта тема интересует в большей степени по вопросу очистки условий поиска (отбора). Таблица значений, где производится поиск, находится на странице формы (назовём страницей 2), при возврате к другой странице (к странице 1) страница 2 (где таблица значений и поиск) закрывается. При выборе какого то значения на странице 1, страница 2 опять открывается, заново пересчитывается/выводится таблица значений, а предыдущее условие поиска то остаётся... Если снова нажать Ctrl-F и Отменить поиск, то всё работает нормально, ну или  если перед закрытием Страницы 2 Отменить поиск, то, соответственно, всё работает, а вот если забыть. Вот как это условие поиска очистить? Уже и в Условном оформлении всё прочесал, и во всех Хранилищах был. Безрезультатно, не нашёл. Остаётся только полностью форму открыть/закрыть. Но это же неправильно.
   Cyberhawk
 
24 - 17.04.19 - 14:17
Поиск - он для пользователя, а не разработчика
   ivamailh
 
25 - 18.04.19 - 10:19
(24) Да, но задача разработчика сделать его удобным.
   Сияющий в темноте
 
26 - 18.04.19 - 15:54
я делал через две таблицы-одна с данными,но пользователю не видна,а вторая на морде,при отборе,чтобы там пользователь в отбор не напихал,шуруем на сервер и запросом строим в видимую на основе невидимой и показываем.
   Cyberhawk
 
27 - 18.04.19 - 18:48
(25) Тогда только кастом


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.