|   |   | 
| 
 | Посмотреть, какие события вызываются при работе | ☑ | ||
|---|---|---|---|---|
| 0
    
        Dmitriy_ Kolesnikov 21.11.12✎ 14:32 | 
        Добрый день! Существует ли возможность в реальном времени посмотреть, какие события и каких объектов вызываются при действиях пользователя? Типа монитора событий.
  Задача такая. В форме элемента справочника Контрагенты есть табличное поле БанковскиеСчета. Я хочу перехватить момент окончания добавления нового счета из этой формы (и сделать с ним кое-что), но не могу понять, какое событие происходит при окончании добавления нового элемента. | |||
| 1
    
        Maxus43 21.11.12✎ 14:36 | 
        замер производительности     | |||
| 2
    
        Maxus43 21.11.12✎ 14:37 | 
        + если надо знать на какие кнопки нажал юзер - логирование     | |||
| 3
    
        Лефмихалыч 21.11.12✎ 14:38 | 
        +(2) ключ запуска предприятия /logui     | |||
| 4
    
        Maxus43 21.11.12✎ 14:38 | 
        но всё это не в реальном времени. в реальном времени - отладчик     | |||
| 5
    
        Dmitriy_ Kolesnikov 21.11.12✎ 14:50 | 
        Отладчик показывает, что кроме события ПередЗаписью справочника Банковские счета, ничего больше не вызывается :(
  Обидно, придется сочинять свою кнопку "Добавить новый счёт" | |||
| 6
    
        Maxus43 21.11.12✎ 14:59 | 
        (5) клиент-сервер? отладчик может соврать в этом случае     | |||
| 7
    
        Maxus43 21.11.12✎ 14:59 | 
        замер производительности на файловой - точно покажет ВСЁ     | |||
| 8
    
        Dmitriy_ Kolesnikov 21.11.12✎ 15:18 | 
        SQL     | |||
| 9
    
        Maxus43 21.11.12✎ 15:20 | 
        (8) тогда ключ debug и замер производительности, а лучше на файловой разверни     | |||
| 10
    
        Maxus43 21.11.12✎ 15:22 | 
        з.ы. а может ничего больше и не вызывается, кроме ПередЗаписью?     | |||
| 11
    
        Dmitriy_ Kolesnikov 21.11.12✎ 15:38 | 
        (9) на файловой её не развернешь, база огромная.
  Ды я уже свою кнопку делаю. (10) вероятно, вы правы. Просто удивительно, что в форме списка добавляется новая строка (в результате создания нового элемента справочника), она выводится, становится текущей, а никаких событий это не вызывает. | |||
| 12
    
        Maxus43 21.11.12✎ 15:41 | 
        (11) что что?
  >>Просто удивительно, что в форме списка добавляется новая строка (в результате создания нового элемента справочника), она выводится, становится текущей, а никаких событий это не вызывает. это платформенное, поведение списка справочника. Что вы хотите там изменить то? | |||
| 13
    
        motkot 21.11.12✎ 15:49 | 
        (0) а какая версия платформы и формы какие?     | |||
| 14
    
        Dmitriy_ Kolesnikov 21.11.12✎ 15:52 | 
        (11) ОсновнойБанковскийСчет = НовыйСчет;
  (0) 8.1 | |||
| 15
    
        motkot 21.11.12✎ 15:59 | 
        (14) я вот честно говоря не помню, когда появилось "ОповеститьОЗаписиНовогоОбъекта", но может в эту сторону посмотреть?     | |||
| 16
    
        НЕА123 21.11.12✎ 16:01 | 
        (14)
  ПриИзменении ? вопрос теперь в том что НовыйСчет это действительно Новый? | |||
| 17
    
        НЕА123 21.11.12✎ 16:03 | 
        (15)
  в 81 было уже, по-крайней мере оповестить() точно. | |||
| 18
    
        vmv 21.11.12✎ 16:04 | 
        (0) в последней бетта-версии платфомы 8.2     | |||
| 19
    
        Dmitriy_ Kolesnikov 21.11.12✎ 16:05 | 
        Чота не соображу, как правильно получить ссылку на созданный счет. Вот что происходит при нажатии кнопки СоздатьНовыйСчетПоУмолчанию:
  ФормаЭлемента = Справочники.БанковскиеСчета.ПолучитьФормуНовогоЭлемента(, ЭтотОбъект.Ссылка); ФормаЭлемента.Владелец = ЭтотОбъект.Ссылка; БанковскийСчет = ФормаЭлемента.ОткрытьМодально(); ОсновнойБанковскийСчет = БанковскийСчет; Получаем: БанковскийСчет = Неопределено. Как же мне узнать, какой счет создал пользователь? | |||
| 20
    
        motkot 21.11.12✎ 16:06 | 
        (19) посмотреть в (14) и (17) можно?     | |||
| 21
    
        motkot 21.11.12✎ 16:07 | 
        * в (15)     | |||
| 22
    
        vmv 21.11.12✎ 16:09 | 
        +(0) в вашей постановке задачи надо переопределять обработчики модификации списка и открывать формы элементов(записей) модально, тогда можно будет "Я хочу перехватить момент окончания добавления нового счета из этой формы (и сделать с ним кое-что)"
  для РС, например, аналогично сделать для списка справочника пустяк, мне лень искать в своих &НаКлиенте Процедура ДсУчетПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) Отказ = Истина; ВызываемаяФормаИмя = "РегистрСведений.Add_IR_УчетСБ.Форма.ФормаЗаписи"; ВызываемаяФормаПараметры = Новый Структура; Если Копирование И Элемент.ТекущиеДанные <> Неопределено Тогда ВызываемаяФормаПараметры.Вставить("ЗначениеКопирования", Элемент.ТекущаяСтрока); Иначе СтрокаБ = Элементы.Список.ТекущаяСтрока; Если НЕ ЗначениеЗаполнено(СтрокаБ) Тогда Предупреждение("Не выбрана текущая статья Баланса", 10); Возврат; КонецЕсли; СтруктураЗначенияЗаполнения = Новый Структура; // Измерения СтруктураЗначенияЗаполнения.Вставить("СтрокаБ", СтрокаБ); // Ресурсы СтруктураЗначенияЗаполнения.Вставить("Действует", Истина); ВызываемаяФормаПараметры.Вставить("ЗначенияЗаполнения", СтруктураЗначенияЗаполнения); КонецЕсли; ВызываемаяФорма = ПолучитьФорму(ВызываемаяФормаИмя, ВызываемаяФормаПараметры, ЭтаФорма); ВызываемаяФорма.ОткрытьМодально(); // Обработчики после закрытия модальной формы ОбновитьТзРасчета(); КонецПроцедуры &НаКлиенте Процедура ДсУчетПередНачаломИзменения(Элемент, Отказ) Отказ = Истина; ВызываемаяФормаИмя = "РегистрСведений.Add_IR_УчетСБ.Форма.ФормаЗаписи"; ВызываемаяФормаПараметры = Новый Структура; Если Элемент.ТекущиеДанные <> Неопределено Тогда ВызываемаяФормаПараметры.Вставить("Ключ", Элемент.ТекущаяСтрока); ВызываемаяФорма = ПолучитьФорму(ВызываемаяФормаИмя, ВызываемаяФормаПараметры, ЭтаФорма); ВызываемаяФорма.ОткрытьМодально(); // Обработчики после закрытия модальной формы ОбновитьТзРасчета(); Иначе Предупреждение("Не выбрана текущая строка списка", 10); Возврат; КонецЕсли; КонецПроцедуры | |||
| 23
    
        Dmitriy_ Kolesnikov 21.11.12✎ 16:12 | 
        (21) да, есть такое в 8.1, уже разбираюсь     | |||
| 24
    
        vmv 21.11.12✎ 16:15 | 
        Оповещения тоже можно, но там легко проколоться с иденификатором события - я предпочитаю переопределять обработчики модификации списков     | |||
| 25
    
        Dmitriy_ Kolesnikov 21.11.12✎ 16:16 | 
        (22) да, событие ПередНачаломДобавления вызывается. Но как из него получить ссылку на вновь созданный объект, я не знаю (см. мой код - его можно было бы вставить в это событие)     | |||
| 26
    
        motkot 21.11.12✎ 16:17 | 
        (25) самое простое - понять оповещения между формами     | |||
| 27
    
        vmv 21.11.12✎ 16:24 | 
        (25) в (19) у тебя практичитески готовый код с полученной ссылкой для этого обработчика     | |||
| 28
    
        vmv 21.11.12✎ 16:27 | 
        Получаем: БанковскийСчет = Неопределено.
  там так потому-что модальные формы возвращают значащее значение если они в режиме выбора, но ведь можно получить ссылку прямо из переменной формы в случае не включения режима выбора, хотя модальная форма и закрылать но конца метода где ее вызвали она содержит в себе все данные | |||
| 29
    
        vmv 21.11.12✎ 16:31 | 
        на 8.1 проверить ссылку "зашитую" в форму можно через ФормаЭлемента.Ссылка.Пустая() или ФормаЭлемента.Ссылка.ПолучитьОбъект()     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |