Версия для печати темы (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)
данная ситуация затрагивает только справочник "МестаХранения"
А теперь внимательно посмотрите на код с ТМЦ и с Местами хранения
Автор: хакерок 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