Имя: Пароль:
1C
1C 7.7
v7: Запрос по документам
,
0 NemeL
 
07.12.11
10:26
Добрый день, не выполняется запрос полность, необходимо что запрос выдовал все Материалы которые найдет в документах а не только самый первый
[CODE]
Процедура Сформировать()
   Перем Запрос, ТекстЗапроса, Таб;
   //Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |ОбрабатыватьДокументы Все;
   |Материал = Документ.МаршрутныйЛист.Материал;
   |ЦветТкани= Документ.МаршрутныйЛист.ЦветТкани;
   |Количество = Документ.МаршрутныйЛист.Расход;
   |НомерДок=Документ.МаршрутныйЛист.НомерДок;
   |Группировка Материал упорядочить по Материал.Наименование;
   |Группировка Документ;
   |Условие(Материал в ВыбТкань);
   |"//}}ЗАПРОС
   ;
   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   // Заполнение полей "Заголовок"
   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка("Материал") = 1 Цикл
       // Заполнение полей Материал
       Таб.ВывестиСекцию("Материал");
   КонецЦикла;
   
   // Вывод заполненной формы
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры

[/CODE]
1 Mans
 
07.12.11
10:30
вторая группировка для чего? да и функций нет
2 viktor_vv
 
07.12.11
10:32
А что значит "самый первый" ?
(1) По документам функция необязательна.
3 Mans
 
07.12.11
10:33
Запрос.Выгрузить(ТЗ_Визуальная,1);//тут все и увидишь
4 NemeL
 
07.12.11
10:46
(2) я выбираю материал который мне нужен, он находит документ документ где встечается этот материал и все дальше не ищет выводит только этот документ
5 Дядя Васька
 
07.12.11
10:49
(4) В запросе две группировки, в обходе результатов одна.
6 Дядя Васька
 
07.12.11
10:50
+(5) Действительно выгрузки в ТЗ, да напиши ВыбратьСтроку(), можно прямо по Shift-F9 в отладчике, сразу и увидишь что он на самом деле возвращает.
7 Дядя Васька
 
07.12.11
10:50
*выгрузки = выгрузи
8 Mans
 
07.12.11
11:11
судя по всему ему нужно
..............
|Группировка Материал упорядочить по Материал.Наименование;
|Группировка ЦветТкани;
|Функция Кол=Сумма(Количество);
.............
Пока Запрос.Группировка("Материал") = 1 Цикл
   Пока Запрос.Группировка("ЦветТкани") = 1 Цикл
9 vladko
 
07.12.11
11:18
или так:
|Группировка Материал упорядочить по Материал.Наименование;
|Группировка Документ;
|Группировка СтрокаДокумента;
Пока Запрос.Группировка("Материал") = 1 Цикл
   Пока Запрос.Группировка("Документ") = 1 Цикл
   Пока Запрос.Группировка("СтрокаДокумента") = 1 Цикл
10 vladko
 
07.12.11
11:19
+(9)тогда не только 1я строка, а вся табличная часть будет обрабатываться