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

Отчёт по заказам покупателя

Автор Nikolya228, 28 июн 2014, 18:09

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

Nikolya228

Всем Привет!
При формировании отчёта ,программка почему-то выводит всю номенклатуру и при чём несколько раз подряд и не по алфавиту,а не ту которая в заказе покупателя!!! Хотя на мой взгляд Запрос2 составлен правильно!! Подскажите ,что делать ,что бы у меня выводило
заказ покупателя и номенклатуру из этого заказа!Заранее благодарен!

Функция  Печать(Контрагент,ТабДок) Экспорт
 
   

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

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

дфтын

  |ИЗ
               |Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары,
               |Документ.ЗаказПокупателя КАК ЗаказПокупателя
                |ГДЕ
               |ЗаказПокупателя.Ссылка = &Ссылка";

На

  |ИЗ
               |Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
                |ГДЕ
               |ЗаказПокупателяТовары.Ссылка.Ссылка = &Ссылка";

Но! С таким построением алгоритмов вам не сдать на 1С:Специалист:)

Klyacksa

Достаточно одного запроса:
ВЫБРАТЬ
ЗаказПокупателяТовары.Ссылка КАК Ссылка,
ЗаказПокупателяТовары.Номенклатура
ИЗ
Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
ГДЕ
ЗаказПокупателяТовары.Ссылка.Контрагент = &Контрагент

СГРУППИРОВАТЬ ПО
ЗаказПокупателяТовары.Ссылка,
ЗаказПокупателяТовары.Номенклатура
ИТОГИ ПО
Ссылка";

Далее - добавляете нужную сортировку и обход запроса по группировкам.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Теги:

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

Рейтинг@Mail.ru

Поиск