Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 13:45

Подключение к другой базе через Com соединение

Автор Pasha26, 30 ноя 2014, 18:28

0 Пользователей и 1 гость просматривают эту тему.

Pasha26

Привет всем. Начал Разбираться с Com соединением и че то до конца не разберусь. Начал с того что решил попробовать вытащить из другой базы бухгалтерии элемент справочника Номенклатура.

ПутьКБазе = "E:\БАЗЫ\Бухгалтерия";
   ИмяПользователя = "111";
   Пароль = "123";
   
   V82 = Новый COMобъект("V82.ComConnector");
   СтрокаСоединения = "File = '" +ПутьКБазе+"'; Usr = '" + ИмяПользователя+"'; Pwd = '"+Пароль+"'";
   
   Попытка
      Подключение = V82.Connect(СтрокаСоединения);
      Сообщить("Есть контакт");
   Исключение
      Сообщение = Новый СообщениеПользователю;
      Сообщение.Текст = "Не удалось подключиться к базе" + ОписаниеОшибки();
      Сообщение.Сообщить();
   КонецПопытки;
   
   
Запрос = Подключение.NewObject("Запрос");
Запрос.Текст = 
      "ВЫБРАТЬ
      |   Номенклатура.Код,
      |   Номенклатура.Наименование,
      |   Номенклатура.НаименованиеПолное,
      |   Номенклатура.БазоваяЕдиницаИзмерения,
      |   Номенклатура.СтавкаНДС
      |ИЗ
      |   Справочник.Номенклатура КАК Номенклатура";

   РезультатЗапроса = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Проблема в том что при обработке результатов запроса единица измерения и Ндс имеют тип значения ComОбъект, с остальными реквизитами все ок. Так почему же так происходит и что делать?

дфтын

А вы читайте,или в запрос добавьте .Ссылка

Pasha26

Добавил .Ссылка получилось в запросе:
    |   Номенклатура.БазоваяЕдиницаИзмерения.Ссылка,
    |   Номенклатура.СтавкаНДС.Ссылка
а в переменных:
    Ед = ВыборкаДетальныеЗаписи.БазоваяЕдиницаИзмеренияRef.Description;
    Ндс = ВыборкаДетальныеЗаписи.СтавкаНДСRef;

После чего единицу измерения стал получать с ней все ок, а Ндс по прежнему ComОбъект


cska-fanat-kz

ссылочные типы видны "снаружи" исключительно как КОМОбъект.
получайте от них поля номера, кода или наименования...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Pasha26

Цитата: cska-fanat-kz от 02 дек 2014, 08:44
ссылочные типы видны "снаружи" исключительно как КОМОбъект.
получайте от них поля номера, кода или наименования...
Подскажите пожалуйста как именно. Если я в бухгалтерии открываю конструктор и смотрю номенклатуру то у Ндс есть только Ссылка и Порядок. Если выбираю Ссылку и смотрю результат при отладке то СтавкаНДСRef  имеет два свойства IsEmpty и Metadata значение у которых "Ошибка чтения значения".
Если выбираю Порядок то получаю СтавкаНДСOrder со значением 5.

cska-fanat-kz

Это значит что СтавкаНДС - ПеречислениеСсылка.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Pasha26

Что то я не как не пойму как его получить то:(

cska-fanat-kz

чисто как вариант...
а если вместо
|   Номенклатура.СтавкаНДС
применить
|   Представление(Номенклатура.СтавкаНДС)
или
|   ПредставлениеСсылки(Номенклатура.СтавкаНДС)
??
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Sinsinmin

Для СсылокСправочника, документов и прочего...где есть код...пишите Поле.Код. Конечно если код уникальный.
Для перечислений пишите Поле.Порядок. Потом получайте поле в базе через поиск Перечисления по порядку.

Pasha26

Цитата: cska-fanat-kz от 04 дек 2014, 06:07
чисто как вариант...
а если вместо
|   Номенклатура.СтавкаНДС
применить
|   Представление(Номенклатура.СтавкаНДС)
или
|   ПредставлениеСсылки(Номенклатура.СтавкаНДС)
??

Спасибо, так работает.
Добавлено: 09 дек 2014, 01:13


А вот еще интересно, видел конфигурацию где выгрузка данных происходила через xml документ т.е. данные сначала из 2й базы выгружались в xml а потом загружались в 1ю. У этого способа есть какие-то преимущества или это просто кому как удобно?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск