8.х Получение данных формы обработки из общего модуля управляемого приложения

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

  1. TopicStarter Overlay
    Euronymous
    Offline

    Euronymous Опытный в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    206
    Симпатии:
    0
    Баллы:
    26
    Как получить данные формы обработки из общего модуля?
    По нажатию на кнопку обработки вызывается цепочка процедур из общих модулей, как в одной из этих процедур можно получить данные с формы обработки?
    P.S. Передавать в качестве параметра данные не подходит для данной задачи
  2. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Почему передача параметров не подходит для решения задачи?
    Как вариант, вынести процедуру или весь блок процедур в отдельный общий модуль, который будет выполняться на Клиенте/Сервере (см. свойства).
  3. TopicStarter Overlay
    Euronymous
    Offline

    Euronymous Опытный в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    206
    Симпатии:
    0
    Баллы:
    26
    Потому что механизм универсальный и полностью его переделывать очень не желательно, т.к. на нем держится вся система
    Отдельный блок создавать тоже не очень красиво и довольно глупо, т.к. механизм очень сложный и хрупкий, а также будет выставлен на "показ"

    Пока что нашел такой способ, сейчас буду проверять:
    Код:
    &НаСервере
    Процедура ВосстановитьНастройки()
    
    КлючОбъекта = "Обработка.ЗадачаПоУТ_11_шаблон";
    КлючНастроек = "Обработка.ЗадачаПоУТ_11_шаблон";
    ОписаниеНастроек = "Обработка.ЗадачаПоУТ_11_шаблон";
    Значение ="";
    ИмяПользователя = "";
    
    ЗначениеНастроек = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта, КлючНастроек, ОписаниеНастроек, ИмяПользователя);
    
    Если ТипЗнч(ЗначениеНастроек) = Тип("Соответствие") Тогда
    
    ЗначениеИзНастройки = ЗначениеНастроек.Получить("ТаблицаЗначений");
    
    Объект.Реквизит1 = ЗначениеНастроек.Получить("Реквизит1");
    Объект.Реквизит2 = ЗначениеНастроек.Получить("Реквизит2");
    
    Объект.Свойства.Загрузить(ЗначениеИзНастройки);
    
    КонецЕсли;
    
    КонецПроцедуры
    
    
    
    
    &НаСервере
    Процедура СохранитьНастройки()
    
    КлючОбъекта = "Обработка.ЗадачаПоУТ_11_шаблон";
    КлючНастроек = "Обработка.ЗадачаПоУТ_11_шаблон";
    ОписаниеНастроек = "Обработка.ЗадачаПоУТ_11_шаблон";
    Значение ="";
    ИмяПользователя = "";
    
    Настройки = Новый Соответствие;
    
    Настройки.Вставить("ТаблицаЗначений", Объект.Свойства.Выгрузить());
    
    Настройки.Вставить("Реквизит1", Объект.Реквизит1);
    Настройки.Вставить("Реквизит2", Объект.Реквизит2);
    
    ХранилищеОбщихНастроек.Сохранить(КлючОбъекта, КлючНастроек, Настройки, ОписаниеНастроек, ИмяПользователя);
    
    КонецПроцедуры
    и/или
    Код:
    ПоместитьВоВременноеХранилище() и
    ПолучитьИзВременногоХранилища()
  4. TopicStarter Overlay
    Euronymous
    Offline

    Euronymous Опытный в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    206
    Симпатии:
    0
    Баллы:
    26
    Сделал через
    Код:
    ПоместитьВоВременноеХранилище() и
    ПолучитьИзВременногоХранилища()
    Но пришлось создать параметр сеанса, для передачи адреса временного хранилища из обработки в общий модуль

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