| 
    
            
         
         | 
    
  | 
Активизация строки в табличной части УФ | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        bUbA    
     18.05.17 
            ✎
    09:31 
 | 
         
        На форме есть 2 табличных части, и если в какой-то из них, или в обеих сразу, остается по одной строке, то процедура ПриАктивизацииСтроки не срабатывает. Подскажите, как победить эту проблему? 1С 8.3.9, Документооборот 2.1, УФ     
         | 
|||
| 
    1
    
        1Снеговик    
     гуру 
    18.05.17 
            ✎
    09:39 
 | 
         
        Из другого события проверяй количество строк и вызывай процедуру как при активизации     
         | 
|||
| 
    2
    
        bUbA    
     18.05.17 
            ✎
    09:44 
 | 
         
        (1) Не совсем понимаю из какого другого события и в какой момент это делать... можно пояснить?     
         | 
|||
| 
    3
    
        Ц_У    
     18.05.17 
            ✎
    09:45 
 | 
         
        (0) как узнал, что не работают     
         | 
|||
| 
    4
    
        bUbA    
     18.05.17 
            ✎
    09:52 
 | 
         
        (3) При одиночном клике на табличную часть, в данном случае, я не попадаю в процедуру активизации строки, т.к. там всего одна строка и она уже выделена цветом как активная. Как вариант, использовать обработчик ожидания, но может есть более красивый способ?     
         | 
|||
| 
    5
    
        cw014    
     18.05.17 
            ✎
    09:54 
 | 
         
        Возьми "ПриАктивизацииЯчейки" - может поможет     
         | 
|||
| 
    6
    
        Ц_У    
     18.05.17 
            ✎
    09:58 
 | 
         
        (4) активизировать по умолчанию галка стоит?     
         | 
|||
| 
    7
    
        bUbA    
     18.05.17 
            ✎
    10:06 
 | 
         
        (6) да, на одной из двух ТЧ, с которыми и работаю     
         | 
|||
| 
    8
    
        Ц_У    
     18.05.17 
            ✎
    10:07 
 | 
         
        (7) сними и проверь еще раз     
         | 
|||
| 
    9
    
        bUbA    
     18.05.17 
            ✎
    10:10 
 | 
         
        (8) не помогло     
         | 
|||
| 
    10
    
        bUbA    
     18.05.17 
            ✎
    10:11 
 | 
         
        (5) попробовал и ПриАктивизацииЯчейки, и ПриАктивизацииПоля, эти процедуры отрабатывают, но почему то они срабатывают и в тот момент, когда я активизируюсь на строке другой таблицы     
         | 
|||
| 
    11
    
        bUbA    
     18.05.17 
            ✎
    10:12 
 | 
         
        хотя тут уже можно сравнивать текущий элемент формы с элементом из параметров процедуры     
         | 
|||
| 
    12
    
        Ц_У    
     18.05.17 
            ✎
    10:12 
 | 
         
        (10) одна процедура на обе ТЧ?     
         | 
|||
| 
    13
    
        Остап Сулейманович    
     18.05.17 
            ✎
    10:14 
 | 
         
        (4) "я не попадаю в процедуру активизации строки, т.к. там всего одна строка и она уже выделена цветом как активная."
 
        Так она уже когда-то активировалась. И процедура выполнилась (ну или должна была выполниться). Вам чего точно нужно?  | 
|||
| 
    14
    
        bUbA    
     18.05.17 
            ✎
    10:21 
 | 
         
        (12) на форме есть 2 ТЧ - ЗадачиМне и ЗадачиМнеПринятые, когда я добавляю процедуру ЗадачиМнеПринятыеПриАктивизацииПоля() или ЗадачиМнеПринятыеПриАктивизацииЯчейки(), то я в них почему то попадаю при активизации из двух табличных частей, поэтому и надо добавить проверку на текущий элемент формы     
         | 
|||
| 
    15
    
        bUbA    
     18.05.17 
            ✎
    10:23 
 | 
         
        (13) в зависимости от выбранной строки выводятся данные по текущей задаче на отдельный элемент формы, а если строка в ТЧ одна, то данные по этой задаче не выводятся, т.к. она уже считается активной. Для адекватной работы тут требуется минимум 2 строки     
         | 
|||
| 
    16
    
        bUbA    
     18.05.17 
            ✎
    10:38 
 | 
         
        А может есть какой-нибудь метод, который отлавливает нажатие кнопки мышки?     
         | 
|||
| 
    17
    
        Ёпрст    
     гуру 
    18.05.17 
            ✎
    11:05 
 | 
         
        (0) Ну, тип того слепи, что ле..
 
        Лень поверять, ч там не активизируется у тебя. Перем Вася_ТекущаяСтрока; &НаКлиенте Процедура Подключаемый_ТоварыПриАктивизацииСтроки() Если Элементы.Товары.ТекущиеДанные=Неопределено Тогда Возврат; КонецЕсли; //тут сравнивай с перменной Если Элементы.Товары.ТекущиеДанные<>Вася_ТекущаяСтрока Тогда //тут твори, че те надо, строка поменялась Вася_ТекущаяСтрока = Элементы.Товары.ТекущиеДанные; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ТоварыПриАктивизацииСтроки(Элемент) ПодключитьОбработчикОжидания("Подключаемый_ТоварыПриАктивизацииСтроки", 0.1, Истина); КонецПроцедуры  | 
