Имя: Пароль:
1C
1С v8
Запрос com к другой базе
,
0 Gossar1C
 
20.02.15
14:33
Здравствуйте. Не могу понять почему не записывает в табличную часть строки из запроса. Хотя по сообщениям видно что строки присутствуют.

Действие выполняю в модуле объекта.

ОбъектПодключения = ПодключитсяКИнформационнойБазе(СтруктураПодключения);
    
    //Попытка
    ЗапросCOM = ОбъектПодключения.NewObject("Запрос");;
    ЗапросCOM.Текст ="ВЫБРАТЬ
                  |    Номенклатура.Наименование
                  |ИЗ
                  |    Справочник.Номенклатура КАК Номенклатура
                  |ГДЕ
                  |    Номенклатура.ЭтоГруппа = Истина";
                  
    Результат = ЗапросCOM.Выполнить();
    
    НоменклатураТР = Результат.Выгрузить();
    

    Для Каждого Элем Из НоменклатураТР Цикл
        НоваяСтрока = ЭтотОбъект.Номенклатура.Добавить();
        НоваяСтрока.Наименование = Элем.Наименование;
        Сообщить(Элем.Наименование);
    КонецЦикла;
1 rabbidX
 
20.02.15
14:35
ЭтотОбъект.Записать()
2 Gossar1C
 
20.02.15
14:36
(1) это внешняя обработка, я пробовал обращаться как напрямую:
НоваяСтрока = Номенклатура.Добавить();
так и через этотобъект
3 Stim
 
20.02.15
14:40
ты не пытаешь записать строку в реквизит с типом Справочник.Номенклатура?
4 Gossar1C
 
20.02.15
14:40
(3) нет, тип стоит строка, неограниченной длинны
5 rabbidX
 
20.02.15
14:40
Отладчиком смотрел? При прохождении цикла ЭтотОбъект.Номенклатура.Количество() меняется?
Может, на форме не отображается просто.
6 Grrrr
 
20.02.15
14:41
НоменклатураТР - какой тип? com-объект?
7 Gossar1C
 
20.02.15
14:42
(6) получается что да если мы создаем com объект Запроса. Если просто смотреть что такое Элем - то это com-объект.
8 Grrrr
 
20.02.15
14:42
тогда что ты перебираешь?
9 Stim
 
20.02.15
14:43
"Если просто смотреть что такое Элем - то это com-объект."


мдааа.
тогда используй хотя бы
НоваяСтрока.Наименование = XMLСтрока(Элем.Наименование);
10 rabbidX
 
20.02.15
14:44
А Элем.Наименование - строка?
11 Gossar1C
 
20.02.15
14:44
(8) значение строки ком объекта к примеру "Лопаты" я вижу что он передает.
12 Gossar1C
 
20.02.15
14:45
(5) спасибо, не додумался глянуть по количеству. Действительно с отображением что-то. Хотя по элементам обновлял.
13 Grrrr
 
20.02.15
14:45
верное тебе говорят, ссылки ты там не вытащишь. Наименование - легко.
14 SleepyHead
 
гуру
20.02.15
14:46
КД пользоваться коран запрещает?
15 Gossar1C
 
20.02.15
14:47
(14) нафига мне КД? мне нужно получить наглядные список групп номенклатуры из другой базы.
16 Grrrr
 
20.02.15
14:47
попробуй Пока выборка сделующий..., а не выгрузить и для каждого.
17 SleepyHead
 
гуру
20.02.15
14:48
(15) Вижу, что пишешь в какой-то объект в табличную. Зачем изобретать велосипед, если можно быстро сделать имеющимся и работающим инструментом?
18 Grrrr
 
20.02.15
14:49
...оменклатураТР = Результат.Выбрать();
    

    Пока НоменклатураТР.Следубщий() Цикл
        НоваяСтрока = ЭтотОбъект.Номенклатура.Добавить();
        НоваяСтрока.Наименование = Элем.Наименование;
        Сообщить(Элем.Наименование);
    КонецЦикла;
19 Stim
 
20.02.15
14:50
(18)это называется "как создать трудности самому себе на ровном месте"
20 Gossar1C
 
20.02.15
14:51
(18) по сообщению вижу что таблица не пустая, которую заполняю, значит что-то с отображением данных, смотрю сейчас в чем дело
21 Stim
 
20.02.15
14:52
(20) проблема не с отображением, а с несовпадением типов
22 Grrrr
 
20.02.15
14:54
(21) Тип "Наименование" строка, это очевидно. И пишет он в наименование. Просто он выгружает ком-объект, чего в этом случае делать не надо.
23 Gossar1C
 
20.02.15
14:55
(21) проблема в том что я не перегнал значение в реквизит формы, реквизит в значение перегнал, а обратно нет. Всем спасибо!
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший