Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Макет к обработке

Макет к обработке
Я
   Shikolosa
 
11.04.19 - 14:17
Добрый день! Подскажите пожалуйста! Есть встроенная обработка "расчет цены" ,  на ней заполняется табличная часть (Обработки.РасчетЦены.ТабличныеЧасти.Комплект), нужно эту табличную часть вывести на печать. Не получается построить к ней запрос. Извините за элементарный вопрос, в 1С я чайник, только учусь).
 
 
   Asmody
 
1 - 11.04.19 - 14:19
В запрос или в СКД?
   Shikolosa
 
2 - 11.04.19 - 14:23
запрос
   spiller26
 
3 - 11.04.19 - 14:27
(0) Выгружай Табличную часть в ТаблицуЗначений и параметром закидывай её в запрос.
   Shikolosa
 
4 - 12.04.19 - 10:18
(3) Спасибо! Получилось.
   seevkik
 
5 - 12.04.19 - 10:23
(3) Где пройти курсы телепатии?
   Shikolosa
 
6 - 12.04.19 - 11:22
(5) Телепатия здесь ни при чём)) Просто знаний пока не хватает и спасибо spiller26 направил в нужное направление.
   Shikolosa
 
7 - 12.04.19 - 11:23
Всё получилось в результате запроса:
НовыйЗапрос.Текст = "ВЫБРАТЬ
                        |    Таблица.Номенклатура,
                        |    Таблица.Количество,
                        |    Таблица.НомерСтроки,
                        |       Таблица.ЕдиницаИзмерения,
                        |    Таблица.Цена,
                        |       Таблица.Сумма,
                        |    Таблица.СуммаСНаценкой
                        |ПОМЕСТИТЬ ВТ
                        |ИЗ
                        |    &Таблица КАК Таблица
                          |;
                                                /////

                        | ВЫБРАТЬ
                        |    ВТ.Номенклатура,
                        |    ВТ.Количество,
                        |    ВТ.НомерСтроки,
                        |       ВТ.ЕдиницаИзмерения,
                        |       ВТ.Цена,
                        |       ВТ.Сумма,
                        |    ВТ.СуммаСНаценкой
                        |ИЗ
                        |    ВТ КАК ВТ
                          |    СГРУППИРОВАТЬ ПО
                                            |        ВТ.Номенклатура,
                        |       ВТ.Количество,
                        |       ВТ.НомерСтроки,
                        |       ВТ.ЕдиницаИзмерения,
                        |    ВТ.Цена,
                        |       ВТ.Сумма,
                        |    ВТ.СуммаСНаценкой
                                |  УПОРЯДОЧИТЬ ПО 
                                            |       ВТ.НомерСтроки
                                            |";
          НовыйЗапрос.УстановитьПараметр("Таблица", Таблица);

         Результат = НовыйЗапрос.Выполнить().Выгрузить();
   Shikolosa
 
8 - 12.04.19 - 11:26
И перед этим выгрузила Табличную часть в Таблицу значений)
Таблица = ЭтотОбъект.Комплект.Выгрузить();
   Zmich
 
9 - 12.04.19 - 11:35
(8). Извиняюсь за такой вопрос, а в чем отличие таблиц значений Таблица (исходной) и Результат (полученной)?
   Shikolosa
 
10 - 12.04.19 - 11:55
(9)Если напрямую обратится к Таблице получается ошибка:Таблица не найдена "Таблица"
<<?>>Таблица КАК Таблица. А через параметр в запросе все красиво.
 
 Рекламное место пустует
   1Сергей
 
11 - 12.04.19 - 11:56
(9) свернута она
   Zmich
 
12 - 12.04.19 - 12:02
(11). Не свернута, абсолютно идентичные таблицы.
   catena
 
13 - 12.04.19 - 12:05
(10)Вопрос, зачем вообще запрос, который абсолютно не меняет таблицу?
   1Сергей
 
14 - 12.04.19 - 12:18
там
|    СГРУППИРОВАТЬ ПО

А выборку из таблицы полученной через НовыйЗапрос.УстановитьПараметр("Таблица", Таблица); нельзя изменять. Сначала во временную поместить надо
   catena
 
15 - 12.04.19 - 12:24
(14)Там сгруппировать по всем полям)))
   catena
 
16 - 12.04.19 - 12:24
включая номер строки
   Zmich
 
17 - 12.04.19 - 12:25
(14). Я бы еще понял, если бы там суммировались бы выражения или там надо было исключить дублирующиеся строки или что-то такое еще. Но ведь участвует номер строки, так что дубли там точно не удаляются.
   Shikolosa
 
18 - 12.04.19 - 12:49
(17) Я уже писала, что чайник в 1С) Но если не сгруппировать в результате задваиваются строки. И если исключить хотя-бы одно поле, будет ошибка:Поле не входит в группу "ВТ.*" Возможно я чего-то не понимаю и запрос построила неправильно.
   Zmich
 
19 - 12.04.19 - 12:57
(18). Давай так: выложи полностью свою процедуру печати, а не только текст запроса. Тогда можно будет более предметно показать, как можно было сделать это проще.
   Shikolosa
 
20 - 12.04.19 - 13:02
(19)
ОбластьМакетаТаблицаСырьё = Макет.ПолучитьОбласть("ТаблицаСырьё");      
    Таблица = ЭтотОбъект.Комлект.Выгрузить();
    
    НовыйЗапрос = Новый Запрос;
    НовыйЗапрос.Текст = "ВЫБРАТЬ
                        |    Таблица.Номенклатура,
                        |    Таблица.Количество,
                        |    Таблица.НомерСтроки,
                        |       Таблица.ЕдиницаИзмерения,
                        |    Таблица.Цена,
                        |   Таблица.Сумма,
                        |    Таблица.СуммаСНаценкой
                        |ПОМЕСТИТЬ ВТ
                        |ИЗ
                        |    &Таблица КАК Таблица
                        |;
                        /////

                        | ВЫБРАТЬ
                        |    ВТ.Номенклатура,
                        |    ВТ.Количество,
                        |    ВТ.НомерСтроки,
                        |   ВТ.ЕдиницаИзмерения,
                        |   ВТ.Цена,
                        |   ВТ.Сумма,
                        |    ВТ.СуммаСНаценкой
                        |ИЗ
                        |    ВТ КАК ВТ
                        |    СГРУППИРОВАТЬ ПО
                        |        ВТ.Номенклатура,
                        |       ВТ.Количество,
                        |       ВТ.НомерСтроки,
                        |       ВТ.ЕдиницаИзмерения,
                        |        ВТ.Цена,
                        |       ВТ.Сумма,
                        |        ВТ.СуммаСНаценкой
                        |  УПОРЯДОЧИТЬ ПО 
                        |       ВТ.НомерСтроки
                        |";
          НовыйЗапрос.УстановитьПараметр("Таблица", Таблица);

        Результат = НовыйЗапрос.Выполнить().Выгрузить();

    Для Каждого  ВыборкаСтрокТовары Из Результат Цикл
        
        ОбластьМакетаТаблицаСырьё.Параметры.Номенклатура = ВыборкаСтрокТовары.Номенклатура;
        ОбластьМакетаТаблицаСырьё.Параметры.Количество = ВыборкаСтрокТовары.Количество;
        ОбластьМакетаТаблицаСырьё.Параметры.НомерСтроки = ВыборкаСтрокТовары.НомерСтроки;
        ОбластьМакетаТаблицаСырьё.Параметры.ЕдиницаИзмерения = ВыборкаСтрокТовары.ЕдиницаИзмерения;
        ОбластьМакетаТаблицаСырьё.Параметры.ЦенаСНаценкой = формат(ВыборкаСтрокТовары.СуммаСНаценкой/ВыборкаСтрокТовары.Количество, "ЧЦ=7; ЧДЦ=2");
        ОбластьМакетаТаблицаСырьё.Параметры.СуммаСНаценкой = ВыборкаСтрокТовары.СуммаСНаценкой;

    ТабДокумент.Вывести(ОбластьМакетаТаблицаСырьё);

    КонецЦикла;
   Zmich
 
21 - 12.04.19 - 13:04
(20). А теперь сравни с этим:

ОбластьМакетаТаблицаСырьё = Макет.ПолучитьОбласть("ТаблицаСырьё");      
    Таблица = ЭтотОбъект.Комлект.Выгрузить();
 Для Каждого  ВыборкаСтрокТовары Из Таблица Цикл
        
        ОбластьМакетаТаблицаСырьё.Параметры.Номенклатура = ВыборкаСтрокТовары.Номенклатура;
        ОбластьМакетаТаблицаСырьё.Параметры.Количество = ВыборкаСтрокТовары.Количество;
        ОбластьМакетаТаблицаСырьё.Параметры.НомерСтроки = ВыборкаСтрокТовары.НомерСтроки;
        ОбластьМакетаТаблицаСырьё.Параметры.ЕдиницаИзмерения = ВыборкаСтрокТовары.ЕдиницаИзмерения;
        ОбластьМакетаТаблицаСырьё.Параметры.ЦенаСНаценкой = формат(ВыборкаСтрокТовары.СуммаСНаценкой/ВыборкаСтрокТовары.Количество, "ЧЦ=7; ЧДЦ=2");
        ОбластьМакетаТаблицаСырьё.Параметры.СуммаСНаценкой = ВыборкаСтрокТовары.СуммаСНаценкой;

    ТабДокумент.Вывести(ОбластьМакетаТаблицаСырьё);

    КонецЦикла;
   Shikolosa
 
22 - 12.04.19 - 13:10
(21) Zmich, Большое спасибо! Поняла!)


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