Имя: Пароль:
1C
1С v8
Туплю с пакетным запросом
,
0 a_alenkin
 
13.08.13
11:19
Собственно - текст запроса:

    Запрос.Текст =
    "ВЫБРАТЬ
    |    Цеха.Ссылка,
    |    Цеха.ПометкаУдаления,
    |    Цеха.ГрафикРаботы,
    |    Цеха.ВидИспользованияРабочегоМеста
    |ПОМЕСТИТЬ Цеха
    |ИЗ
    |    (ВЫБРАТЬ
    |        Цеха.Ссылка КАК Ссылка,
    |        Цеха.ПометкаУдаления КАК ПометкаУдаления,
    |        Цеха.ГрафикРаботы КАК ГрафикРаботы,
    |        ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, ЗНАЧЕНИЕ(Перечисление.ВидыИспользованияРабочихМест.ПустаяСсылка)) КАК ВидИспользованияРабочегоМеста
    |    ИЗ
    |        Справочник.Цеха КАК Цеха
    |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |                ЗначенияСвойствОбъектов.Объект КАК ОбъектНазначения,
    |                ЗначенияСвойствОбъектов.Свойство КАК Свойство,
    |                ЗначенияСвойствОбъектов.Значение КАК Значение
    |            ИЗ
    |                РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    |            ГДЕ
    |                ЗначенияСвойствОбъектов.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.ВидИспользованияРабочегоМеста)) КАК ЗначенияСвойствОбъектов
    |            ПО Цеха.Ссылка = ЗначенияСвойствОбъектов.ОбъектНазначения) КАК Цеха
    |ГДЕ
    |    Цеха.ВидИспользованияРабочегоМеста <> ЗНАЧЕНИЕ(Перечисление.ВидыИспользованияРабочихМест.НеУчаствуетВПланировании)
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    Цеха.ГрафикРаботы,
    |    ГрафикРаботКалендарный.Дата,
    |    МИНИМУМ(ГрафикРаботКалендарный.НачалоРабочегоВремени) КАК НачалоРабочегоВремени,
    |    МАКСИМУМ(ГрафикРаботКалендарный.КонецРабочегоВремени) КАК КонецРабочегоВремени
    |ПОМЕСТИТЬ Графики
    |ИЗ
    |    Цеха КАК Цеха
    |        ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикРаботКалендарный КАК ГрафикРаботКалендарный
    |        ПО Цеха.ГрафикРаботы = ГрафикРаботКалендарный.График
    |ГДЕ
    |    ГрафикРаботКалендарный.Дата = &Дата
    |    И ГрафикРаботКалендарный.НачалоРабочегоВремени <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    |    И ГрафикРаботКалендарный.КонецРабочегоВремени <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    |
    |СГРУППИРОВАТЬ ПО
    |    Цеха.ГрафикРаботы,
    |    ГрафикРаботКалендарный.Дата";
    
    Запрос.УстановитьПараметр("Дата", НачалоДня(ПолеКалендаря));
    
    Результат = Запрос.ВыполнитьПакет();

(Кому если интересно - это рарус альфа-авто)

В отладчике Результат[0].Выгрузить() вижу единственную строку с колонкой "количество" - где отображается количество записей причем правильно.
Результат[1].Выгрузить() показывает правильный результат.
При попытке добавить третий запрос пакета начинаются непонятки с "Выгрузить()" в отладчике.
Мне ваще то надо использовать данные из всех запросов пакета. Желания делать по отдельности и использовать менеджер временных таблиц нет.

Собственно вопрос:
- Почему это все работает непостижимым моему уму образом - ведь второй запрос пакета дает нормальные данные - значит соединение нормально обрабатывается? И откуда появляется "Количество" - ну нету у меня нигде в запросе таких группировок
1 Defender aka LINN
 
13.08.13
11:21
У вас типичные симптомы нечтения документации
2 Господин ПЖ
 
13.08.13
11:21
И откуда появляется "Количество" - ну нету у меня нигде в запросе таких группировок

зато есть временная таблица
3 ZanderZ
 
13.08.13
11:22
количество - это количество строк во временной таблице,
4 Godofsin
 
13.08.13
11:23
(3) Ну точно! =)
5 a_alenkin
 
13.08.13
11:25
(4) это я догадался
(3) все дело во временных таблицах?
6 drcrasher
 
13.08.13
11:26
|ПОМЕСТИТЬ Цеха
  |ПОМЕСТИТЬ Графики

не смущает, что это формирование временных таблиц, а не пакетный запрос?
7 a_alenkin
 
13.08.13
11:27
(6) ну второй запрос пакета тоже ведь временная таблица
8 Maxus43
 
13.08.13
11:31
(7) это не ВЫБОРКА, а формирование ВТ. данные из них надо ещё получать
9 Maxus43
 
13.08.13
11:34
ВЫБРАТЬ
    Банки.Ссылка
ПОМЕСТИТЬ втБанки
ИЗ
    Справочник.Банки КАК Банки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    БанковскиеСчета.Ссылка,
    БанковскиеСчета.Владелец
ПОМЕСТИТЬ втСчета
ИЗ
    Справочник.БанковскиеСчета КАК БанковскиеСчета
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втБанки.Ссылка,
    втСчета.Ссылка КАК Ссылка1
ИЗ
    втБанки КАК втБанки
        ЛЕВОЕ СОЕДИНЕНИЕ втСчета КАК втСчета
        ПО втБанки.Ссылка = втСчета.Владелец
10 Maxus43
 
13.08.13
11:34
+ и просто Запрос.Выполнить()

вот тебе и всё... с использованием всех ВТ запроса