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

Передача данных из реквизитов внутри формы обработки в другую обработку и отчеты

Автор SychLover, 29 мая 2024, 00:04

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

SychLover

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

fruitella

При открытии другой, можно ловить в событии ПриСоздании.
Если уже открыта, можно через событие ОбработкаОповещения.

Afinogen

если вторая обработка в которую нужно передать параметры открывается из  первой например по нажатию на кнопку то в первой обработке параметры передаете в обработчике открытия а во второй ловите их же в обработчике "ПриСозданииНаСервере.

примерно так

1-я обработка

Процедура открытьвторуюобработку()

Парам = Новый Структура("П1,П2,П3...",П1,П2,П3,...);
ОткрытьФорму("Обработка2.Форма.ВашаФорма", Парам)


2-я Обработка

Процедура ПриСозданииНаСервере(Отказ)

П1 = Параметры.П1;
....



Afinogen

Цитата: SychLover от 29 мая 2024, 00:04Также интересно можно ли каким-то образом из первой обработки достать значения с реквизитов и добавить их в отчёт.

не понятно  что вам надо

SychLover

Afinogen, попробовал реализовать вашим способом, но почему-то реквизит в открываемой по кнопке форме обработки все равно остается пустым. Возможно я сделал что-то не так, не исключаю такого варианта.
Для теста создал новую обработку "Тест" и в ней форму "Форма" попытался перенести в реквизит "Результат" в этой форме значение реквизита "Итого" из формы первой обработки, посредством открытия формы обработки "тест" через нажатие кнопки.
Код в первой обработке:
&НаКлиенте
Процедура ОткрытьОбработку(Команда)

Парам = Новый Структура("Итого",Итого);
ОткрытьФорму("Обработка.Тест.Форма.Форма", Парам);

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

Код во второй обработке:
&НаКлиенте
Процедура ПриСозданииНаСервере(Отказ)

Результат = Параметры.Итого;

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

Также хотелось бы поинтересоваться, а что если Обработка2 открывается не по нажатию кнопки в Обработке1? Как в таком случае выполнить передачу данных из реквизитов обработки1 в реквизиты обработки2?

На счет вопроса об отчетах. Интересно можно ли при нажатии на кнопку в Обработке1 сделать так, чтобы открывалась отдельная форма табличного отчета в котором будут данные из представленных в Обработке1 реквизитах.

Afinogen

у вас этот реквизит в обработке где указан? если в конфигурации в ветке реквизиты то вам надо  писать  что то  типа

Объект.ИмяРеквизита = параметры.

если реквизит чисто  формы то можно напрямую присваивать.  Выложите принскрин

на второй вопрос на счет если открыта то можно  через  метод "Оповестить", но тогда вам надо еще потмо принудительно обновлять отображение форм, можно попробовать через подключенитьОбработчикОжидания в обработке2

хотя скажем так - это большие костыли

SychLover

Afinogen, Если я правильно всё понял, то реквизит у меня как раз таки чисто формы. Скриншот прикладываю. Сверху открыта форма первой обработки, где есть реквизит "Итого" из которого пытаюсь получить данные в форму второй тестовой обработку в реквизит "Результат"
Снимок экрана 2024-05-29 144237.png

Afinogen


SychLover

Afinogen,
Попробовал загрузить на сайт для загрузки изображений и вставил в сообщение, если и сейчас не открывается, то вот прямая ссылка на скриншот: https://postimg.cc/vgnxTZy9

Afinogen

значит вам надо  писать Результат = Параметры.

и я бы переназвал элемент формы

Теги:

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

Рейтинг@Mail.ru

Поиск