Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: сом соединение между базами 1С 8.3
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
salton
Добрый день!

Возникла такая необходимость:
- установить сом соединение между базами (выполнено)
- получить перечень складов
- получить перечень документов
- загрузить документы

База = Новый COMОбъект("V83.COMConnector");
        СтрокаСоединения = "тра-та-та";
        Попытка
            Подключение = База.Connect(СтрокаСоединения);
            Сообщить("Удалось подключиться к базе");
        Исключение
            Сообщить("Не удалось подключиться к базе" + ОписаниеОшибки());
        КонецПопытки;
        ВидыСкладов = Новый СписокЗначений;    
        МестаХранения = Подключение.Справочники.МестаХранения;  
        МестаХранения.Выбрать();
        Пока МестаХранения.Следующий() Цикл
            спр= МестаХранения.ПолучитьОбъект();
        КонецЦикла;


И вот уже на данном этапе я не могу получить склады... Ошибка: "Метод объекта не обнаружен (Следующий)"

зы. Запрос не предлагать - нужен список именно через простую выборку...
podcast
salton @ Сегодня, 16:18 необходимо зарегистрироваться для просмотра ссылки ,
Чему равняется МестаХранения у вас, у них тип не строка?
salton
Цитата(podcast @ 12.09.17, 16:31) необходимо зарегистрироваться для просмотра ссылки
salton @ Сегодня, 16:18 ,
Чему равняется МестаХранения у вас, у них тип не строка?


Не совсем понял вопрос... Мне очень хотелось бы, чтобы у
МестаХранения = Подключение.Справочники.МестаХранения;
тип был не строка. Мне нужен сам объект - справочник, из которого, я потом достану все что мне нужно...
podcast
salton @ Сегодня, 17:12 необходимо зарегистрироваться для просмотра ссылки ,
В Отладке поставить точку останова, и посмотрите какой тип, скорей всего там строка.
salton
Я по ходу чего-то не допонимаю.... почему

ТМЦ= Подключение.Справочники.Номенклатура;
Выборка = ТМЦ.Выбрать();
Пока Выборка.Следующий() Цикл
    Наименование = Выборка.Наименование;
КонецЦикла;


работает, а тот же код но с складами - нет?

Цитата(podcast @ 12.09.17, 17:25) необходимо зарегистрироваться для просмотра ссылки
salton @ Сегодня, 17:12 ,
В Отладке поставить точку останова, и посмотрите какой тип, скорей всего там строка.

тип - естественно - сом-объект...

данная ситуация затрагивает только справочник "МестаХранения" (УТП 1.2.43.1).
Элементы любых других справочников я получаю...
logist
Цитата(salton @ 12.09.17, 17:34) необходимо зарегистрироваться для просмотра ссылки
данная ситуация затрагивает только справочник "МестаХранения"

А теперь внимательно посмотрите на код с ТМЦ и с Местами хранения wink.gif
хакерок
Цитата(salton @ 12.09.17, 16:18) необходимо зарегистрироваться для просмотра ссылки
Ошибка: "Метод объекта не обнаружен (Следующий)"

Значить в МестаХранения; храниться не Объект.Справочник.Ссылка

может стоит начать с простого в базе к которой подключаешься попробуйте

Выборка = МестаХранения.Выбрать();
и посмотреть что выбирается.

Может стоит использовал ВнешниеИсточникиДанных.

Сразу Вам и склады и документы.




salton
Цитата(хакерок @ 12.09.17, 23:15) необходимо зарегистрироваться для просмотра ссылки
Значить в МестаХранения; храниться не Объект.Справочник.Ссылка

судя по всему - да...

Цитата(хакерок @ 12.09.17, 23:15) необходимо зарегистрироваться для просмотра ссылки
может стоит начать с простого в базе к которой подключаешься попробуйте

Выборка = МестаХранения.Выбрать();
и посмотреть что выбирается.


к сожалению - ничего - СправочникМенеджер.МестаХранения
И дальше я ничего не могу получить...

Цитата(хакерок @ 12.09.17, 23:15) необходимо зарегистрироваться для просмотра ссылки
Может стоит использовал ВнешниеИсточникиДанных.

Может... но задача - получить объект - справочники.местахранения через сом....

Цитата(logist @ 12.09.17, 18:59) необходимо зарегистрироваться для просмотра ссылки
А теперь внимательно посмотрите на код с ТМЦ и с Местами хранения


ТМЦ= Подключение.Справочники.Номенклатура;
Выборка = ТМЦ.Выбрать();
Пока Выборка.Следующий() Цикл
    Наименование = Выборка.Наименование;
КонецЦикла;

и

Склад= Подключение.Справочники.МестаХранения;
Выборка = Склад.Выбрать();
Пока Выборка.Следующий() Цикл
    Наименование = Выборка.Наименование;
КонецЦикла;

Первый работает. Второй нет...

Если не тяжело ткните носом - я точно чего-то упустил (скорее не знаю).
Petre
salton @ Сегодня, 8:29 необходимо зарегистрироваться для просмотра ссылки ,
Первый вариант у вас:
Склад.Выбрать(); 
Пока Склад.Следующий() Цикл

А второй:
Выборка = Склад.Выбрать(); 
Пока Выборка.Следующий() Цикл

Первый - ошибочный. А как ругается во втором?
salton
Petre @ Сегодня, 9:13 необходимо зарегистрироваться для просмотра ссылки ,
Не ругается никак - но в выборку попадает 0 элементов.

Я разобрался по сути - справочник - "МестаХранения" - подчинен справочнику "Склады" (УТП 1.2.43.1). Поэтому просто выборка без указания владельца и давала чепуху.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.