Имя: Пароль:
1C
1С v8
В чем разница при обращении к реквизитам формы?
,
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) Понял, ЭтаФорма.метаданные().реквизиты показывает реквизиты самой обработки/отчета/и т.д., а не реквизиты формы. Но легче от этого не стало.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший