- В этой теме 1 ответ, 2 участника, последнее обновление 18 часов, 19 минут назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как извлечь данные формы 1С по ссылке объекта?
Как взять данные открытой формы по ссылки объекта
Сергей, чтобы получить данные открытой формы по ссылке на объект в 1С, нужно сначала получить саму форму, связанную с этой ссылкой, а затем обратиться к объекту формы (Объект), где хранятся данные.
Пример кода на управляемом приложении 1С:
|
1 2 3 4 5 6 7 8 9 10 |
&НаКлиенте Функция ПолучитьДанныеФормыПоСсылке(СсылкаОбъекта) // Получаем форму объекта по ссылке Форма = Справочники.ПолучитьФормуПоИмени(СсылкаОбъекта.Метаданные().Имя + ".ФормаОбъекта", Новый Структура("Ключ", СсылкаОбъекта)); // Открываем форму немодально, чтобы она была доступна Форма.Открыть(); // Возвращаем объект формы с данными Возврат Форма.Объект; КонецФункции |
Если форма уже открыта, и вы хотите получить к ней доступ, то можно использовать менеджер форм:
|
1 2 3 4 5 6 7 8 9 10 11 |
&НаКлиенте Функция НайтиОткрытуюФормуПоСсылке(СсылкаОбъекта) Для Каждого Форма Из МенеджерФорм.ПолучитьОткрытыеФормы() Цикл Если ТипЗнч(Форма) = Тип("Форма") Тогда Если Форма.Объект <> Неопределено И Форма.Объект.Ссылка = СсылкаОбъекта Тогда Возврат Форма; КонецЕсли; КонецЕсли; КонецЦикла; Возврат Неопределено; КонецФункции |
После получения формы можно обратиться к её объекту:
|
1 2 3 4 |
Форма = НайтиОткрытуюФормуПоСсылке(СсылкаОбъекта); Если Форма <> Неопределено Тогда Форма.Обновить(); КонецЕсли; |
Если форма не открыта, то её нужно открыть через ПолучитьФорму с передачей параметра «Ключ» равного ссылке объекта.
Важно: если форма открыта модально, то доступ к ней из другого кода будет затруднен, так как модальные формы блокируют поток.
https://helpf.pro/faq/view/534.html (работа с формами и получение данных)
Таким образом, чтобы взять данные открытой формы по ссылке объекта, нужно либо получить ссылку на уже открытую форму через менеджер форм, либо открыть форму по ссылке и получить объект формы через свойство Объект.