Помощь - Поиск - Пользователи - Календарь
Полная версия: Перекачка данных из одной базы 1С8.1 в другую
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Обмен данными
Vika
Здравствуйте!
Подскажите пожалуйста.
Мне нужно взять данные из одной базы 1С 8.1 в другую тоже 1С 8.1.
Соединяюсь через V81.ComConnector. Все соединяется нормально и возвращается ComОбъект.
Мне нужно вытащить данные из регистра сведений.
Пишу так:
Результат=ComОбъект;
Ставки=Результат.РегистрСведений.СтавкиПошлин.Выбрать();
Пока Ставки.Следующий() Цикл
ВидПошлины=Ставки.ВидПошлин; //Это перечисление, показывает как ComОбъект
КонецЦикла;
Как мне посмотреть значение этого перечисления? ВидПошлины.Выбрать()? Пишет ошибку.
Помогите. заранее благодарна.
Senya
Цитата(Vika @ 18.11.2008, 16:41) *


Код
Результат=ComОбъект;
Ставки=Результат.РегистрСведений.СтавкиПошлин.Выбрать();
Пока Ставки.Следующий() Цикл
ВидПошлины=Ставки.ВидПошлин; //Это перечисление, показывает как ComОбъект
КонецЦикла
;
Как мне посмотреть значение этого перечисления? ВидПошлины.Выбрать()? Пишет ошибку.
Помогите. заранее благодарна.

Дело в том, что при таком соединении нельзя напрямую работать с данными ссылочного типа. Поэтому мы обычно работаем через наименования. В Вашем случае можно сделать например так:

Код
Если Ставки.ВидПошлин.Метаданные().Имя = "<какя-то строка>" Тогда
ВидПошлины = Перечисления.<Имя перечисления>.<Значение перечисления>;
ИначеЕсли ... Тогда
// Другое значение перечисления
КонецЕсли;

Или работать с метаданными, например как-то так
Код
ВидПошлины = Перечисления.<Имя перечисления>.Метаданные()[Ставки.ВидПошлин.Метаданные().Имя];

Постмотрите отладчиком, какие реквизиты есть у обрабатываемого ComОбъекта, навскидку не помню - Имя или наименование, а может представление. У справочника точно наименование. Нужно экспериментировать.
Успехов


Vika
Спасибо Вам за ответ!
Но вот , к сожалению не получается.
Вот этот вариант - не подходит
_____________________________________________________
[quote name='Senya' date='19.11.2008, 10:37' post='45063']
Дело в том, что при таком соединении нельзя напрямую работать с данными ссылочного типа. Поэтому мы обычно работаем через наименования. В Вашем случае можно сделать например так:

Код
Если Ставки.ВидПошлин.Метаданные().Имя = "" Тогда
ВидПошлины = Перечисления.<Имя перечисления>.<Значение перечисления>;
ИначеЕсли ... Тогда
// Другое значение перечисления
КонецЕсли;


_______________________________________________________
т к Ставки.ВидПошлин.Метаданные().Имя - это имя Перечисления для Ставки.ВидПошлин , оно мне известно, мне нужно значение перечисления. То что это перечисление называется "СтавкиПошлин" я знаю, там 3 значения - адвалорная, специальная и комбинированная И мне нужно узнать, какое значение этой ставки в регистре.

Вот это, увы, не работает - выдает ошибку : [Ставки.ВидПошлин.Метаданные().имя] -пишет нет такого свойства.
ВидПошлины = Перечисления.<Имя перечисления>.Метаданные()[Ставки.ВидПошлин.Метаданные().Имя];

А может Вы подскажите, как через ComОбъект V81ComConnector заслать запрос к базе?
У меня две базы 8.1 и мне надо из одной базы вытаскивать данные в другую.
Вот так соединяюсь:
V81 = Новый COMОбъект("V81.ComConnector");
Открытие=V81.Connect(СтрокаПодключения);
Возвращает Открытие как ComОбъект и я обращаюсь к объектам через Открытие, типа
Менеджер Документов=Открытие.Документы;
А как выполнить запрос через такой ComОбъект?
Заранее благодарна.

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2009 Invision Power Services, Inc.