Вопрос № 89074: здравствуйте! прошу срочной помощи с вопросом по элементарному запросу..
В результате запроса мне необходимо получить документ, номер документа, товар, количество, сумма. Синтаксис запроса моего вроде правильный, но когда выводишь строки запроса,...
Вопрос № 89.074
здравствуйте! прошу срочной помощи с вопросом по элементарному запросу..
В результате запроса мне необходимо получить документ, номер документа, товар, количество, сумма. Синтаксис запроса моего вроде правильный, но когда выводишь строки запроса, то выводится документ, номер документа, а товар, количество, суммы идут пустые. Подскажите, в чем может быть проблема. Плиз..
Приложение:
Отправлен: 29.05.2007, 11:22
Вопрос задал: Попова Т Г (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Vizli
Здравствуйте, Попова Т Г!
смотрим в справке:
//**************************
Группировка
Получить следующее значение выборки запроса на заданном уровне группировки.
Синтаксис:
Группировка(<Группировка>, <Направление>)
Англоязычный синоним:
Group
Параметры:
<Группировка>
Выражение, содержащее порядковый номер или имя группировки.
<Направление>
Необязательный параметр. Числовое выражение:
1 — выборка значений группировки по возрастанию;
-1 (минус единица) — выборка значений группировки по убыванию.
Значение по умолчанию: 1.
//**************************
исправьте свой код так:
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
или так:
Пока Запрос.Группировка("Документ") = 1 Цикл
Пока Запрос.Группировка("СтрокаДокумента") = 1 Цикл
Ответ отправил: Vizli (статус: 5-ый класс)
Ответ отправлен: 29.05.2007, 11:32
Отвечает: Купава Александр Васильевич
Здравствуйте, Попова Т Г!
Получить табличную часть из запроса можно следующим образом:
ТекстЗапроса = "//{{ЗАПРОС(ОбработкаДок)
|Период с лмНачДата по лмКонДата;
|ОбрабатыватьДокументы Все;
|
|ТД = Документ.ВыпускИзделия.ТекущийДокумент;
//.................................................................
// |_ТМЦ = Документ.ВыпускИзделия.Товар;
// |_Кол = Документ.ВыпускИзделия.Количество;
// |_Сумма = Документ.ВыпускИзделия.СуммаПогашРуб;
//............................Эти строки можно исключить...........
|Группировка ТД;
//............. |Группировка СтрокаДокумента; ........и эту тоже...
|//}}Запрос";
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Пока Запрос.Группировка() = 1 Цикл
// Пока Запрос.Группировка() = 1 Цикл
Сообщить(Строка(Запрос.ТД) + " " + Строка(Запрос.ТД.НомерДок));
Док=Запрос.ТД;
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 Цикл
Сообщить(Док.Товар);
Сообщить(Док.Количество);
//.......и что там еще надо....
КонецЦикла;
// КонецЦикла;
КонецЦикла;
В своем запросе Вы не используете функции, поэтому у Вас не выводятся _Сум и _Кол. Просто переменные в итогах запроса не фиксируются, только Группировки и Функции. Для _ТМЦ добавьте группировку
В общем, попробуйте мой вариант (в Приложении) или вариант от эксперта Купава Александр Васильевич (там без дополнительных группировок и функций, однако благодаря непосредственному обращению к реквизитам вне запроса, код тоже работает).
Приложение:
--------- Мирный атом в КАЖДЫЙ дом!
Ответ отправил: Elric (статус: Специалист)
Ответ отправлен: 29.05.2007, 22:46 Оценка за ответ: 5 Комментарий оценки: Ребята, всем спасибо, как оказалось, тот документ, что мне необходим, явялется владельцем другого другого служебного документа, и соответственно в качестве табличной части используется таб.часть документа. Поэтому и не выводилась табл.часть. ее просто не было!!!