Версия для печати темы (https://pro1c.org.ua/index.php?s=b710d178860a828472b94ee546999961&showtopic=24936)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Система компоновки данных _ Как программно обновить форму отчета?

Автор: SV71 03.09.15, 7:18

Всем здравия!

Самописная конфигурация.
Версия 1С 8.2, режим "Управляемое приложение".

1. Есть отчет по остаткам на счетах. В нем создана отдельная форма для отображения на "Рабочем столе".

2. Есть платежи, при изменении "Списка" которых на "Форме списка" формируется оповещение:

//////////////////////////////////////////////////////////////////////////////////
//
// Назначение: Обновляет отчет "Состояние счетов" на рабочем столе
//
// Вызов: событие формы "Список.ПриИзменении"
//
&НаКлиенте
Процедура СписокПриИзменении(пЭлемент)
    
    // ======================================================
    // = Обновить отчет "Состояние счетов" на рабочем столе =
    // ======================================================
    
    // ====================================
    // - Оповестить об изменении "Список" -
    // ====================================
    Оповестить("СписокПлатежейИзменился");
    
    // =====================================================================================
    // - Дальнейшая обработка происходит в "Отчеты.Формы.фРабочийСтол.ОбработкаОповещения" -
    // =====================================================================================
    
КонецПроцедуры // СписокПриИзменении


3. В форме отчета на рабочем столе вставлен обработчик, который отлавливает событие:
//////////////////////////////////////////////////////////////
//
// Назначение: Обеспечивает автоматическое обновление отчета
//
// Вызов: по событиям оповещения в системе
//
&НаКлиенте
Процедура ОбработкаОповещения(пИмяСобытия, пПараметр, пИсточник)
    
    // ==========================================================================================
    // = Событие "СписокПлатежейИзменился" формируется в Платеж.ФормаСписка.Список.ПриИзменении =
    // ==========================================================================================
    
    
    // ===========================
    // = Проверить "пИмяСобытия" =
    // ===========================
    Если пИмяСобытия = "СписокПлатежейИзменился" Тогда
        // = Нужно обновить отчет
        // ======================
        
        а=1;
        //Отчет.
        //ЭтаФорма.Результат.Вывод;
        
    КонецЕсли; // пИмяСобытия = "СписокПлатежейИзменился"
    
КонецПроцедуры


Не могу сообразить, как обновить отчет в строке, где пока написано "а=1".

Помогите пожалуйста.

Автор: Petre 03.09.15, 8:05

Обновить отчет это по сути сформировать его заново. Т. е.:

ЭтотОбъект.СкомпоноватьРезультат();

Автор: Vofka 03.09.15, 8:39

СкомпоноватьРезультат();


Petre, в управляемой форме надо без ЭтотОбъект, т.к. это метод формы.

Автор: Petre 03.09.15, 8:49

Да. Собственно, "ЭтотОбъект" и есть управляемая форма, так что в контексте самой управляемой формы можно обойтись без него.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua