Имя: Пароль:
1C
1С v8
Вызвать процедуру формы после оповещения в общем модуле
0 spiller26
 
16.02.18
11:50
Переделка. БП 3.0
На форме документа "РеализацияТоваровУслуг" Поле надписи (гиперсылка) по нажатию которой вызывается общая форма, в которой можно установить общий счет учета для товаров, т.е. переопределить в товарах.
Открытие и обработка оповещения при закрытии общей формы происходит в общем модуле.
Всё нормально возвращается и изменяется, но на форме в Товарах, находиться дополнительная колонка "АналитикаУчета" (строка), для отображения, формируется эта строка процедурой на форме ЗаполнитьДобавленныеКолонкиТаблиц();

Форма (нажатие на гиперсылку) > ОбщМодуль (вызов формы) > ОбщФорма закрытие (изм. и возврат структуры) > ОбщМодуль обработка оповещения (изм. в Форме из полученных данных из ОбщФормы) > ? (как запустить на Форме процедуру)
1 drcrasher
 
16.02.18
11:52
эм... обработкаОповещения() у формы уже не работает?
2 Cyberhawk
 
16.02.18
11:53
Наверное форму менять не хочет
3 spiller26
 
16.02.18
11:58
(2) Да, не хочу, тем более вызывается из 4 разных форм.
Две документами "ПоступлениеТоваровУслуг" и две "РеализацияТоваровУслуг"
4 spiller26
 
16.02.18
12:05
Всё нашел, она оказалась экспортной.
Процедура ЗаполнитьДобавленныеКолонкиТаблиц(ИмяТаблицы = "") Экспорт

Вот примерный код. не хватает проверки форм вызова, для этой процедуры

Процедура атНастройкаУчетаФЗНажатие(Форма, Элемент, СтандартнаяОбработка) Экспорт

    СтандартнаяОбработка = Ложь;
    атОбработатьИзмененияПоКнопкеНастройкаУчетаФЗ(Форма);

КонецПроцедуры

Процедура атОбработатьИзмененияПоКнопкеНастройкаУчетаФЗ(Форма)

    Объект = Форма.Объект;
    
    МаксСчетУчета = абтДополнительноНаСервере.МаксимальныйСчетВТоварах(Объект);
    Если МаксСчетУчета = ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.ТоварыНаСкладах")
        Или МаксСчетУчета = ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.ПокупныеИзделия") Тогда
        // Формирование структуры параметров для заполнения формы
        СтруктураПараметров = Новый Структура;
        Если ЗначениеЗаполнено(Объект.атПодразделениеОрганизацииФЗ) Тогда
            СтруктураПараметров.Вставить("ПодразделениеОрганизации", Объект.абтПодразделениеОрганизацииФЗ);
        Иначе    
            СтруктураПараметров.Вставить("ПодразделениеОрганизации", Объект.ПодразделениеОрганизации);
        КонецЕсли;    
        СтруктураПараметров.Вставить("СчетУчета", МаксСчетУчета);
        СтруктураПараметров.Вставить("ТолькоПросмотр", Форма.ТолькоПросмотр);
        
        ДополнительныеПараметры = Новый Структура;
        ДополнительныеПараметры.Вставить("Форма", Форма);
        
        ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработатьИзмененияПоКнопкеНастойкаУчетаФЗЗавершение", ЭтотОбъект, ДополнительныеПараметры);
        
        ОткрытьФорму("ОбщаяФорма.атФормаНастройкаУчетаФЗ", СтруктураПараметров,,,,,ОповещениеОЗакрытии);
    Иначе
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю("По данным счетам учета нельзя настроивать ФЗ!"); //сообщение пользователю
    КонецЕсли;    
    
КонецПроцедуры

Процедура ОбработатьИзмененияПоКнопкеНастойкаУчетаФЗЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
    
    Если РезультатЗакрытия = КодВозвратаДиалога.Отмена Тогда
        Возврат;
    КонецЕсли;
    Если РезультатЗакрытия = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    Если РезультатЗакрытия.БылиВнесеныИзменения Тогда
        Форма = ДополнительныеПараметры.Форма;
        Объект = Форма.Объект;
        Если РезультатЗакрытия.ПерезаполнитьПодразделение Тогда
            Объект.атПодразделениеОрганизацииФЗ = РезультатЗакрытия.ПодразделениеОрганизации;
            Форма.Модифицированность = Истина;
        КонецЕсли;    
        Если РезультатЗакрытия.ПерезаполнитьСчетаУчета Тогда
            Для Каждого СтрТовары Из Объект.Товары Цикл
                СтрТовары.СчетУчета = РезультатЗакрытия.СчетУчета;
                Форма.Модифицированность = Истина;
            КонецЦикла;    
        КонецЕсли;
    КонецЕсли;    
    
    атДополнительно.абтСформироватьНадписьНайтройкаУчетаФЗ(Форма);
    Форма.ЗаполнитьДобавленныеКолонкиТаблиц();
    
КонецПроцедуры