|
Запрос через Com | ☑ | ||
---|---|---|---|---|
0
Dark_Warrior
24.10.14
✎
09:03
|
Всем доброго дня. Подскажите, пожалуйста, как из запроса через com-соединение с другой базой получить некоторые реквизиты ТЧ объекта (документ)? Знаю что по COM можно передавать только простые типы данных, собственно они мне и нужны.
Коннект = Соединение.NewObject("Запрос"); Коннект.Текст = "ВЫБРАТЬ | ВедомостьНаВыплатуЗарплатыПеречислением.Зарплата.( | Сотрудник.Наименование, | КВыплате, | БанковскийСчет.Наименование | ), | ВедомостьНаВыплатуЗарплатыПеречислением.Ссылка |ИЗ | Документ.ВедомостьНаВыплатуЗарплатыПеречислением КАК ВедомостьНаВыплатуЗарплатыПеречислением |ГДЕ | ВедомостьНаВыплатуЗарплатыПеречислением.Дата МЕЖДУ &ДатаНач И &ДатаКон"; Коннект.УстановитьПараметр("ДатаНач",Объект.ДатаНач); Коннект.УстановитьПараметр("ДатаКон",КонецДня(Объект.ДатаКон)); Результат = Коннект.Выполнить(); Выборка = Результат.Выбрать(); По результатам выборки удалось получить только наименования колонок. Платформа 8.3.5.1186, базы бух3.0 и зуп3.0. |
|||
1
Smallrat
24.10.14
✎
09:57
|
дык - там же группировка - после выборки надо еще раз выборку делать.
Почему не написать
|
|||
2
Smallrat
24.10.14
✎
09:58
|
|ВедомостьНаВыплатуЗарплатыПеречислениемЗарплата.ВедомостьНаВыплатуЗарплатыПеречислением.Ссылка ->
|ВедомостьНаВыплатуЗарплатыПеречислениемЗарплата.Ссылка |
|||
3
Dark_Warrior
24.10.14
✎
10:42
|
(1) (2) Все равно имя колонки ТЧ получается
|
|||
4
Dark_Warrior
24.10.14
✎
10:43
|
||||
5
Smallrat
24.10.14
✎
10:49
|
что говорит Результат.Количество() ?
|
|||
6
Smallrat
24.10.14
✎
10:50
|
упс Результат.Выгрузить().Количество()
|
|||
7
Dark_Warrior
24.10.14
✎
10:51
|
(6) (5) Правильное количество документов.
|
|||
8
Smallrat
24.10.14
✎
10:52
|
Что-то я нагнал с табчастью - я почему то подумал про выборку реквизитов для документа, а там же период - так что там надо сгруппировать по ссылкам.
Потом делать вложенные выборки |
|||
9
Smallrat
24.10.14
✎
10:53
|
Попробуй в первоначальном варианте запроса:
Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Ссылка = Выборка.Ссылка; ВыборкаВложенная = Выборка.Выбрать() Пока ВыборкаВложенная .Следующий() Цикл |
|||
10
Dark_Warrior
24.10.14
✎
11:31
|
(9) Хм... Метод объекта не обнаружен, говорит. Если вместо Выбрать() указать Select(), то просто ничего не происходит.
http://i017.radikal.ru/1410/16/ca4479ee990b.jpg |
|||
11
Smallrat
24.10.14
✎
11:45
|
все время про группировки путаюсь, сорри((
в (9) ВыборкаВложенная = Выборка.Зарплата.Выбрать() |
|||
12
hhhh
24.10.14
✎
11:48
|
(11) Следующий() забыл. Ну сколько тебе можно напоминать? Запиши где-нибудь на ладони. После Выбрать() обязательно следующей строчкой Следующий().
|
|||
13
Chai Nic
24.10.14
✎
11:49
|
Классический костыль:
ТабЗапроса=ЗначениеИзСтрокиВнутр(Соединение.ЗначениеВСтрокуВнутр(Коннект.Выполнить().Выгрузить()); |
|||
14
Dark_Warrior
24.10.14
✎
11:50
|
(12) ВыборкаВложенная.Следующий() ?
|
|||
15
Dark_Warrior
24.10.14
✎
11:52
|
+ (14) дальше цикл
ВыборкаВложенная = Выборка.Зарплата.Выбрать(); Пока ВыборкаВложенная.Следующий() Цикл |
|||
16
hhhh
24.10.14
✎
11:53
|
(11) извиняюсь, это не вам (12), а автору.
|
|||
17
Smallrat
24.10.14
✎
11:53
|
(12) вроде в (9) с учётом (11) всё есть
|
|||
18
Dark_Warrior
24.10.14
✎
11:54
|
(16) Я имел в виду тоже самое, что и (17) =)
|
|||
19
hhhh
24.10.14
✎
11:56
|
(18) точка останова где стоит? На какой строчке?
|
|||
20
Dark_Warrior
24.10.14
✎
11:57
|
(19) (17) Все получилось, нужные реквизиты попадают в базу-приемник. Огромное спасибо за помощь!
|
|||
21
Chai Nic
24.10.14
✎
11:58
|
(18) А потом у вас поплывут копейки.. )
Не заморачивайтесь с получением реквизитов через com, кидайте всю таблицу целиком сериализацией в строку как в (13) - проблем меньше будет! |
|||
22
Dark_Warrior
24.10.14
✎
12:10
|
(21) Рассмотрю вариант, спасибо)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |