Имя: Пароль:
1C
1С v8
Объединение двух одинаковых таблиц.
0 Nykos
 
27.03.15
16:36
Первым запросом вытягиваю ТЗ из другой ИБ с помощью COM-подключения, вторым запросом вытягиваю ТЗ из текущей базы. Все поля в ТЗ идентичные. Как объединить результаты обеих запросов так, чтобы в сформированный отчет попали данные как из моей базы, так и из выгруженной? надо чтобы все было "в одной куче".

Заранее благодарен за ваши ответы.
1 shuhard
 
27.03.15
16:37
(0) ТЗ-ВТ-Объединить все
2 ДенисЧ
 
27.03.15
16:37
Запросом, разумеется
3 butterbean
 
27.03.15
16:39
(0) только не говори, что ТЗ ты сформировал на стороне подключенной базы, а не в своей
4 Nykos
 
27.03.15
16:40
(3) в своей
5 Nykos
 
27.03.15
16:42
(1) Извини, первый раз с этим сталкиваюсь, не мог бы ты подробнее объяснить?
6 BeerHelpsMeWin
 
27.03.15
16:45
поиск: как поместить таблицу значений в запрос
7 1976vas
 
27.03.15
16:47
(6) Не правильно. Как поместить таблицу значений в запрос 1с
8 DrShad
 
27.03.15
16:56
Запрос.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ ВТ ИЗ &ТЗ КАК ТЗ";
9 shuhard
 
27.03.15
17:35
(8) добрый ты однако =)
10 DrShad
 
27.03.15
17:45
(9) думаешь осилит?
11 shuhard
 
27.03.15
17:54
(10) вероятность процентов 15
12 Михаил Козлов
 
27.03.15
18:05
Лишь бы в ТЗ из другой ИБ не было COM-объектов.
13 Nykos
 
27.03.15
19:28
(10) (11) Толсто. Спасибо, уж лучше сам как-нибудь разберусь.
14 МихаилМ
 
27.03.15
19:30
здесь исследование методов обединения union
2 таблиц


http://forum.infostart.ru/forum86/topic118274/
15 Nykos
 
30.03.15
11:53
Запрос1 = ФилиальнаяБаза.NewObject("Запрос");
Запрос1.Текст = "
//тут запрос
ТЗ1 = Запрос1.Выполнить().Выбрать();
    
Запрос2 = Новый Запрос;
Запрос2.Текст = "
//тут запрос
ТЗ2 = Запрос2.Выполнить().Выбрать();
    

Запрос3 = Новый Запрос;
Запрос3.Текст = "
|ВЫБРАТЬ * ПОМЕСТИТЬ ТЗ1 ИЗ &ТЗ1 КАК ТЗ1;
|ВЫБРАТЬ * ПОМЕСТИТЬ ТЗ2 ИЗ &ТЗ2 КАК ТЗ2;
|ВЫБРАТЬ * ИЗ ТЗ1
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ * ИЗ ТЗ2";
Запрос3.УстановитьПараметр("ТЗ1", ТЗ1);
Запрос3.УстановитьПараметр("ТЗ2", ТЗ2);
ТЗ3 = Запрос3.Выполнить().Выбрать();


Текст запросов полностью одинаковый.
Ну ткните носом неграмотного, каюсь, не хватает серого вещества...

Как мне добиться результата ТЗ3 = ТЗ1+ТЗ2?
16 Cube
 
30.03.15
11:56
(15) Делай так:

ТЗ1 = Запрос1.Выполнить().ВЫГРУЗИТЬ();
17 Cube
 
30.03.15
11:57
Только ТЗ у тебя получится там, а не здесь...
18 Cube
 
30.03.15
11:58
Если будешь руками пересобирать ТЗ, то учти, что в запрос нужно сувать типизированную ТЗ. Посты (6) и (7) рекомендую к прочтению.
19 Nykos
 
30.03.15
11:58
(16) я пробовал с ВЫГРУЗИТЬ(); не получилось
(17) а почему там? местами поменять объединение? или вообще в принципе неверно сделал?
20 DrShad
 
30.03.15
11:58
(15) текст запросов покажи - вдруг там не примитивные типы?
21 DrShad
 
30.03.15
12:00
да и выборку нельзя использовать как источник для запроса
22 Nykos
 
30.03.15
12:00
(20)

    ЗапросЦ.Текст = "
    |ВЫБРАТЬ
    |    КнигаПокупокПоОтгрузкеТЧ.Ссылка КАК Док,
    |    КнигаПокупокПоОтгрузкеТЧ.СчетНДСКт КАК СчетНДСКт,
    |    КнигаПокупокПоОтгрузкеТЧ.Контрагент КАК Контрагент,
    |    КнигаПокупокПоОтгрузкеТЧ.ДокументПриобретения КАК ДокументПриобретения,
    |    КнигаПокупокПоОтгрузкеТЧ.СтавкаНДС КАК СтавкаНДС,
    |    КнигаПокупокПоОтгрузкеТЧ.СуммаНДС КАК СуммаНДС,
    |    КнигаПокупокПоОтгрузкеТЧ.СуммаБезНДС КАК СуммаБезНДС,
    |    КнигаПокупокПоОтгрузкеТЧ.СуммаСНДС КАК СуммаСНДС,
    |    КнигаПокупокПоОтгрузкеТЧ.Основание КАК Основание,
    |    КнигаПокупокПоОтгрузке.Номер КАК Номер,
    |    КнигаПокупокПоОтгрузке.Проведен КАК Проведен,
    |    КнигаПокупокПоОтгрузке.Владелец КАК Владелец,
    |    КнигаПокупокПоОтгрузке.Дата КАК Дата,
    |    КнигаПокупокПоОтгрузке.ВидКП КАК ВидКП,
    |    КнигаПокупокПоОтгрузкеТЧ.КодОперации КАК КодОперации,
    |    КнигаПокупокПоОтгрузкеТЧ.ДатаДляКП КАК ДатаДляКП
    |ИЗ
    |    Документ.КнигаПокупокПоОтгрузке.ТЧ КАК КнигаПокупокПоОтгрузкеТЧ
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.КнигаПокупокПоОтгрузке КАК КнигаПокупокПоОтгрузке
    |        ПО КнигаПокупокПоОтгрузкеТЧ.Ссылка = КнигаПокупокПоОтгрузке.Ссылка
    |ГДЕ
    |    КнигаПокупокПоОтгрузке.Проведен = ИСТИНА
    |    И КнигаПокупокПоОтгрузке.Дата МЕЖДУ &ДатаНач И &ДатаКон
    |    И КнигаПокупокПоОтгрузке.Владелец = &Владелец
    |    И КнигаПокупокПоОтгрузкеТЧ.СчетНДСКт В(&СчетНДС)
    |    И(КнигаПокупокПоОтгрузке.ВидКП = &ВидКП ИЛИ КнигаПокупокПоОтгрузке.ВидКП = &ВидКП2)
    |УПОРЯДОЧИТЬ ПО
    |    Контрагент
    |АВТОУПОРЯДОЧИВАНИЕ";
23 Nykos
 
30.03.15
12:01
(20) и в первом и втором запросе одинаковый текст
24 DrShad
 
30.03.15
12:02
(23) ну и к примеру вот здесь

КнигаПокупокПоОтгрузкеТЧ.Контрагент КАК Контрагент,

получишь OLEОбъект - какую информативную нагрузку несет данное значение?
25 Cube
 
30.03.15
12:05
(19) "а почему там?"
Потому что Запрос1 - это COMОбъект...
26 DrShad
 
30.03.15
12:07
имхо сериализуй результат запроса, потом собирай ТЗ на другой стороне и тогда юзай
27 Nykos
 
30.03.15
13:11
(25) а если я
|ВЫБРАТЬ * ИЗ ТЗ1
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ * ИЗ ТЗ2";

поменяю на

|ВЫБРАТЬ * ИЗ ТЗ2
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ * ИЗ ТЗ1";

у меня на этой стороне ТЗ получится?)
28 DrShad
 
30.03.15
13:13
(27) нет
29 Nykos
 
30.03.15
13:13
(24) Ну Контрагент мне понадобится для Отчета... Сейчас погуглю что представляет собой OLEОбъект и тогда смогу ответить точнее.
30 Cube
 
30.03.15
13:16
(27) Да блин, сделай уже так:

Запрос = Новый Запрос(МойТекстЗапроса);
ТаблицаДанных = Запрос.Выполнить().Выгрузить();

Запрос = ВнешняяБаза.NewObject("Запрос");
Запрос.Текст = МойТекстЗапроса2;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    ЗаполнитьЗначенияСвойств(ТаблицаДанных.Добавить(), Выборка);
КонецЦикла;

И скрми эту ТаблицаДанных в СКД как внешний набор.
Поля обоих запросов должны иметь примитивные типы (Будево, строка, число, Дата). Остальные поля - с мопеда.
31 Cube
 
30.03.15
13:17
+(30) Писал на коленке, ошибки сам исправишь (если найдешь).
32 Nykos
 
30.03.15
14:12
(31) а что делать с полями не примитивных типов? я могу присвоить им тип? Справочник.Ссылка сделать Строкой например?

При ручном добавлении колонок я бы использовал ОписаниеТипов... А в тексте запроса есть возможность это сделать?
33 Nykos
 
30.03.15
14:17
(31) Может в моем случае проще уже при формировании печатной формы вывести сначала результаты одного запроса, а потом добавить строки с результатами второго запроса?...
34 Nykos
 
30.03.15
14:18
блин
35 DrShad
 
30.03.15
14:21
[(10) (11) Толсто. Спасибо, уж лучше сам как-нибудь разберусь.]
36 Nykos
 
30.03.15
14:27
угу..
37 DrShad
 
30.03.15
14:43
(36) БД хоть насколько похожи?
38 Nykos
 
30.03.15
14:47
(37) если я правильно понял вопрос то практически идентичны
39 mistеr
 
30.03.15
14:49
Внешние источники данных.
40 DrShad
 
30.03.15
14:50
(39) и?
41 DrShad
 
30.03.15
14:50
(38) а ссылки у справочников синхронизированы??
42 shuhard
 
30.03.15
14:51
(35) переборщил я с 15% , тут и 1% нет
43 mistеr
 
30.03.15
15:00
(39) (40) нет, прошу прощения, тут не подходят.
44 Nykos
 
30.03.15
15:55
(41) да