Вход | Регистрация
 

Выбо данных первого пакета запроса

Выбо данных первого пакета запроса
Я
   falselight
 
04.02.20 - 17:34
Запрос       = Новый Запрос;
        Запрос.Текст = "
            |ВЫБРАТЬ
            |    КонтактныеЛицаПартнеров.Наименование КАК КонтактноеЛицоИсполнителя
            |ПОМЕСТИТЬ ВТ_КонтактноеЛицоИсполнителя
            |ИЗ
            |    Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
            |ГДЕ
            |    КонтактныеЛицаПартнеров.Владелец = &Контрагент
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ
            |    ПоступлениеУслугПрочихАктивовРасходы.НомерСтроки КАК ПечНомПП,
            |    ПоступлениеУслугПрочихАктивовРасходы.Содержание  КАК ПечУслуга,
            |    ""Шт.""                                          КАК ПечЕдИзм,
            |    ПоступлениеУслугПрочихАктивовРасходы.Количество  КАК ПечКолво,
            |    ПоступлениеУслугПрочихАктивовРасходы.Цена        КАК ПечЦена,
            |    ПоступлениеУслугПрочихАктивовРасходы.Сумма       КАК ПечСумма
            |ИЗ
            |    Документ.ПоступлениеУслугПрочихАктивов.Расходы КАК ПоступлениеУслугПрочихАктивовРасходы
            |ГДЕ
            |    ПоступлениеУслугПрочихАктивовРасходы.Ссылка = &Ссылка";
        Запрос.УстановитьПараметр("Ссылка",     ПоступлениеУслуг.Ссылка);
        Запрос.УстановитьПараметр("Контрагент", ПоступлениеУслуг.Контрагент);
        ТаблицаРасходов = Запрос.Выполнить().Выгрузить();
        //    
        Для Каждого СтрокаРасходов Из ТаблицаРасходов Цикл
            Строка.Параметры.Заполнить(СтрокаРасходов);
            ТабличныйДокумент.Вывести(Строка);
        КонецЦикла;
        //    
        // *** ПОДВАЛ


В одном запросе делаю выборку. В подвал мне нужно вывести данные нулевого пакета, но ничего не получается.
Подскажите почему?

        //
        ВыборкаКЛИсполнителя = МассивРезультатов[0].Выбрать();
        Если ВыборкаКЛИсполнителя.Следующий() Тогда
            Подвал.Параметры.ПечРасшифровкаИсп = ВыборкаКЛИсполнителя.КонтактноеЛицоИсполнителя;
        КонецЕсли;
   falselight
 
1 - 04.02.20 - 17:35
В режиме предприятия смотрю, выборка есть, а тут не выбирает ((((
Что то видимо не так делаю.
   dka80
 
2 - 04.02.20 - 17:37
Либо использовать менеджер временных таблиц и из него получать данные временной таблицы, либо использовать ВыполнитьПакет, но тогда временную таблицу тебе нужно будет еще раз выбрать в запросе
   falselight
 
3 - 04.02.20 - 17:38
(2) Я это делаю
        МассивРезультатов    = Запрос.ВыполнитьПакет();
        //

        ВыборкаКЛИсполнителя = МассивРезультатов[0].Выбрать();
        Если ВыборкаКЛИсполнителя.Следующий() Тогда
            Подвал.Параметры.ПечРасшифровкаИсп = ВыборкаКЛИсполнителя.КонтактноеЛицоИсполнителя;
        КонецЕсли;
   falselight
 
4 - 04.02.20 - 17:39
(2) Но в (3) нет результата ((((( В предприятии есть выборка. А тут пишет что количество о, Что количество это колонка, я не пойму пока как правильно сделать.
   dka80
 
5 - 04.02.20 - 17:39
ВыполнитьПакетСПромежуточнымиДанными
   pechkin
 
6 - 04.02.20 - 17:40
не нужна тут временная таблица
   dka80
 
7 - 04.02.20 - 17:40
А ВыполнитьПакет:
Результатом выполнения запроса на создание временной таблицы будет результат с одной колонкой и одной строкой, содержащей количество записей, помещенных в созданную временную таблицу.
   falselight
 
8 - 04.02.20 - 17:40
(5) За место
        МассивРезультатов    = Запрос.ВыполнитьПакет();
        //


?

То есть не ВыполнитьПакет ?
   falselight
 
9 - 04.02.20 - 17:40
(7) А как её выборку то получить?
   dka80
 
10 - 04.02.20 - 17:40
МассивРезультатов    = Запрос.ВыполнитьПакетСПромежуточнымиДанными()
   dka80
 
11 - 04.02.20 - 17:41
+6 действительно, зачем временная таблица?
   falselight
 
12 - 04.02.20 - 17:43
(11) Зачем вот это       |ПОМЕСТИТЬ ВТ_КонтактноеЛицоИсполнителя ??
Так если я не помещу в ВТ_ , как я пакетами сделаю выборку то?
   falselight
 
13 - 04.02.20 - 17:45
МассивРезультатов    = Запрос.ВыполнитьПакетСПромежуточнымиДанными();
        //

        ВыборкаКЛИсполнителя = МассивРезультатов[0].Выбрать();
        Если ВыборкаКЛИсполнителя.Следующий() Тогда
            Подвал.Параметры.ПечРасшифровкаИсп = ВыборкаКЛИсполнителя.КонтактноеЛицоИсполнителя;
        КонецЕсли;


Тогда в Если не заходит, выборка не срабатывает
   dka80
 
14 - 04.02.20 - 17:46
(12) убери эту бяку   |ПОМЕСТИТЬ ВТ_КонтактноеЛицоИсполнителя
и делай через МассивРезультатов    = Запрос.ВыполнитьПакет()
   falselight
 
15 - 04.02.20 - 17:49
(14) Убрал, закомментировал точнее, но выборки нет ( В Если не заходит
   falselight
 
16 - 04.02.20 - 17:53
ПоступлениеУслуг = МассивСтруктур[0].Док;
    УстановитьПривилегированныйРежим(Истина);
    ТабличныйДокумент                       = Новый ТабличныйДокумент;
    ТабличныйДокумент.АвтоМасштаб            = Истина;
    ТабличныйДокумент.ОриентацияСтраницы    = ОриентацияСтраницы.Портрет;
    ТабличныйДокумент.ИмяПараметровПечати    = "ПАРАМЕТРЫ_ПЕЧАТИ_АктВыполненныхРабот";
    ДляМакета                               = РеквизитФормыВЗначение("Объект");
    Макет                                   = ДляМакета.ПолучитьМакет("АктВыполненныхРабот");
    //Для Каждого ПоступлениеУслуг Из МассивОбъектов Цикл

        //

        // *** ШАПКА

        Шапка = Макет.ПолучитьОбласть("Шапка");
        //        

        Шапка.Параметры.ПечНомерАкта   = ПоступлениеУслуг.Номер;    
        Шапка.Параметры.ПечДатаАкта       = Формат(ПоступлениеУслуг.Дата,"ДФ=dd.MM.yyyy");    
        //

        // ЗАКАЗЧИК

        //

        СведенияЗ                       = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ПоступлениеУслуг.Организация, ПоступлениеУслуг.Дата);
        РеквизитыЗ                      = "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,";
        Шапка.Параметры.ПечЗаказчик       = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияЗ, РеквизитыЗ);    
        //

        // ИСПОЛНИТЕЛЬ

        //

        СведенияИ                       = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ПоступлениеУслуг.Контрагент, ПоступлениеУслуг.Дата);
        РеквизитыИ                      = "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,";
        Шапка.Параметры.ПечИсполнитель = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияИ, РеквизитыИ);                                             
        //

        ТабличныйДокумент.Вывести(Шапка);
        //

        // *** СТРОКА

        Строка = Макет.ПолучитьОбласть("Строка");        
        //

        Запрос       = Новый Запрос;
        Запрос.Текст = "
            |ВЫБРАТЬ
            |    КонтактныеЛицаПартнеров.Наименование КАК КонтактноеЛицоИсполнителя
            //|ПОМЕСТИТЬ ВТ_КонтактноеЛицоИсполнителя

            |ИЗ
            |    Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
            |ГДЕ
            |    КонтактныеЛицаПартнеров.Владелец = &Контрагент
            |;
            |
            ////////////////////////////////////////////////////////////////////////////////

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

        Для Каждого СтрокаРасходов Из ТаблицаРасходов Цикл
            Строка.Параметры.Заполнить(СтрокаРасходов);
            ТабличныйДокумент.Вывести(Строка);
        КонецЦикла;
        //    

        // *** ПОДВАЛ

        Подвал                     = Макет.ПолучитьОбласть("Подвал");        
        //

        Подвал.Параметры.ПечИтого  = ТаблицаРасходов.Итог("ПечСумма");            
        Подвал.Параметры.ПечБезНДС = "";            
        Подвал.Параметры.ПечВсего  = ТаблицаРасходов.Итог("ПечСумма");            
        Подвал.Параметры.ПечСумма  = РаботаСКурсамиВалют.СформироватьСуммуПрописью(ТаблицаРасходов.Итог("ПечСумма"), ПоступлениеУслуг.Валюта);            
        Подвал.Параметры.ПечНДС    = "Ноль рублей 00 коп.";            
        //

        МассивРезультатов    = Запрос.ВыполнитьПакет();
        //

        ВыборкаКЛИсполнителя = МассивРезультатов[0].Выбрать();
        Если ВыборкаКЛИсполнителя.Следующий() Тогда
            Подвал.Параметры.ПечРасшифровкаИсп = ВыборкаКЛИсполнителя.КонтактноеЛицоИсполнителя;
        КонецЕсли;
   falselight
 
17 - 04.02.20 - 17:55
Вот это, с установленным параметром выбирает в режиме предприятия, почему нет выборки, через ВыбратьПакет?

ВЫБРАТЬ
    КонтактныеЛицаПартнеров.Наименование КАК КонтактноеЛицоИсполнителя
ИЗ
    Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
ГДЕ
    КонтактныеЛицаПартнеров.Владелец = &Контрагент
   dka80
 
18 - 04.02.20 - 17:57
Запрос.УстановитьПараметр("Контрагент", ПоступлениеУслуг.Контрагент);  - видимо не тот же контрагент, что и &Контрагент в режиме предприятия ты задаешь
   falselight
 
19 - 04.02.20 - 18:02
(18) Я проверял тот же.
   falselight
 
20 - 04.02.20 - 18:06
(18) Смотрю. Там путаница Партнер или Контрагент .
   falselight
 
21 - 04.02.20 - 18:07
Да, тип партнер отбирает, контрагента же нет.
Не совсем знаю все эти махинации. Поправлю сейчас на партнера в коде.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.