Имя: Пароль:
1C
1С v8
v8: Выгрузить реквизиты объекта и их типы 1С
,
0 Kiberbelka
 
29.03.13
12:09
ДД! Мне необходимо написать обработку , в которой бы можно было выбрать объект метаданных (справочник, документ, отчет и т.д) и вывести наименование реквизитов объекта вместе с описанием типов значений . Сама я не программист, я консультант, но немножко разбираюсь в коде. Прошу помочь мне,примерно хотя бы подсказать методы, с помощью которых это можно сделать, сильно не гнобите, пожалуйста :)
2 Kiberbelka
 
29.03.13
12:20
Ой, простите, исправила свой профиль :)
3 Kiberbelka
 
29.03.13
12:22
Ну где вы гуру 1С?
4 Tashiro
 
29.03.13
12:24
(0) похоже на тестовое задание при принятии на работу
5 НафНаф
 
29.03.13
12:25
цикл по коллекции Реквизиты объекта метаданных
6 MSII
 
29.03.13
12:27
(4) Если задание, то странное какое-то.
7 Kiberbelka
 
29.03.13
12:27
Не надо мне на работу приниматься, я уже давно работаю, мне нужно сравнить объекты в нескольких конфигурациях , и нужно еще и типы сравнить , а при обычном сравнении конфигураций типы то не видно. вот я и хочу куда нить их в одно место вывести, а потом в экселе уже сравнить.
8 Tashiro
 
29.03.13
12:28
(6) Ничего странного я во фране когда работал примерное такую-же задачку делал в первую неделю работы
9 Kiberbelka
 
29.03.13
12:29
но если кто то знает как можно сразу сравнить 2 конфы , чтобы и реквизиты и типы сравнить сразу, то вообще прекрасно :) может прога какая есть.
10 Kiberbelka
 
29.03.13
12:30
НафНаф, цикл по коллекции Реквизиты че то не сработал, или я что то не то делаю, но он мне пишет , что поле объекта Реквизиты не обнаружено.
11 Alex S D
 
29.03.13
12:31
мде.
12 Alex S D
 
29.03.13
12:31
а если подробный отчет по изменениям?)
13 Alex S D
 
29.03.13
12:31
потом пропарсить.. шутка))
14 Alex S D
 
29.03.13
12:32
ой, ваще не то сори.)
15 palpetrovich
 
29.03.13
12:33
(9) "сравнить, объеденить с конфигурацией из файла"  - не прелагать?
16 Kiberbelka
 
29.03.13
12:35
Сравнение то я уже сделала, мне бы теперь еще по типам сравнить
17 Kiberbelka
 
29.03.13
12:36
а как это сделать не знаю(( уже 3 часа интрнет переворачиваю, такое ощущение, что до меня никому никогда  не нужно было сравнивать реквизиты по типам
18 Tashiro
 
29.03.13
12:36
(16) ну дык там есть это, или не ищем легких путей?
19 palpetrovich
 
29.03.13
12:36
(16) дык, (15) - по типам сравнивает
20 Kiberbelka
 
29.03.13
12:37
эммм... где там такое есть? что то ни  я ни мои коллеги этого там никогда не видели
21 Kiberbelka
 
29.03.13
12:37
Дааа, нужно по типам сравнить
22 Kiberbelka
 
29.03.13
12:38
Не может быть , чтобы никто никогда не сравнивал по типам
23 Tashiro
 
29.03.13
12:39
(20) специально конфу изменил сделал http://clip2net.com/s/4PhlNw
24 MSII
 
29.03.13
12:40
(8) Непонятно, какие навыки и умения проверяются при помощи такого задания. Человек может уметь обходить коллекции циклом, знать о метаданных, но не уметь писать запросы.
25 ptiz
 
29.03.13
12:40
Для каждого МДДок Из Метаданные.Документы Цикл

 Для каждого МДРеквизит из МДДок.Реквизиты Цикл
   Сообщить(СокрЛП(МДДок) + " / " + МДРеквизит + " / " + МДРеквизит.Тип);
 КонецЦикла

 Для каждого МДТабЧасть из МДДок.ТабличныеЧасти Цикл
 ...
   Для каждого МДРеквизитТЧ из МДТабЧасть.Реквизиты Цикл
   ...
   КонецЦикла
 КонецЦикла

КонецЦикла
26 Tashiro
 
29.03.13
12:41
(24) ну например базовые знания, нет?
27 palpetrovich
 
29.03.13
12:41
хочешь глазками сравнивать - делай типа так:

   ТекДокумент = Метаданные.Документы["СписаниеТоваров"]; // к примеру
   Для К = 0 По ТекДокумент.Реквизиты.Количество()-1 Цикл
       ТекРеквизит = ТекДокумент.Реквизиты.Получить(К);
       Имя = ТекРеквизит.Имя;
       Тип = ТекРеквизит.Тип;
   КонецЦикла;
   Для каждого ТЧОбъекта Из ТекДокумент.ТабличныеЧасти Цикл
       Кво = ТекДокумент.ТабличныеЧасти[ТЧОбъекта.Имя].Реквизиты.Количество()-1;
       Для К = 0 По Кво Цикл
           ТекРеквизит   = ТекДокумент.ТабличныеЧасти[ТЧОбъекта.Имя].Реквизиты.Получить(К);
           Имя = ТекРеквизит.Имя;
           Тип = ТекРеквизит.Тип;
       КонецЦикла;
   КонецЦикла;
28 MSII
 
29.03.13
12:44
(26) Ну, если подбирается стажер, то да, наверное.
29 НафНаф
 
29.03.13
12:45
Для каждого Реквизит Из Метаданные.Документы.АвансовыйОтчет.Реквизиты Цикл
   Сообщить(Реквизит.Имя);
   Для каждого Тип Из Реквизит.Тип.Типы() Цикл
       Сообщить("  "+Тип);        
   КонецЦикла;
КонецЦикла;
30 Tashiro
 
29.03.13
12:47
(28) ну я-ж не сказал что это единственное задание было, одно из
(27)(29) да нафиг это? если сравнение конф покажет изменение типа?
31 Kiberbelka
 
29.03.13
12:49
(30) потому что там просто будет видно, что тип отличается , а какой именно тип в одном и дргом случае то не видно.
32 Tashiro
 
29.03.13
12:50
(31) ПКМ по этому полю и выбираем "Свойства"
33 palpetrovich
 
29.03.13
12:53
(30) зачем зачем...   ну хочет девушко, тебе жалко  что-ли? ;)
34 Kiberbelka
 
29.03.13
12:53
(29) Спасибо,это работает!
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.