Имя: Пароль:
1C
1С v8
Помогите с com соединением.
0 rchervak
 
29.08.11
12:32
Помогите с com соединением.
Подключился к удаленной базе по сом соединению. Теперь вытаскиваю из нее запросами документы, все работает отлично. Но вот никак не могу реализовать отбор документов по контрагенту например. Вывел на форме обработки "поле ввода" - тип список значений. Так вот хочу чтобы при нажатии на него появился список из всех контрагентов удаленной базы, с возможностью выбора.

вот запрос на контрагентов из удаленной базы:
запрос срабатывает, таблица значений заполняется контрагентами, а вот каким образом вывести эту таблицу для выбора пользователю - никак не пойму..


Запрос = connection.NewObject("Запрос");
Запрос.Текст = "ВЫБРАТЬ
              |    Контрагенты.Ссылка как ссылка,
              |    Контрагенты.Наименование как наименование,
              |    Контрагенты.Код как код
              |ИЗ
              |    Справочник.Контрагенты КАК Контрагенты";
             
Выборка = Запрос.Выполнить().Выбрать();

ТзКонтрагенты = connection.NewObject("ТаблицаЗначений");
ТзКонтрагенты.Колонки.Добавить("Наименование");
ТзКонтрагенты.Колонки.Добавить("Код");
ТзКонтрагенты.Колонки.Добавить("Ссылка");


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

//- не срабатывает... как правильно написать не знаю..
ЭлементыФормы.Контрагент.СписокВыбора.ЗагрузитьЗначения(ТзКонтрагенты);

КонецПроцедуры
1 butterbean
 
29.08.11
12:34
ТзКонтрагенты = Новый ТаблицаЗначений;
2 butterbean
 
29.08.11
12:34
(1)+ ну и без ссылки конечно
3 rchervak
 
29.08.11
12:35
(2) ТзКонтрагенты = connection.NewObject("ТаблицаЗначений");
4 rchervak
 
29.08.11
12:37
(3)это ведь и так уже таблица значений.
5 butterbean
 
29.08.11
12:38
(4) это она "там" таблица значений, а "здесь" это COMОбъкет, и кстати в список значений можно только из массива грузить
6 zbv
 
29.08.11
12:38
нормально так в список значений пихать таблицу значений, да еще таблицу значений из другой базы...
7 izekia
 
29.08.11
12:38
(4) в твоем случае это комобъект, который не может быть использован в методе "ЗагрузитьЗначения"
8 butterbean
 
29.08.11
12:39
(5)+ так что тебе проще заполнять список прям в цикле обхода выборки результата запроса
9 rchervak
 
29.08.11
12:44
Пока Выборка.Следующий() Цикл
   
ЭлементыФормы.Контрагент.СписокВыбора.ДоступныеЗначения.Добавить(Выборка.Наименование);

КонецЦикла;

не выходит - ошибка:
{Форма.Форма.Форма(730)}: Значение не является значением объектного типа (Добавить)
ЭлементыФормы.Контрагент.СписокВыбора.ДоступныеЗначения.Добавить(Выборка.Наименование);
10 zbv
 
29.08.11
12:44
ДоступныеЗначения - убери
11 rchervak
 
29.08.11
12:46
ЭлементыФормы.Покупатель.СписокВыбора.Добавить(Выборка.Наименование);

попробывал вот так, ошибки нет. но и при открытии формы перед пользователем там ничего нету
12 zbv
 
29.08.11
12:52
(11) погоди.. у тебя отбор на список значений или на одного контрагента должен быть ?
13 rchervak
 
29.08.11
12:54
(12)на одного, но того которого выберет пользователь из списка
14 rchervak
 
29.08.11
12:54
при нажатии на "ПОЛЕ ВВОДА" - должно появится окно со всеми контрагентами удаленной базы.
15 zbv
 
29.08.11
13:00
(13) большой список получится.

Если делать, через СписокВыбора, то тип поля должен быть "Строка" (для твоего случая) и должна быть кнопка "выборизсписка".