Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 21:21

Передача параметра во внешнюю обработку

Автор Funt432286, 08 мар 2023, 22:35

0 Пользователей и 1 гость просматривают эту тему.

LexaK

Цитата: Funt432286 от 25 авг 2023, 15:30Реквизит на форму приходит пустой!
проверяйте Типы реквизитов/переменных - должны совпадать (тем более ссылочные)
если помогло нажмите: Спасибо!

Funt432286

Теперь появился новый вопрос, если внешняя обработка открывается открывается с формы документа и на нее передается ссылка на документ!

Как обратно на форму документа с внешней обработке вернуть значения, например структуру или ТаблтицуЗначений

Funt432286

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

КонецФункции

На форме документа присваиваю переменной
Процедура РасчетПостпечать(Кнопка)
       
    ТабОперации = П_Общий.ОткрытьОбработкуСсылка("РасчетЛистоваяПечать", "РасчетПачки", Ссылка);
   
    Сообщить("Возврат " + ТабОперации);
   
КонецПроцедуры

на форме внешней обработке, при нажатии на кнопку Заполнить, должны на форму документа возвращаться данные
Функция Заполнить(Кнопка)
   
    Закрыть(ТЧ_Постпресс);

КонецФункции

antoneus

Таблицу значений передать из формы в форму не получится, если только пихать во временное хранилище и передавать адрес, а всякие доступные на клиенте значения - через оповещение.

Funt432286

antoneus, значит буду помещать во временное хранилище, а на форму передавать адрес!

Просто у меня других вариантов нет, нужно так и точка!
Ну как передать ТЗ в хранилище, я поищу в нете, а вот как передать адрес с формы обработке на форму, можете подсказать учитывая код выше!?

fruitella

Все очень просто. У метода открыть форму есть аргумегты, 1 - название формы, 2 - параметры в виде структуры. В структуру можешь выгрузить ТЗ. В другой форме в событиях при создании на сервере вытягиваешь данные через параметры. Получаешь ключ из временного хранилища, далее уже обрабатываешь данные как тебе нужно.

antoneus

Через оповещение, говорю же.
В открытой форме перед закрытием вызываем метод Оповестить("ЗакрытиеВторойФормы", АдресТЗ),
во второй форме ловим в процедуре ОбработкаОповещения(ИмяСобытия, Параметр).

fruitella

antoneus, О, круто. Не знал об этом способе, спасибо.

Funt432286

antoneus, Оповестить("ЗакрытиеВторойФормы", АдресТЗ)

чего-то не пойму как понять какое имя события должно быть прописано! как установить - поймать его?

Funt432286

что-то как-то тяжко все идет!

пытаюсь закинуть данные в хранилище
Процедура Заполнить(Кнопка)

АдресТЗ = ПоместитьВоВременноеХранилище(ОбработкаОбъект.ТЧ_Постпресс);

Оповестить("ОбновитьТабПостпечать", АдресТЗ, ЭтаФорма);

Закрыть();

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

выдает ошибку Ошибка при вызове метода контекста (ПоместитьВоВременноеХранилище)
{Обработка.РасчетЛистоваяПечать.Форма.РасчетПачки.Форма(8)}: АдресТЗ = ПоместитьВоВременноеХранилище(ОбработкаОбъект.ТЧ_Постпресс);
по причине:
Переданное значение не может быть помещено во временное хранилище

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск