Имя: Пароль:
1C
 
Как перебрать все реквизиты формы?
0 Гений 1С
 
гуру
21.06.07
14:53
Я хочу скопировать одну форму в другую, как перебрать все реквизиты формы?
1 yalex
 
21.06.07
14:54
Для Каждого элемент Из ЭлементыФормы
2 AversDik2
 
21.06.07
15:30
(0)
Для каждого мРеквизит ЭтаФорма.Метаданные().Реквизиты Цикл
НоваяФорма[мРеквизит.Имя] = ЭтаФорма[мРеквизит.Имя];
КонецЦикла;
3 Гений 1С
 
гуру
21.06.07
15:41
(1) Реквизиты а не Элементы!!!
(2) йоу
4 Гений 1С
 
гуру
21.06.07
16:00
(2) Работает даже для внешних отчетов!
5 AversDik2
 
21.06.07
16:21
(4) Работает для форм
6 yalex
 
21.06.07
16:29
(3) А что мешает зная элемент получить данные или значение?! Мой способ тоже верен)
7 yalex
 
21.06.07
16:30
6 + и не удевлюсь, если быстрее
8 yalex
 
21.06.07
16:35
7 + тем боле ты "копируешь формы"
9 Гений 1С
 
гуру
21.06.07
16:36
(6) идиот! у формы могут быть реквизиты, которые не вынесены в элементы управления! так что твой метод - это фигня...
10 Гений 1С
 
гуру
21.06.07
16:37
(9) извини за идиота, это в такой незлобной форме, написал, а потом подумал - вруг без ЧЮ? ;-)
11 yalex
 
21.06.07
16:41
(9) Да, точно) Но, ведь, признайся у тебя нет "невнесённых" реквизитов))
12 AversDik2
 
21.06.07
16:44
(7) Реквизитов гораздо меньше, чем элементов форм.
13 yalex
 
21.06.07
16:48
(12) Ну вобщем, чаще да) Но всякое бывает и по (9) может быть и наоборот)
14 Pike
 
21.06.07
16:58
ЗаполнитьЗначенияСвойств(НоваяФорма, СтараяФорма)
или
ЗаполнитьЗначенияСвойств(НовыйОбъект, старыйОбъект)
15 Гений 1С
 
гуру
21.06.07
18:27
(11) есть! Построитель, например.
16 Гений 1С
 
гуру
21.06.07
18:27
(14) в курсе... Но не факт...
17 TormozIT
 
гуру
21.06.07
20:42
Уже обсуждалось. В общем случае невозможно.
18 Гений 1С
 
гуру
22.06.07
00:06
(17) что невозможно? (2) ответил, что возможно!
19 coder1cv8
 
25.06.07
16:12
Подниму веточку... Тож заинтересовался этим вопросом. Получается что "извне" можно перебрать тока те реквизиты формы, которые "привязаны" к элементам управления?
20 yalex
 
25.06.07
16:23
(19) Не только реквизиты связанные с элементами управления.
Все реквизиты можно перебрать
21 coder1cv8
 
25.06.07
16:28
(20) Мне попросить надо? Колись... )
22 yalex
 
25.06.07
16:32
(21) Так в (2)ведь написал - так перебираешь все реквизиты
(1) - перебираешь ЭлементыФормы и полчаешь связанные данные каждого элемента
23 AversDik2
 
25.06.07
16:32
(21) см (2)
24 coder1cv8
 
25.06.07
16:42
(22,23) Читать я умею... Не работает:
ОбъектОбработки=ВнешниеОбработки.Создать(ИмяОбработки);
ФормаОбработки=ОбъектОбработки.ПолучитьФорму();
Для Каждого Реквизит Из ФормаОбработки.Метаданные().Реквизиты Цикл
   
КонецЦикла;
25 Irbis
 
25.06.07
16:43
Одна засада только есть, элементы формы, содаваемые программно не получится перебрать. Их попросту может не быть.
26 coder1cv8
 
25.06.07
16:45
+(24) И так тоже:
ОбъектОбработки=Обработки[ИмяОбработки].Создать();
ФормаОбработки=ОбъектОбработки.ПолучитьФорму();
Для Каждого Реквизит Из ФормаОбработки.Метаданные().Реквизиты Цикл
   
КонецЦикла;
27 coder1cv8
 
25.06.07
16:47
(25) Самая главная засада, что до реквизитов не имеющих элементов управления, похоже можно добраться тока из модуля самой формы... (
28 yalex
 
25.06.07
16:49
(26) Может у тебя нету реквизитов формы?)
29 AversDik2
 
25.06.07
16:50
(24) (27) (28)
ФормаОбработки.Метаданные() - это метаданные внешней обработки.
ИМХО метаданных формы внешней обработки не существует
30 coder1cv8
 
25.06.07
16:50
(28) сам в это веришь? )
31 coder1cv8
 
25.06.07
16:53
(29) согласен, ошибку дает метод не обнаружен, но почему коллекция метаданных формы "внутренней" (см. (26)) обработки пустая?...
32 Гений 1С
 
гуру
25.06.07
16:58
(29) Существует, у меня все нормально рулит!
33 yalex
 
25.06.07
16:59
(31) Действительно не катит (2) :)
34 coder1cv8
 
25.06.07
17:00
(32) А почему у меня грит "метод не обнаружен"?
35 yalex
 
25.06.07
17:03
33 + Вернее катит, но криво: получает значения элементов формы и то не все (без номера и даты, без ТЧ)
36 yalex
 
25.06.07
17:05
35 + да и реквизиты формы не видит, видит только реквизиты объекта)
37 coder1cv8
 
25.06.07
17:12
(36) Получается, что когда я пытаюсь перебрать реквизиты формы, возвращаются реквизиты объекта, это для обработки внутри конфигурации, с внешней вобще не катит... Фигня получается (
38 yalex
 
25.06.07
17:18
(37) Ну да, если реквизиты не являются реквизитами обработки(не реквизиты формы). Гений что-то потерялся. Сейчас должен выдать заключение)
39 Гений 1С
 
гуру
25.06.07
17:22
(37) а, ну да, реквизитов формы не получишь.
Можно перебрать элементы формы и проанализировать их данные на предмет совпадания с реквизитами, можно выщемить реквизиты формы, но в данных рквизиты формы и обработки могут называться одинаково, хотя на самом деле показывать на разные вещи.

Так что формы 1с еще долго нужно будет в чуство приводить
40 coder1cv8
 
25.06.07
17:28
(39) Вобщем, всё то же самое до чего я уже дошел своим умом... Жопа короче, получается...
Я пока остановился на том чтобы перебирать данные элементов управления, лучше видимо ничего не придумать...
41 у лю 427
 
25.06.07
17:35
за 3 рубля даю самый ценный совет
42 у лю 427
 
25.06.07
17:36
опа на... не туда ... похерить сообщение

Ошибка МайСклюль трали вали при добавлении сообщения....
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший