Имя: Пароль:
1C
1С v8
v8: Запрос табличной части через COM
,
0 piffoff
 
18.07.13
14:59
Подскажите пожайлуста как правильно выполнить запрос через ком
что бы потом можно было обработать таб часть документа
Мой запрос на данный момент таков, но с ТЧ потом работать не могу

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

1 Mitriy
 
18.07.13
15:00
а где ТЧ?
2 Maxus43
 
18.07.13
15:00
Выборка = Соединение.NewObject("ТаблицаЗначений");
       Выборка = Запрос.Выполнить().Выбрать();

это что?
3 kosts
 
18.07.13
15:01
(0) ТЧ можно через вложенную выборку получить. Либо сразу в запросе только ТЧ тянуть.
4 piffoff
 
18.07.13
15:05
(2) Запрос через COM к другой базе
Соединение = cntr.Connect("File="""+Путь+""";Usr=""" + Юзер + """; Pwd=""" + Пароль + """; ");

(1)ПиходныйКассовыйОрдер.РасшифровкаПлатежа

(3) а если как вложенный запрос сделать?
5 kosts
 
18.07.13
15:09
Не запрос, а выборку вложенную
Так или нет так, но что то в этом роде, не помню, жарко.

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
   Выборка1 = Выборка.РасшифровкаПлатежа.Выбрать();
   Пока Выборка1.Следующий() Цикл
6 Maxus43
 
18.07.13
15:11
(4) я спрашиваю зачем ТЗ создавать, а потом туда Выбрать(), туда выгрузить надо
7 Maxus43
 
18.07.13
15:11
запрос напрямую к ТЧ конечно ещё
8 piffoff
 
18.07.13
15:17
(6) В смысле вот так?

Выборка = Соединение.NewObject("ТаблицаЗначений");
Выборка = Запрос.Выполнить().Выбрать();
ТЧ = Выборка.РасшифровкаПлатежа.Выгрузить()
9 Mitriy
 
18.07.13
15:24
Если тебе нужно изменять ТЧ, то на фига вообще выборка? Работай с ТЧ.
10 piffoff
 
18.07.13
15:24
(5) Вот это сработало, спасибо
11 Mitriy
 
18.07.13
15:25
тьфу ты...
12 piffoff
 
18.07.13
15:26
(6) Нет я делаю обработку переноса документов через ком
ничего менять не надо, надо запросить и найти соответствие в текущей базе
13 Maxus43
 
18.07.13
15:43
(12) ещё раз - Выборка = Соединение.NewObject("ТаблицаЗначений");

абсолютно лишняя строка, она ничего не делает