Имя: Пароль:
1C
1C 7.7
v7: Выгрузка запроса в Оле базе в таблицу значений
,
0 1С-ница
 
13.11.14
14:25
Начало темы тут:
Запрос к базе 7.7 через Оле
(Почему то не дает ее дополнять)

Запрос выполняется, Запрос.КоличествоСтрок() показывает приличную цифру. При Выгрузке в таблицу значений она как будто состоит из ОЛе объектов. Как получить реальные данные из запроса?
Вот код:

Процедура ЗапросПоОказаниюУслуг(БазаОлЕ, Год)
    Перем ЗапросОле, ТекстЗапроса;
    
    ТекстЗапроса =
    |Период с '01.01.13' по '10.01.13';
    |ТекущийДокумент = Регистр.ОказаниеУслуг.ТекущийДокумент;
    |НомерДок = Регистр.ОказаниеУслуг.ТекущийДокумент.ДополнительныеУслугиПоФакту.НомерДок;
    |ДатаДок = Регистр.ОказаниеУслуг.ТекущийДокумент.ДополнительныеУслугиПоФакту.ДатаДок;
    |Гость = Регистр.ОказаниеУслуг.Гость;
    |Услуга = Регистр.ОказаниеУслуг.Услуга;
    |ДатаР = Регистр.ОказаниеУслуг.Гость.ДатаРождения;
    |Сумма = Регистр.ОказаниеУслуг.Сумма;
    |Функция РасхСумма = Расход(Сумма);
    |Функция ПрихСумма = Приход(Сумма);
    |Группировка Гость упорядочить по Гость.Наименование Без Групп;
    |Группировка Услуга Без Групп;
    |Условие (ТекущийДокумент.Вид()=""ДополнительныеУслугиПоФакту"");
    |"//}}ЗАПРОС
    ;
    
    ТЗОле=БазаОле.CreateObject("ТаблицаЗначений");
    
    ЗапросОле.Выполнить(ТекстЗапроса);
    
   ЗапросОле.Выгрузить(ТЗОле,3,0);
   ТЗОле.ВыбратьСТроку();
   ТЗОле.ВыбратьСтроки();
  
   Пока ЗапросОле.Группировка() = 1 Цикл
         Сообщить("" +ЗапросОле);
    КонецЦикла;
  
    Сообщить("Количество строк: "+ТЗОле.КоличествоСтрок());
    
КонецПроцедуры
1 1С-ница
 
13.11.14
14:26
Сообщить("" +ЗапросОле);

При этом в сообщении пишется OLE
2 Looser-1c
 
13.11.14
14:27
..Гость.Наименование....
И т.д.
3 SleepyHead
 
гуру
13.11.14
14:27
Таблицу значений потом где использовать собираетесь, на стороне где был выполнен запрос или на стороне базы, которая выполнила запрос по оле?
4 Жан Пердежон
 
13.11.14
14:27
я правильно понимаю, ты хочешь, чтобы объекты чужой базы чудесным образом превратились в объекты твоей базы?
5 SleepyHead
 
гуру
13.11.14
14:28
(4) Фотка суперская кстати, все вопросы сразу отпали.
6 SleepyHead
 
гуру
13.11.14
14:29
(0) Создавайте таблицу в текущей базе и перетаскивайте в нее данные из запроса. Объекты Оле конвертируйте в строковые представления для отчета, числа в числа.
7 пипец
 
13.11.14
14:30
оле передает СТРОКУ ДАТУ ЧИСЛО
на етом фсйо
8 1С-ница
 
13.11.14
14:33
(4) нет, мне нужно собрать отчет по нескольким идентичным БД
9 1С-ница
 
13.11.14
14:35
(2) Гость.Наименование понятно, а ссылку на текущий документ как получить? по нему мне надо получить в базе Оле документ основание
10 SleepyHead
 
гуру
13.11.14
14:37
(9) вам еще и расшифровку что ли надо организовать?
11 1С-ница
 
13.11.14
14:38
(10) не поняла
12 Looser-1c
 
13.11.14
14:50
(9) нет никакой ссылки по оле.
13 пипец
 
13.11.14
15:03
(9) передавать номер и дату основания и искать по этим данным
14 dk
 
13.11.14
15:14
(12) надо уметь работать с ОЛЕй - все там есть
(9) поподробнее
---
ТЗОле.ВыбратьСтроки();
Пока ТЗОле.ПолучитьСтроку() > 0
   Сообщить(ТЗОле.ТекущийДокумент.ДокОСнование.НомерДок);
Независимо от того, куда вы едете — это в гору и против ветра!