Версия для печати темы (https://pro1c.org.ua/index.php?s=ec768c392def619ca8fe26bc9df4b260&showtopic=40193)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ сом соединение между базами 1С 8.3

Автор: salton 12.09.17, 15:18

Добрый день!

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

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


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

зы. Запрос не предлагать - нужен список именно через простую выборку...

Автор: podcast 12.09.17, 15:31

salton @ Сегодня, 16:18 * ,
Чему равняется МестаХранения у вас, у них тип не строка?

Автор: salton 12.09.17, 16:12

Цитата(podcast @ 12.09.17, 16:31) *
salton @ Сегодня, 16:18 ,
Чему равняется МестаХранения у вас, у них тип не строка?


Не совсем понял вопрос... Мне очень хотелось бы, чтобы у
МестаХранения = Подключение.Справочники.МестаХранения;
тип был не строка. Мне нужен сам объект - справочник, из которого, я потом достану все что мне нужно...

Автор: podcast 12.09.17, 16:25

salton @ Сегодня, 17:12 * ,
В Отладке поставить точку останова, и посмотрите какой тип, скорей всего там строка.

Автор: salton 12.09.17, 16:34

Я по ходу чего-то не допонимаю.... почему

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


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

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

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

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

Автор: logist 12.09.17, 17:59

Цитата(salton @ 12.09.17, 17:34) *
данная ситуация затрагивает только справочник "МестаХранения"

А теперь внимательно посмотрите на код с ТМЦ и с Местами хранения wink.gif

Автор: хакерок 12.09.17, 22:15

Цитата(salton @ 12.09.17, 16:18) *
Ошибка: "Метод объекта не обнаружен (Следующий)"

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

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

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

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

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





Автор: salton 13.09.17, 7:29

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

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

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

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


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

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

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

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


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

и

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

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

Если не тяжело ткните носом - я точно чего-то упустил (скорее не знаю).

Автор: Petre 13.09.17, 8:13

salton @ Сегодня, 8:29 * ,
Первый вариант у вас:

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

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

Первый - ошибочный. А как ругается во втором?

Автор: salton 13.09.17, 9:35

Petre @ Сегодня, 9:13 * ,
Не ругается никак - но в выборку попадает 0 элементов.

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua