|
v7: OLE + метаданные. | ☑ | ||
---|---|---|---|---|
0
ЗЫ5
06.06.12
✎
19:45
|
Написал простую обработку по переносу групп теперь нужно добавить перенос элементов справочника контрагенты.
Этап = "Начальная инициализация"; АктТранз = 0; Ном=0; Этап = "Открытие ИБ"; MyTrans = СоздатьОбъект("V77.Application"); ПутьКИБ = "\\тралала\"; Сообщить("Открытие ИБ: "+"("+ПутьКИБ+")..."); Ok = MyTrans.Initialize(MyTrans.RMTrade,"/D"+СокрЛП(ПутьКИБ)+" /Ntest8 /P03081980", "NO_SPLASH_SHOW"); Сообщить(?((Ok=-1),"ИБ : открыта.","Ошибка открытия ИБ:")); ВКонтра = MyTrans.CreateObject("Справочник.Контрагенты"); ТекРодитель = СоздатьОбъект("Справочник.Контрагенты"); ТекРОД = СоздатьОбъект("Справочник.Контрагенты"); ТекТовар = СоздатьОбъект("Справочник.Контрагенты"); Ном=0; АктТранз = 1; ВКонтра.ВыбратьЭлементы(); Пока ВКонтра.ПолучитьЭлемент()=1 Цикл Если (ВКонтра.ЭтоГруппа()=1) или (ВКонтра.ПометкаУдаления()=1) или (ВКонтра.Уровень()=1) Тогда Продолжить; КонецЕсли; Если Найти(ВКонтра.ПолноеНаименование(),"Покупатели и комиссионеры") = 0 Тогда Продолжить; КонецЕсли; Если ТекРодитель.НайтиПоРеквизиту("GUID",ВКонтра.Родитель.GUID,1)=1 Тогда Если ТекРОД.НайтиПоРеквизиту("GUID",ВКонтра.GUID,1)=0 Тогда ТекТовар.Новый(); ТекТовар.Родитель = ТекРодитель.ТекущийЭлемент(); ТекТовар.GUID = ВКонтра.GUID; ТекТовар.Наименование = ВКонтра.Наименование; ТекТовар.Записать(); КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
1
ЗЫ5
06.06.12
✎
19:46
|
Вопрос как прикрутить сюда кусок этого кода обход по реквизитам
кфгСпрСотр = Метаданные.Справочник("Контрагенты"); КолвоРеквизитов = кфгСпрСотр.Реквизит(); Для Ном=1 to КолвоРеквизитов Цикл кфгРекв = кфгСпрСотр.Реквизит(Ном); Идентификатор = кфгРекв.Идентификатор(); ПолныйИдентификатор = кфгРекв.ПолныйИдентификатор(); Синоним = кфгРекв.Синоним(); Комментарий = кфгРекв.Комментарий(); Тип = кфгРекв.Тип(); //"Строка", "Число", "Справочник" Вид = кфгРекв.Вид(); //напр. "Сотрудники" Длина = кфгРекв.Длина(); Точность = кфгРекв.Точность(); Периодический = кфгРекв.Периодический(); КонецЦикла; |
|||
2
ЗЫ5
06.06.12
✎
19:48
|
Т.е вопрос как фактически прочитать метаданные реквизитов определенного элемента справочник через ОЛЕ?
|
|||
3
Креатив
07.06.12
✎
06:48
|
(2) MyTransМетаданные.Справочник("Контрагенты") не прокатывает?
А по опыту работы с ОЛЕ могу предложить другую методику. Пишешь нормальный отчёт, который выдаёт в СЗ или ТЗ все данные, которые тебе нужны. Открываешь его по ОЛЕ модально, передаёшь туда необходимые параметры. Пользуешься полученными данными. |
|||
4
smaharbA
07.06.12
✎
06:54
|
(2) так же как и не оле
|
|||
5
ЧеловекДуши
07.06.12
✎
07:36
|
(2)Только если ты будешь читать на строне ОЛЕ
Примерно так: ИБПр.глУсловие11 = "ПоступлениеМатериалов"; ИБПр.ExecuteBatch("глУсловие12 = Метаданные.Документ(глУсловие11).ДлинаНомера;"); ДлинНомПМ = Число(ИБПр.глУсловие12); |
|||
6
smaharbA
07.06.12
✎
09:05
|
(5) это чо за фигня ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |