Имя: Пароль:
1C
 
Событие: изменение отбора - как отловить?
0 Stepa86
 
03.11.09
08:57
Хочу на форму выводить надпись "Включен отбор", чтобы пользователи понимали, что в списке не все данные, где то тут проскакивал способ подключения к событию изменения отбора, но не смог его найти... Может кто в курсе? или есть другой велосипед для этого?
1 mooo
 
03.11.09
09:07
Процедура ТабличноеПоле1ПриПолученииДанных(Элемент, ОформленияСтрок)
   
   ЕстьОтбор = Ложь;
   
   Для каждого ТекОтбор Из ТабличноеПоле1.Отбор Цикл
       ЕстьОтбор = ТекОтбор.Использование;
       Если ЕстьОтбор Тогда
           Прервать;
       КонецЕсли;
   КонецЦикла;
   
   Если ЕстьОтбор Тогда
       ЭлементыФормы.Надпись1.Заголовок = "Есть отбор";
   Иначе
       ЭлементыФормы.Надпись1.Заголовок = "Нет отбора";
   КонецЕсли;
   
КонецПроцедуры
2 Stepa86
 
03.11.09
09:10
хм... прикольно, я чот об этом обработчике и не подумал... Спасибо =) если не будет других вариантов, остановлюсь на этом
3 mooo
 
03.11.09
09:22
Хотя наверно обработчик формы ОбновлениеОтображения() лучше для этого подойдет. Код тот же.
4 Stepa86
 
03.11.09
09:23
(3) обновление отображения для формы - будет срабатывать часто не по делу, ПриПолученииДанных для ТП
5 Kaushly
 
03.11.09
09:24
6 mooo
 
03.11.09
09:25
ПриПолученииДанных не срабатывает в случае если по отбору получается пустой список.
7 Stepa86
 
03.11.09
09:26
(5) вооо, ее то я и искал...Спсб
8 mooo
 
03.11.09
09:36
Согласен так прикольней
9 Stepa86
 
03.11.09
09:40
хм... и как через ПодключитьОбработчикИзмененияДанных подключится к отбору ТЧ, а не списку?
10 mooo
 
03.11.09
09:42
Процедура ПриОткрытии()
   
   ПодключитьОбработчикИзмененияДанных("ДокументСписок.Отбор", "ОбработатьИзменениеОтбора", Истина);
   
КонецПроцедуры

Процедура ОбработатьИзменениеОтбора(Элемент)
   
   ЕстьОтбор = Ложь;
   
   Для каждого ТекОтбор Из ДокументСписок.Отбор Цикл
       ЕстьОтбор = ТекОтбор.Использование;
       Если ЕстьОтбор Тогда
           Прервать;
       КонецЕсли;
   КонецЦикла;
   
   Если ЕстьОтбор Тогда
       ЭлементыФормы.Надпись1.Заголовок = "Есть отбор";
   Иначе
       ЭлементыФормы.Надпись1.Заголовок = "Нет отбора";
   КонецЕсли;
   
КонецПроцедуры
11 Stepa86
 
03.11.09
09:44
(10) у меня ТЧ на форме документа, а не документ список, 1Ска падает со словами "неверный путь к данным"
12 mooo
 
03.11.09
09:46
Попробуй ЭлементыФормы.Товары.Отбор
13 Stepa86
 
03.11.09
09:47
(12) монопенисуально
14 Mitriy
 
03.11.09
09:54
ЭлементыФормы.Товары.ОтборСтрок
15 Stepa86
 
03.11.09
09:56
(14) ну собсно см. (13)
16 Mitriy
 
03.11.09
10:04
(15) значит, на элементы формы не распространяется, только на реквизиты объекта...
17 Stepa86
 
03.11.09
10:06
Форма (Form)
ПодключитьОбработчикИзмененияДанных (AttachDataChangeHandler)
Синтаксис:
ПодключитьОбработчикИзмененияДанных(<Имя данных>, <Имя процедуры>, <Отслеживать подчиненные данные>)
Параметры:
<Имя данных> (обязательный)
Тип: Строка. Имя данных (путь к данным), изменения которых необходимо отслеживать. Могут быть указаны данные, связанные с реквизитами формы, табличными частями, а также подчиненные данные - реквизиты этих объектов. Например, "Реквизит1.Наименование".
Параметр может содержать только один путь к данным, т.е. метод применяется для одного реквизита.
<Имя процедуры> (обязательный)
Тип: Строка. Имя процедуры, подключаемой в качестве обработчика изменения данных. Процедура должна иметь один параметр, в который при вызове процедуры будет передана строка - путь к измененным данным, по структуре аналогичная параметру <Имя данных>.
<Отслеживать подчиненные данные> (необязательный)
Тип: Булево. Определяет необходимость вызова процедуры-обработчика при изменении данных, подчиненных заданным в параметре <Имя данных>, Например, при изменении их реквизитов.
Значение по умолчанию: Ложь
Описание:
Подключает процедуру-обработчик, вызываемую при изменении указанных данных в форме или подчиненных формах.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Пример:
ПодключитьОбработчикИзмененияДанных("ПолеВвода1", "ПриИзменении");
См. также:
Форма, метод ОтключитьОбработчикИзмененияДанных


или в справке фигня написана, или мы просто не умеем его готовить
18 Mitriy
 
03.11.09
10:11
(17) "Могут быть указаны данные, связанные с реквизитами формы, табличными частями, а также подчиненные данные - реквизиты этих объектов."
19 Mitriy
 
03.11.09
10:12
(18)+ про элементы формы ни слова...
20 Stepa86
 
03.11.09
10:14
(19) сделал реквизит формы с типом отбор, ему присвоил данные и попробовал подключится... собсно опять (13)
21 Stepa86
 
03.11.09
10:17
в общем фокус не удался... время на эксперименты закончилось - придется отказаться от этой фичи...
22 Jolly Roger
 
03.11.09
10:33
(21) а чо, у табличной части документа есть отбор?
23 acsent
 
03.11.09
10:39
У табличной части есть "ОтборСтрок", у обычной ТЗ ничего нет
24 Stepa86
 
03.11.09
10:41
(22) аха
25 Mitriy
 
03.11.09
10:45
(23) у табличной части нету... есть расширение у элемента формы...
26 TormozIT
 
гуру
03.11.09
13:21
Мы это сделали в событии ОбновлениеОтображения.
27 Stepa86
 
03.11.09
15:14
а есть смысл выводить пользователю вместо факта наличия отбора - параметры отбора?