Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 июн 2021, 11:04

Не могу свернуть поля ТЧ в печатной форме

Автор Vasya Povar, 10 окт 2016, 16:52

0 Пользователей и 1 гость просматривают эту тему.

Vasya Povar

Фрагмент кода Запрос2.Текст =  "ВЫБРАТЬ
                 | РеализацияТМЦТовары.НомерСтроки,
                 | РеализацияТМЦТовары.Номенклатура,
                 | РеализацияТМЦТовары.Количество КАК Кво,
                 | РеализацияТМЦТовары.Цена,
                 | РеализацияТМЦТовары.Сумма КАК Сумма,
                 | РеализацияТМЦТовары.СуммаНДС КАК СуммаНДС,
                 | РеализацияТМЦТовары.ЦенаБезНДС КАК ЦенаБезНДС,
                 | РеализацияТМЦТовары.СуммаБезНДС КАК СуммаБезНДС,
                 | РеализацияТМЦТовары.ЕдиницаИзмерения КАК Ед
                 |ИЗ
                 | Документ.РеализацияТМЦ.Товары КАК РеализацияТМЦТовары
                 |ГДЕ
                 | РеализацияТМЦТовары.Ссылка В(&Ссылка)" ;

       Запрос2.Параметры.Вставить("Ссылка",Ссылка);
ВыборкаУслуги = Запрос2.Выполнить().Выбрать();
//ВыборкаУслуги = Выборка.Услуги.Выбрать();
Пока ВыборкаУслуги.Следующий() Цикл
СтрокаТЧ.Параметры.НомерСтрока = ВыборкаУслуги.НомерСтроки;
СтрокаТЧ.Параметры.НаименованиеТМЦ = ВыборкаУслуги.Номенклатура;
   СтрокаТЧ.Параметры.Ед = ВыборкаУслуги.Ед;
    СтрокаТЧ.Параметры.Количество = ВыборкаУслуги.Кво;
СтрокаТЧ.Параметры.Цена = ВыборкаУслуги.Цена-(ВыборкаУслуги.СуммаНДС/ВыборкаУслуги.Кво);
  СтрокаТЧ.Параметры.Сумма = ВыборкаУслуги.Сумма;   
  Если ВыборкаУслуги.Цена=0 Тогда
  СтрокаТЧ.Параметры.Цена = "0.00";
  КонецЕсли;
  Если  ВыборкаУслуги.Сумма=0 Тогда
  СтрокаТЧ.Параметры.Сумма = "0.00" ;
  КонецЕсли;
выб = Запрос2.Выполнить().Выгрузить();
    выб.Свернуть("Номенклатура,Цена,Ед,НомерСтроки,СуммаНДС","Кво,Сумма");
    ТабДок.Вывести(СтрокаТЧ);

КонецЦикла;

          //**************************
        СуммаБезНДС = 0;
СуммаНДС    = 0;
        СуммаВсего  = 0;

ВыборкаУслуги = Запрос2.Выполнить().Выбрать();
Пока ВыборкаУслуги.Следующий() Цикл
           
            СуммаВсего = СуммаВсего + ВыборкаУслуги.Сумма    ;
            СуммаНДС    = СуммаНДС    +  ВыборкаУслуги.СуммаНДС;
            СуммаБезНДС  = СуммаБезНДС  + ВыборкаУслуги.Сумма-ВыборкаУслуги.СуммаНДС;
           
КонецЦикла;
        Подвал.Параметры.СуммаБезНДС = СуммаБезНДС;
        Подвал.Параметры.СуммаНДС    = СуммаНДС   ;
        Подвал.Параметры.СуммаВсего  = СуммаВсего ;
         Валюта = Выборка.Валюта;

      СуммаПрописью  = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(СуммаВсего,Валюта);
     Подвал.Параметры.Заполнить(Выборка);
Если ВыборкаУслуги.СуммаНДС = 0 Тогда
Подвал.Параметры.СуммаНДС = "0.00" ;
КонецЕсли;
Если ВыборкаУслуги.Сумма = 0 Тогда
Подвал.Параметры.СуммаБезНДС = "0.00";
КонецЕсли;
Если СуммаВсего = 0 Тогда
Подвал.Параметры.СуммаВсего = "0.00";
КонецЕсли;
        Подвал.Параметры.СуммаПрописью = СуммаПрописью;
        ТабДок.Вывести(Подвал,Выборка.Уровень());

ВставлятьРазделительСтраниц = Истина;

КонецЦикла;


Необходимо чтобы при печати не выводило поля с одинаковой ценой и номенклатурой, а соединяло вместе и суммировало по полю Количество и Сумма.
При выполнении ошибок нет,но не свернуло поля. Помогите плз.

cast

У тебя в запросе нет группировки. В конструкторе запросов на закладке группиротвка

Vasya Povar

Цитата: cast от 10 окт 2016, 20:17
У тебя в запросе нет группировки. В конструкторе запросов на закладке группиротвка

А так, чтобы методом свернуть никак?

LexaK

если вы написали запрос к базе, старайтесь в этом (одном) запросе получить и как надо обработать данные, с которыми вы потом что-то будете делать.
поэтому в вашем варианте надо в запросе получить и свернуть данные для печати.

вот примерный вариант (просто взял ваш запрос, на примере 3-х полей показал как сворачивать, если что-то еще доделаете сами)

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


ну и конечно-же можно сворачивать данные не только в запросе а еще и таблице значений.

Читайте СП (синтаксис помощник)

ТаблицаЗначений (ValueTable)
Свернуть (GroupBy)
Синтаксис:

Свернуть(<КолонкиГруппировок>, <КолонкиСуммирования>)
Параметры:

<КолонкиГруппировок> (обязательный)

Тип: Строка.
Имена колонок, разделенные запятыми, по которым необходимо группировать строки таблицы значений.
<КолонкиСуммирования> (необязательный)

Тип: Строка.
Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках таблицы значений.

 
ответ Понравился? (в смысле пригодился?)

Fedor_Safonchik

   ТаблицаНоменклатуры = Объект.ВашаТаблица.Выгрузить();
      ТаблицаНоменклатуры .Свернуть("Номенклатура, Цена", "Количество, Сумма");
      Объект.ВашаТаблица.Очистить();
   Объект.ВашаТаблица.Загрузить(ТаблицаНоменклатуры );

Счастья Вам, но подход через листики к тычинкам

Vasya Povar


Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск