Имя: Пароль:
1C
1С v8
Оле соединение, помогите!
0 Tumakota
 
10.03.13
18:45
Как мне по оле соединению, передать ссылку! Подключаюсь с одной базы в другую по оле и создаю там элемент справочника номенклатуры, как мне заполнить группу

   Номенклатура = База.Справочники.Номенклатура.СоздатьЭлемент();
   Номенклатура.Артикул = ЭтотОбъект.Артикул;
   Номенклатура.БазоваяЕдиницаИзмерения = База.Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЭтотОбъект.БазоваяЕдиницаИзмерения.Наименование);
   Номенклатура.Импортер = ЭтотОбъект.Импортер;
   Номенклатура.Код = ЭтотОбъект.Код;
   Номенклатура.Комментарий = ЭтотОбъект.Комментарий;
   Номенклатура.Наименование = ЭтотОбъект.Наименование;
   Номенклатура.НаименованиеПолное = ЭтотОбъект.НаименованиеПолное;
   Номенклатура.НоменклатурнаяГруппа = База.Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(ЭтотОбъект.НоменклатурнаяГруппа.Наименование);
   Номенклатура.НомерГТД = База.Справочники.НомераГТД.НайтиПоНаименованию(ЭтотОбъект.НомерГТД.Наименование);
   Номенклатура.Производитель = База.Справочники.Контрагенты.НайтиПоНаименованию(ЭтотОбъект.Производитель.Наименование);
   Номенклатура.Родитель = База.Справочники.Номенклатура.НайтиПоНаименованию(ЭтотОбъект.Родитель);


вот в принципе код, но он не заполняет группу
1 Amra
 
10.03.13
18:50
Номенклатура.Родитель = База.Справочники.Номенклатура.НайтиПоНаименованию(ЭтотОбъект.Родитель.Наименование);
2 Tumakota
 
10.03.13
18:54
(1) Так пишу он мне пишет что родитель это Группа
3 Amra
 
10.03.13
19:19
(2) Чегось пишет, не понятно?
4 m-serg74
 
10.03.13
19:53
(2) [Номенклатура.Родитель = База.Справочники.Номенклатура.НайтиПоНаименованию(ЭтотОбъект.Родитель);]

нормально) может для начала в текущей базе его создать(или найти но наименованию полученному из ОЛЕ базы) не пробовали?
5 a_alenkin
 
10.03.13
19:54
а чу - у группы не может быть наименования?
может надо сначала создать группу чтоб потом ее найти?
А вообще для этого подходит типовой механизм обмена по правилам которые созданы с помощью КД
6 Torquader
 
10.03.13
20:57
Ссылка не ссылка, OLE не OLE.
В общем так, в каждой базе объект представляется через GUID.
То есть нужно сформировать строку гуид.
В нашей базе мы это можем сделать через Строка(Объект.УникальныйИдентификатор());
В OLE базе мы это сделаем через ТаБаза.String(ОбъектТойБазы.УникальныйИдентификатор());
То есть для любого использования мы имеем строку GUID.
Потом из неё легко создать GUID:
ГуидТам=ТаБаза.NewObject("УникальныйИдентификатор",СтрокаГуид);
А когда мы знаем гуид, мы можем сделать ссылку на объект:
ГруппаТам=ТаБаза.Справочники.Номенклатура.ПолучитьСсылку(ГуидТам);
Ну и после этого можно смело присваивать полученное значение куда угодно.
Программист всегда исправляет последнюю ошибку.