7 февр. 2021 г.

Обработка заполнения табличной части

 Шаблон обработки заполнения табличной части для "Управляемых форм" выглядит так

Модуль объекта должен иметь основную экспортную функцию с именем СведениеОВнешнейОбработки()

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

В модуле формы

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

Обращаю внимание на код ниже комментария
//для обновления отображения
Тут выполняется обновление табличной части, с которой был вызвана обработка заполнения

Комментариев нет:

Отправить комментарий

 

CopyPaste Copyright © 2017 - |- Шаблон создан O Pregador - |- Отредактирован myr4ik07