Имя: Пароль:
1C
1C 7.7
v7: ОЛЕ, реквизиты неопределенного вида
0 Shrike
 
21.06.12
01:15
Для счДок = 1 По БазаОле.Метаданные.Документ(ВидДокумента).РеквизитШапки() Цикл
   
   Ид = БазаОле.Метаданные.Документ(ВидДокумента).РеквизитШапки(счДок).Идентификатор;    
   
   РеквизитШаблон = ДокШаблон.ПолучитьАтрибут(Ид);
   Док.УстановитьАтрибут(Ид,РеквизитШаблон);
   
КонецЦикла;

Заполняет все реквизиты шапки за исключением двух, неопределенного вида, с типом "справочник". РеквизитШаблон - значение реквизита подключаемой базы, ОЛЕ объект, не пустое. ЧЯДНТ?
1 Азат
 
21.06.12
01:36
а может неопределенного типа и надо сделать "НазначитьТип"?
2 Shrike
 
21.06.12
01:40
(1) Нет, именно вида.
3 Партизан
 
21.06.12
01:40
(0) идентификатор можно получить и без обращения к метаданным

>> РеквизитШаблон - значение реквизита подключаемой базы, ОЛЕ объект, не пустое.

реквизит подключаемой ОЛЕ базы присваиваем напрямую локальной базе?
4 Shrike
 
21.06.12
01:47
(3) В подключаемой базе есть справочник "Шаблоны документов" с реквизитами, ссылками на заполненные документы. Подключаюсь к ОЛЕ базе, считываю реквизиты документов, там их же создаю и заполняю.
5 Партизан
 
21.06.12
01:50
Док - это в базе ОЛЕ ?
6 Shrike
 
21.06.12
01:51
Да
7 Партизан
 
21.06.12
01:52
(6) тогда и именовать надо правильно: ДокОЛЕ, а то получается непонятный гуанокод
попробуй так тогда:
РеквизитШаблон = ДокШаблон.ПолучитьАтрибут(Ид).ТекущийЭлемент();
8 Shrike
 
21.06.12
02:00
(7) Спасибо!
9 Ёпрст
 
21.06.12
09:07
(2) врешь ведь.
Назначать вид вовсе не обязательно для реквизитов с типом без вида.
Главное, назначить тип для реквизитов неопределенного типа.
10 Pro-tone
 
21.06.12
09:13
(0) а если будет тип значения не примитивный, а скажем "Справочник" или "Документ"? в общем (0) код требует доработки
11 Shrike
 
21.06.12
10:21
(9) Да вроде я и не пытаюсь назначить вид.
12 Ёпрст
 
21.06.12
10:22
(11) тогда всё и так работает
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс