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


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

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

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

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

?

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


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

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