|
В чем разница при обращении к реквизитам формы? | ☑ | ||
---|---|---|---|---|
0
Галахад
гуру
20.03.12
✎
05:44
|
Можно так:
ЭтаФорма.МойРеквизит Можно так: ЭлементыФормы.МойРеквизит.Значение В чем разница? |
|||
1
Alex375
20.03.12
✎
06:09
|
Разница в том, что в 1-м случае берется значение реквизита формы, а во втором значение реквизита элемента формы. Это могут быть разные вещи.
|
|||
2
Галахад
гуру
20.03.12
✎
06:12
|
(1) Гм. Например "Командная панель" - элемент формы.
ЭтаФорма.КоманднаяПанель.МойРеквизит ЭлементыФормы.КоманднаяПанель.МойРеквизит.Значение Ты про это? |
|||
3
badboychik
20.03.12
✎
06:13
|
ЭлементыФормы это вроде как не реквизиты а элементы управления
|
|||
4
Alex375
20.03.12
✎
06:14
|
(2) командная панель всегда элемент формы и не может быть реквизитом у формы.
|
|||
5
Галахад
гуру
20.03.12
✎
06:16
|
(3), (4) Немного уточню.
МойРеквизит - Элемент управления (поле ввода) |
|||
6
guitar_player
20.03.12
✎
06:18
|
У тебя есть реквизит формы и элемент формы, они у тебя называются одинаково, поэтому разницу ты не замечаешь...
|
|||
7
Alex375
20.03.12
✎
06:18
|
Я к примеру могу создать реквизит у формы "Реквизит1" типа ссылка на справочник "Контрагенты", а потом добавить на форму поле ввода с именем "Реквизит1", но в качестве данных выбрать значение из "реквизит2" типа число. В этом случае "ЭтаФорма.Реквизит1" не равен "ЭлементыФормы.Реквизит1.Значение".
|
|||
8
Галахад
гуру
20.03.12
✎
06:23
|
(6) Видимо в этом и есть заковыка. В чем отличие реквизита формы и элементы формы?
(7) Ага. Я правильно понял? Реквизит - это уже элемент метаданных? |
|||
9
Omskdizel
20.03.12
✎
06:26
|
(8) Реквизит - это собсно данные, а элемент формы - это кнопочка, полечко, табличечка и т.д.
|
|||
10
Alex375
20.03.12
✎
06:27
|
(8) строго говоря реквизит у формы, это не метаданные... Элемент формы это лишь програмный объект для обеспечения взаимодействия с пользователем. Он может связываться с данными как объекта (метаданные) так и с данными формы (реквизиты формы). Отличие метаданных от реквизита - первые хранятся в базе, вторые нет.
|
|||
11
Галахад
гуру
20.03.12
✎
06:28
|
(9) Понял. А для элементов формы в (0) в чем разница?
|
|||
12
Песец
20.03.12
✎
06:28
|
Есть реквизиты, и есть элементы формы.
Элемент формы может быть связан, а может и не связан с реквизитом. И наоборот, у реквизита может не быть соответствующего ему элемента формы. Некоторые элементы (например панель) формы вообще не могут быть связаны с реквизитом. |
|||
13
Рэйв
20.03.12
✎
06:34
|
(0)
ЭтаФорма.МойРеквизит ЭтаФорма -как объект в памяти ЭлементыФормы.МойРеквизит.Значение ЭлементыФормы- какрасположенные на форме объекты интерфейса |
|||
14
Песец
20.03.12
✎
06:39
|
(11) Если у элемента формы "МойРеквизит" в свойстве "Данные" указан реквизит "МойРеквизит" (а не какой-то другой), то можно обращаться к значению обоими способами.
|
|||
15
Omskdizel
20.03.12
✎
06:41
|
(11) ЭлементФормы - это все поле целиком например. ЭлементФормы.Значение - значение данного элемента формы. Есть подозрение, что иногда может отличаться от данных в связанном с элементом формы реквизитом, но я такой ситуации пока не встречал. Вопчем Значение - это по сути данные из связанного реквизита.
|
|||
16
Песец
20.03.12
✎
06:41
|
Кстати, кто подскажет как обойти реквизиты формы? Элементы формы можно через Для каждого или через Количество(), а реквизиты?
|
|||
17
Omskdizel
20.03.12
✎
06:43
|
А Реквизит тебе что мешает тем же способом обойти? По мне так даже более правильно, чем через ЭлементФормы стучаться
|
|||
18
Omskdizel
20.03.12
✎
06:43
|
(16) А, неправильно понял. Только вот пока не пойму, зачем это может понадобиться...
|
|||
19
Галахад
гуру
20.03.12
✎
06:44
|
Всем спасибо. Стало яснее.
|
|||
20
Рэйв
20.03.12
✎
06:46
|
(16)ЭтаФорма.Метаданные().Реквизиты
так же |
|||
21
Песец
20.03.12
✎
06:47
|
(17) Для элементов формы я пишу
для ф=1 По ЭлементыФормы.Количество() Цикл х=ЭлементыФормы[фф-1].<ЧтоТо>; ... КонецЦикла; А как для реквизитов? |
|||
22
Omskdizel
20.03.12
✎
06:49
|
(20) Не нашел такого метода у ЭтаФорма
(21) Приведи пример, зачем это может быть нужно? |
|||
23
Рэйв
20.03.12
✎
06:51
|
(22)В табло посмотри
|
|||
24
skunk
20.03.12
✎
06:51
|
разница показана наглядно
|
|||
25
skunk
20.03.12
✎
06:51
|
||||
26
Рэйв
20.03.12
✎
06:53
|
||||
27
Omskdizel
20.03.12
✎
06:57
|
Забавно, а у меня пишет "Метод объекта не обнаружен (Метаданные)"
Точка останова в ПриОткрытии у одного из документов. 8.2.15.301, УФ |
|||
28
Песец
20.03.12
✎
07:04
|
(0) Внешняя обработка запущена на копии, заполнены реквизиты (их много).
Требуется передать заказчику обработку (один раз), затем передавать варианты заполнения реквизитов. Запоминаю реквизиты в файл тз = Новый ТаблицаЗначений; тз.Колонки.Добавить("ид"); тз.Колонки.Добавить("значение"); для фф=1 По ЭлементыФормы.Количество() Цикл Если значениезаполнено(ЭлементыФормы[фф-1].типзначения) Тогда х=111; Попытка х = ЭлементыФормы[фф-1].значение; Исключение КонецПопытки; Если х<>111 Тогда нс=тз.Добавить(); нс.ид = ЭлементыФормы[фф-1].имя; нс.значение = ЭлементыФормы[фф-1].значение; КонецЕсли; КонецЕсли; КонецЦикла; ЗначениеВФайл("c:\ннн.ннн",тз); Заполняю реквизиты из файла тз=ЗначениеИзФайла("c:\ннн.ннн"); для фф=1 По ЭлементыФормы.Количество() Цикл Если тз.Найти(ЭлементыФормы[фф-1].имя,"ид") = Неопределено Тогда Продолжить; КонецЕсли; ЭлементыФормы[фф-1].значение = тз.Найти(ЭлементыФормы[фф-1].имя,"ид").значение; КонецЦикла; |
|||
29
Песец
20.03.12
✎
07:04
|
(26) Пишу
для каждого э из ЭтаФорма.метаданные().реквизиты Цикл Сообщить(э.значение); КонецЦикла; в цикл не заходит :( |
|||
30
Песец
20.03.12
✎
07:06
|
(20) Снегопат демко тсуко про ЭтаФорма.метаданные() ничего не знает :((
(внешняя обработка) |
|||
31
Песец
20.03.12
✎
07:08
|
(29+) Почему - я так и не понял, сделал через изврат в (28) - работает, но хотелось бы знать более кошерный способ.
|
|||
32
Песец
20.03.12
✎
07:10
|
(29,31+) 1С 8.2.14.540 файловая.
|
|||
33
Песец
20.03.12
✎
07:45
|
(31) Понял, ЭтаФорма.метаданные().реквизиты показывает реквизиты самой обработки/отчета/и т.д., а не реквизиты формы. Но легче от этого не стало.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |