Имя: Пароль:
1C
1C 7.7
v7: Не работает запрос по оле
0 totparen
 
22.11.12
10:32
Ребята, помогите разобраться, что не так. Пытаюсь сделать выборкку по запросу из одной базы к другой - нет выборки. Выполняю этот же запрос в базе к которой подключаюсь - всё ок.

Процедура Сформировать()
         
   Если ПодключитьБазу()=0 Тогда
       Возврат;
   КонецЕсли;

   Если (ПустоеЗначение(НачДата1) = 1)или(ПустоеЗначение(КонДата1) = 1) Тогда
       Предупреждение("Задайте период продаж во внешней базе!");
       Возврат;
   КонецЕсли;
               
   Запрос = БазаОле.CreateObject("Запрос");
   ТекстЗапроса =    "Период С '" + НачДата1 + "' По '" + КонДата1 + "';
                   |Товар = Регистр.Продажи.Товар;
                   |КодТовара = Регистр.Продажи.Товар.Код;
                   |Количество = Регистр.Продажи.Количество;
                   |Функция Остаток = Сумма (Количество);
                   |Группировка Товар;";

   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Предупреждение ("Ошибка в запросе к внешней базе!");
       Возврат;                              
   КонецЕсли;                                    

   Пока Запрос.Группировка(1) = 1 Цикл
       Сообщить(Запрос.КодТовара);
   КонецЦикла;

КонецПроцедуры
1 Ёпрст
 
22.11.12
10:36
в группировку то хоть заходит ?
2 totparen
 
22.11.12
10:41
(1) в смысле "заходит"?

При коде:

   Пока Запрос.Группировка(1) = 1 Цикл
       Сообщить("Код товара: " + Запрос.КодТовара);
   КонецЦикла;

Нет никаких сообщений.
3 Ёпрст
 
22.11.12
10:43
Ёпта..
  Пока Запрос.Группировка(1) = 1 Цикл
       Сообщить("Код товара: " + Запрос.Товар.Наименование);
   КонецЦикла;

унутрь цикла точку останова поставь, или проверочное сообщение.
4 Ёпрст
 
22.11.12
10:44
Ежели товар в регистре - неопределенного вида, то код его в запросе никогда ничего не вернёт, как там у тебя - хз.
5 totparen
 
22.11.12
10:47
(3) Дак явно не заходит в группировку, так как текст "Код товара:" не выводится на экран. Но на всяки случай проверил отладчиком...

(4) Товар в регистре опреределнный тип (Справочники.Товары)
6 Масянька
 
22.11.12
10:50
Извините, что вмешиваюсь, а ПодключитьБазу чему равно-то? Нет явной обработки неудачи подключения - может она (база) и не подключилась?
7 Ёпрст
 
22.11.12
10:55
+ чему равны НачДата и конДата ?
8 totparen
 
22.11.12
19:53
К сожалению, в самый "нужный" час слетел интернет на работе.

(6) Там всё в порядке. Код не приведу, но по смыслу 1- всё ок, 0 - не всё ок. Объявлена глобальная переменнная "БазаОле" через неё и создаётся запрос. Процедура работает без ошибок (синтаксических).

(7) НачДата и КонДата = реквизиты периода на форме, там всё в порядке. Я текст запроса выводил через "Сообщить" и запускал его в подключаемой базе руками. Всё отрабатывалось.

Не может быть ошибки из за платформы? Она 25-я.
9 Злопчинский
 
22.11.12
20:13
(8) сначал запусти олешную базу обычным образом, и добейся чтобы тыой запрос выводил результат... ;-)
10 Злопчинский
 
22.11.12
20:14
Сумма(Количество) - регистр оборотный..?
11 totparen
 
22.11.12
22:14
(9) Запрос результат выводит. Я об этом писал неоднократно.
12 Ёпрст
 
23.11.12
09:14
чудес не бывает.
Либо  регистр не оборотный, либо Товар-неопределенного вида в измерении, либо за выбранный период ничего нет, либо еще что
13 Масянька
 
23.11.12
09:32
(11) Ты сам писал, что "Пытаюсь сделать выборкку по запросу из одной базы к другой - нет выборки. Выполняю этот же запрос в базе к которой подключаюсь - всё ок." Логично подумать, что если в БД запрос работает, а при подключении к этой БД - нет, то что-то происходит при подключении? Попробуй, вставь проверку:
   Если ПодключитьБазу()=0 Тогда
      Сообщить("Не срослось.");
      Возврат;
   КонецЕсли;

И еще вопрос: 7.7 как установлена - как положено (Setup) или по-другому?