Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Вызвать процедуру формы после оповещения в общем модуле

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

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

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

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

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

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

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

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

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

    КонецЕсли;    
    
КонецПроцедуры

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует