Имя: Пароль:
1C
1С v8
запрос в com соединении
0 Bambr49
 
22.06.17
14:56
Пытаюсь через ком соединение взять остатки в соседней базе

Конектор = Новый COMОбъект("V83.COMConnector");
        Попытка
            ОсновнаяБаза = Конектор.Connect(Явкипароли);
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Успешно подключились к основной базе!")
        Исключение
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка подключения к основной базе!");
        КонецПопытки;
    Запрос = ОсновнаяБаза.NewObject("Запрос");
    Запрос.Текст = "
     |ВЫБРАТЬ
     |    СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
     |    СвободныеОстаткиОстатки.ВНаличииОстаток КАК Остаток
     |ИЗ
     |    РегистрНакопления.СвободныеОстатки.Остатки(&Дата,Номенклатура = &Номенк) КАК СвободныеОстаткиОстатки
     |ГДЕ
     |  СвободныеОстаткиОстатки.Склад = &Склад";
    Запрос.УстановитьПараметр("Дата",ТекущаяДата());
    Запрос.УстановитьПараметр("Номенклатура",НоменклатураОсновнойБазы);
    Запрос.УстановитьПараметр("Склад",СкладОсновнойБазы);
    Результат = ОсновнаяБаза.NewObject("ТаблицаЗначений");
    Результат = Запрос.Выполнить().Выгрузить();
    Пока Результат.Следующий() Цикл
        
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю("В основной базе "+Результат.Номенклатура+" в наличии " +Результат.Остаток);
        
    КонецЦикла;
1 Адский плющ
 
22.06.17
14:57
Похвально.
2 Bambr49
 
22.06.17
14:58
соединяет успешно,но ругается на параметр &склад

Произошла исключительная ситуация (1C:Enterprise 8.3.9.2170): {(8, 33)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
СвободныеОстаткиОстатки.Склад <<?>>= &Склад
3 Bambr49
 
22.06.17
14:59
параметр берется с реквизита формы,так же как и номенклатура...где не прав,подскажите??
4 youalex
 
22.06.17
15:03
СкладОсновнойБазы - это ссылка текущей базы или ком?
5 Bambr49
 
22.06.17
15:04
текущей и номенклатура-текущей
6 skafandr
 
22.06.17
15:04
COM сложные данные не понимает - строки,чила,даты. СкладОсновнойБазы и НоменклатураОсновнойБазы должны быть найдены в той той базе по наименованию или коду
7 Bambr49
 
22.06.17
15:06
(6) то ись сначала искать в основнойбазе ,а потом давать параметру?
8 Bambr49
 
22.06.17
15:06
базы идентичны полностью
9 ejikbeznojek
 
22.06.17
15:07
|ГДЕ
     |  СвободныеОстаткиОстатки.Склад.код = &КодСклада
10 Bambr49
 
22.06.17
15:08
(9) то есть ссылки нельзя передавать как параметры в данном случае?
11 Bambr49
 
22.06.17
15:09
(9) то есть цеплятся за код?наименование?
12 ejikbeznojek
 
22.06.17
15:10
(10) неа
(11) Ну если базы идентичны полностью, то да.
13 Cyberhawk
 
22.06.17
15:10
В качестве параметра СОМ-запроса должна быть СОМ-ссылка. Ссылка базы, из которой происходит СОМ-вызов, не прокатит, хоть одинаковые базы, хоть разные.
14 Bambr49
 
22.06.17
15:13
(13) спасибо,ясно..а текущуюдату() поймет ком запрос?
15 Неверный Параметр И
 
22.06.17
15:13

Результат = ОсновнаяБаза.NewObject("ТаблицаЗначений");
Результат = Запрос.Выполнить().Выгрузить();
Пока Результат.Следующий() Цикл

Это зачем?
16 Cyberhawk
 
22.06.17
15:15
(14) Хз, такое в голове не держу. Проверить-то просто.
17 Bambr49
 
22.06.17
15:15
(15) то есть тз можно и текущей базы использовать?
18 Неверный Параметр И
 
22.06.17
15:23
(17) Не стоит отвечать вопросом на вопрос, все равно неправильно.
Если ты хочешь использовать выборку, зачем ты создаешь таблицу значений?
Если ты хочешь использовать таблицу значений, то зачем ты используешь метод Следующий?
19 Bambr49
 
22.06.17
15:24
все понял,спасибо..работает..
20 Cyberhawk
 
22.06.17
15:33
Ты с 38 региона?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший