Имя: Пароль:
1C
1С v8
Как получить данные из другой формы начальной страницы?
0 АСанСаныч
 
02.04.19
09:59
Доброго дня.
На начальной странице управляемого приложения размещено несколько форм.
Хотелось бы при обработке события ТЧ одной из форм получить текущие данные из ТЧ другой формы. Как к этим данным обратиться?
1 Вафель
 
02.04.19
10:16
можно все открытые окна перебрать
2 Вафель
 
02.04.19
10:17
см ОкнаКлиентскогоПриложения
3 АСанСаныч
 
02.04.19
11:29
Спасибо. Нашёл решение. Оптимально ли оно?

Окна = ПолучитьОкна();
Для ио = 0 по Окна.Количество()-1 Цикл
   текОкно = Окна[ио];
   Если текОкно.НачальнаяСтраница Тогда
      масФорм = текОкно.Содержимое;
      Для иф = 0 по масФорм.Количество()-1 Цикл
     Если масФорм[иф].Заголовок = "Уплата" Тогда
        Попытка
           т = масФорм[иф].Элементы.Список.ТекущиеДанные.Ч;
        Исключение
            КонецПопытки;
            Прервать;
    КонецЕсли;
      КонецЦикла
   КонецЕсли;    
КонецЦикла;
4 Василий Алибабаевич
 
02.04.19
11:35
(3) Фигня какая-то (ЦЫ).
Данные же в "масФорм[иф].Элементы.Список.ТекущиеДанные.Ч;" откуда-то берутся. Почему бы не взять их еще раз для "т"?
ЗЫ. А если масФорм[иф].Заголовок = "Уплата" не найдется7
зы. А если в "масФорм[иф].Элементы.Список.ТекущиеДанные" не будет ТекущиеДанные?
5 АСанСаныч
 
02.04.19
11:48
(4) всенормально. При копипасте начальное обнуление т не скопировалось перед Окна = ПолучитьОкна();

Перед последним КонецЕсли; надо ещё одну Прервать; влепить.
6 Василий Алибабаевич
 
02.04.19
11:52
(5) Я совсем не за качество копи-пасте распинался.
7 АСанСаныч
 
02.04.19
12:01
(6) Извини. Тогда не понял смысла в твоих замечаниях.
8 Fish
 
02.04.19
12:16
(7) Смысл таков: зачем брать данные из формы, когда можно их взять из данных?
9 АСанСаныч
 
02.04.19
12:22
(8) Как из среза последних РС узнать какая запись выбрана в другой форме в качестве текущей?