|||
| 
    18
    
        bUbA    
     18.05.17 
            ✎
    11:27 
 | 
         
        (17) не прокактит, т.к. я уже не попадаю в процедуру ТоварыПриАктивизацииСтроки     
         | 
|||
| 
    19
    
        h-sp    
     18.05.17 
            ✎
    11:41 
 | 
         
        (18) а эта процедура  ТоварыПриАктивизацииСтроки точно подцеплена к событию  ПриАктивизацииСтроки  ??     
         | 
|||
| 
    20
    
        Ёпрст    
     гуру 
    18.05.17 
            ✎
    11:46 
 | 
         
        (180 У тебя всегда 1 строка ?     
         | 
|||
| 
    21
    
        Ёпрст    
     гуру 
    18.05.17 
            ✎
    11:48 
 | 
         
        ну и событие сработает, даже при открытии с одной строкой     
         | 
|||
| 
    22
    
        bUbA    
     18.05.17 
            ✎
    12:08 
 | 
         
        (19) Точно
 
        (20) не всегда, но когда остается 1 строка, начинаются такие вот проблемы. Тут форма с таблицами открывается всего 1 раз при запуске 1ски и закрывается вместе с ней, процедуру при открытии не получится задействовать  | 
|||
| 
    23
    
        Ёпрст    
     гуру 
    18.05.17 
            ✎
    12:15 
 | 
         
        (22) У тебя всегда она хотя бы один раз, да выполнится. Либо при первом открытии формы, либо руками, когда в ТЧ тыкнешь.
 
        Этого достаточно, чтоб обработка ожидания сработала. Усё.  | 
|||
| 
    24
    
        Ёпрст    
     гуру 
    18.05.17 
            ✎
    12:15 
 | 
         
        Ты код то воткни, проверить 2 минуты, млин     
         | 
|||
| 
    25
    
        bUbA    
     18.05.17 
            ✎
    12:23 
 | 
         
        Код я воткнул, проверил
 
        Есть 2 таблицы. Допустим в первой таблице 2 строки, во второй 1 строка. Если пользователь выбрал сначала строку из 1й ТЧ, ему вывелась полная информация по задаче на дополнительный элемент формы, потом он захотел посмотреть данные по задаче из 2й ТЧ, но они уже не выведутся, т.к. строка там всегда считается активной. Более того, если он обратно захочет просмотреть первую задачу из 1й ТЧ, то ему надо будет активизировать сначала вторую строку, потом первую. Не знаю получилось ли более-менее понятно разъяснить задачу  | 
|||
| 
    26
    
        Ёпрст    
     гуру 
    18.05.17 
            ✎
    12:27 
 | 
         
        (25) Для каждой ТЧ подключил обработку ожидания ?     
         | 
|||
| 
    27
    
        Ёпрст    
     гуру 
    18.05.17 
            ✎
    12:27 
 | 
         
        или только для одной ?     
         | 
|||
| 
    28
    
        Ёпрст    
     гуру 
    18.05.17 
            ✎
    12:28 
 | 
         
        + в обработке ожидания можно смотреть еще, на активный элемент формы.     
         | 
|||
| 
    29
    
        bUbA    
     18.05.17 
            ✎
    12:50 
 | 
         
        Для того, чтобы обработчик ожидания сработал, надо для начала попасть в процедуру ПриАктивизацииСтроки, а этого не происходит...     
         | 
|||
| 
    30
    
        bUbA    
     18.05.17 
            ✎
    12:50 
 | 
         
        т.к. строка однажды уже была активизирована и висит как активная     
         | 
|||
| 
    31
    
        Ёпрст    
     гуру 
    18.05.17 
            ✎
    13:02 
 | 
         
        (29) Она всегда сработает, при открытии     
         | 
|||
| 
    32
    
        Ёпрст    
     гуру 
    18.05.17 
            ✎
    13:03 
 | 
         
        твой обработчик и запустится. Чего еще тебе надобно ?     
         | 
|||
| 
    33
    
        Ёпрст    
     гуру 
    18.05.17 
            ✎
    13:04 
 | 
         
        При желании, можешь еще в ОбработкаОповещения пинать, что нужно     
         | 
|||
| 
    34
    
        ejikbeznojek    
     18.05.17 
            ✎
    13:19 
 | 
         
        Может если строки удаляются программно, можно дописать что если строка 1, то отменить выделение?     
         | 
|||
| 
    35
    
        bUbA    
     18.05.17 
            ✎
    14:38 
 | 
         
        (34) нет, там перезаполнение по запросу идет.
 
        Сделал через процедуру ПриАктивизацииЯчейки перенаправление на процедуру ПриАктивизацииСтроки  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |