7.7 ПриОткрытии() вызов метода ПОСЛЕ отображения формы

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем dasp, 1 фев 2009.

  1. TopicStarter Overlay
    dasp
    Offline

    dasp

    Регистрация:
    1 фев 2009
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Господа разработчики, есть идеи как выполнить функцию/процедуру после отображения формы.

    Что пробовал:
    1. ПриОткрытии() - операция выполняется ДО открытия формы
    2. Повесил текстовый контрол на форму который вызывает функцию, но он тоже, сволочь, отрабатывает ДО показа формы.
    3. пробовал открывать форму модально и неМодально.

    Задача сводится к тому, что в форму подаются параметры и форма выполняет алгоритм при открытии но с отображенным прогресс баром.

    Есть идеи как вызвать после открытия формы код не использую пользователя?
  2. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Как вариант можно использовать обработчик ожидания. Например так:
    Код:
    Перем ФормаТолькоЧтоОткрыта;
    
    Процедура ПриОткрытии()
    //Установим флаг открытия формы для выполнения определенных действий
    ФормаТолькоЧтоОткрыта = 1;
    КонецПроцедуры
    
    Процедура Действия()
    Если ФормаТолькоЧтоОткрыта = 1 Тогда
    //Выполняем действия, которые нам нужны
    
    ФормаТолькоЧтоОткрыта = 0;
    КонецЕсли;
    КонецПроцедуры
    
    Форма.ОбработкаОжидания("Действия", 1);
    
    
    Замечу, что обработчик ожидания практически не грузит собой процессор, так что опросы с интервалом в секунду (как в примере) не должны замедлить работу приложения
  3. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    А чтобы вообще не грузил, то его в процедуре Действия можно отключить сосвсем:
    Код:
    Процедура Действия()
    Если ФормаТолькоЧтоОткрыта = 1 Тогда
    //Выполняем действия, которые нам нужны
    ФормаТолькоЧтоОткрыта = 0;
    //Отключаем обработку ожидания
    Форма.ОбработкаОжидания("");
    КонецЕсли;
    КонецПроцедуры
    
    
    
    
  4. TopicStarter Overlay
    dasp
    Offline

    dasp

    Регистрация:
    1 фев 2009
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Все верно, так можно. Но у меня маленькая проблема - я из внешнегоОтчета1 открываю модально внешнийОтчет2 и вот в нём-то и нужно это сделать. Но при модальном открытии не отрабатывает Форма.ОбработкаОжидания(..); :(
    Подсказали использовать FormEx.
  5. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Не советую использовать ВК... только если крайний случай.
    Зато при модальном открытии из вызывающей формы можно управлять открытым окном.
    Есть в просторах интернета обработки 1С, называются "прогрессбары". можно поискать, посмотреть как они работают.

Поделиться этой страницей