Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 19:58

Помогите с запросом

Автор djvjv, 04 мая 2012, 22:13

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

djvjv

Помогите доделать запрос чтоб в подвал выводилась сумма прописью, количество наименований.
А еще нужно чтоб в область товары выводился номер строки.   
Я добавил выгрузку базы чтоб могли помочь мне. Весит меньше 100кб - так что помогите пожалуйста.

Макет = Документы.РеализацияТоваров.ПолучитьМакет("Печать");

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

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


      Шапка.Параметры.Заполнить(ВыборкаШапка);
      ТабДок.Вывести(Шапка, ВыборкаШапка.Уровень());

      ТабДок.Вывести(ОбластьШапка);
   
      ВыборкаОбщийИтог = Результат[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

       ВыборкаОбщийИтог.Следующий();   
      ВыборкаТЧ = ВыборкаОбщийИтог.Выбрать();
         Пока ВыборкаТЧ.Следующий() Цикл
         ОбластьТовары.Параметры.Заполнить(ВыборкаТЧ);
         ТабДок.Вывести(ОбластьТовары, ВыборкаТЧ.Уровень());
   
      КонецЦикла;

      ОбластьИтог.Параметры.Заполнить(ВыборкаОбщийИтог);
      ТабДок.Вывести(ОбластьИтог);

djvjv

ВыборкаШапка = Результат[0].Выбрать();
   ВыборкаШапка.Следующий();
      Если ВставлятьРазделительСтраниц Тогда
         ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
      КонецЕсли;


      Шапка.Параметры.Заполнить(ВыборкаШапка);
      ТабДок.Вывести(Шапка, ВыборкаШапка.Уровень());

      ТабДок.Вывести(ОбластьШапка);
   
      ВыборкаОбщийИтог = Результат[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

       ВыборкаОбщийИтог.Следующий();   
      ВыборкаТЧ = ВыборкаОбщийИтог.Выбрать();
         Пока ВыборкаТЧ.Следующий() Цикл
         ОбластьТовары.Параметры.Заполнить(ВыборкаТЧ);
         ТабДок.Вывести(ОбластьТовары, ВыборкаТЧ.Уровень());
   
      КонецЦикла;

      ОбластьИтог.Параметры.Заполнить(ВыборкаОбщийИтог);
      ТабДок.Вывести(ОбластьИтог);

djvjv

омогите доделать запрос чтоб в подвал выводилась сумма прописью, количество наименований.
А еще нужно чтоб в область товары выводился номер строки.   
Я добавил выгрузку базы чтоб могли помочь мне. Весит меньше 100кб - так что помогите пожалуйста.

Макет = Документы.РеализацияТоваров.ПолучитьМакет("Печать");

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

   Шапка = Макет.ПолучитьОбласть("Шапка");
   ОбластьШапка = Макет.ПолучитьОбласть("ТоварыШапка");
   ОбластьТовары = Макет.ПолучитьОбласть("Товары");
   ОбластьИтог = Макет.ПолучитьОбласть("Подвал");
   ТабДок.Очистить();
   ВставлятьРазделительСтраниц = Ложь;
   ВыборкаШапка = Результат(0).Выбрать();
   ВыборкаШапка.Следующий();
      Если ВставлятьРазделительСтраниц Тогда
         ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
      КонецЕсли;


      Шапка.Параметры.Заполнить(ВыборкаШапка);
      ТабДок.Вывести(Шапка, ВыборкаШапка.Уровень());

      ТабДок.Вывести(ОбластьШапка);
   
      ВыборкаОбщийИтог = Результат[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

       ВыборкаОбщийИтог.Следующий();   
      ВыборкаТЧ = ВыборкаОбщийИтог.Выбрать();
         Пока ВыборкаТЧ.Следующий() Цикл
         ОбластьТовары.Параметры.Заполнить(ВыборкаТЧ);
         ТабДок.Вывести(ОбластьТовары, ВыборкаТЧ.Уровень());
   
      КонецЦикла;

      ОбластьИтог.Параметры.Заполнить(ВыборкаОбщийИтог);
      ТабДок.Вывести(ОбластьИтог);

djvjv

ВыборкаШапка = Результат(0).Выбрать();
   ВыборкаШапка.Следующий();
      Если ВставлятьРазделительСтраниц Тогда
         ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
      КонецЕсли;


      Шапка.Параметры.Заполнить(ВыборкаШапка);
      ТабДок.Вывести(Шапка, ВыборкаШапка.Уровень());

      ТабДок.Вывести(ОбластьШапка);
   
      ВыборкаОбщийИтог = Результат(1).Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

       ВыборкаОбщийИтог.Следующий();   
      ВыборкаТЧ = ВыборкаОбщийИтог.Выбрать();
         Пока ВыборкаТЧ.Следующий() Цикл
         ОбластьТовары.Параметры.Заполнить(ВыборкаТЧ);
         ТабДок.Вывести(ОбластьТовары, ВыборкаТЧ.Уровень());
   
      КонецЦикла;

      ОбластьИтог.Параметры.Заполнить(ВыборкаОбщийИтог);
      ТабДок.Вывести(ОбластьИтог);

djvjv

Извините за повторение с первого раза не получилось нормально код выложить. Проблема все еще актуальна. Жду помощи.

djvjv

Вот и база на всякий случай!

AntonB

а чего в УТ не посмотреть, как Реализации печатаются?
Предлагаю полный ИТ сервис небольшой организации в Москве (приходящий сисадмин+1С7.7,1С8.x)

DirecTwiX

О номере строки не может быть и речи. Тыже группируешь одинаковые товары.
А чтобы получить количество, в итоги добавь количество номенклатуры:
ИТОГИ
   СУММА(Сумма),
   КОЛИЧЕСТВО(Номенклатура)
ПО
   ОБЩИЕ

djvjv

А как вывести тогда мне Количество?
И как мне вывести Сумма прописью в подвал и номер строки в табличную часть?

DirecTwiX

Цитата: djvjv от 04 мая 2012, 23:39
А как вывести тогда мне Количество?
И как мне вывести Сумма прописью в подвал и номер строки в табличную часть?
Количество выводить так же как и выводил.
Если нужен номер строки, то убери группировку по номенклатуре и выбирай из документа ещё и номер строки.

Теги:

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

Рейтинг@Mail.ru

Поиск