не формируются данные по запросу
27.03.2009
20:12
#1
"7.7 ПУБ, делаю запрос //*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Без итогов;
|Товар = Документ.РеализацияПродукции.Товар, Документ.План.Продукция, Документ.Заявка.Товар, регистр.МестаХранения.МПЗ;
|КолРП = Документ.РеализацияПродукции.Количество;
|КолМХ = регистр.МестаХранения.Количество;
|КолПлан = Документ.План.Количество;
|КолЗаявка = Документ.Заявка.Количество;
|Функция КолПланСумма = Сумма(КолПлан);
|Функция КолРПСумма = Сумма(КолРП);
|Функция КолЗаявкаСумма = Сумма(КолЗаявка);
|Функция МХ = КонОст(КолМХ);
|Группировка Товар;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка() = 1 Цикл
Если (Запрос.Товар.Родитель.Наименование=Перечисление.Видыматериалов.Сырье)или
( Запрос.Товар.Родитель.Наименование=Перечисление.Видыматериалов.ДавальческоеСырье) Тогда
Сообщить("материалы");
ИначеЕсли (Запрос.Товар.Родитель.Наименование=Перечисление.ТипыНоменклатуры.Продукция) Тогда
ИначеЕсли(Запрос.Товар.Родитель.Наименование=Перечисление.ТипыНоменклатуры.Полуфабрикат) Тогда
Наимен = Запрос.МПЗ;
План = Запрос.КолПланСумма;
Заявки = Запрос.КолЗаявкаСумма;
МХ = Запрос.МХ;
Таб.ВывестиСекцию("Сформировать");
//Иначе
// продолжить;
КонецЕсли;
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", """");
КонецПроцедуры
и делаю сортировку по условию по родителю т.е.отбираю только полуфабрикаты и продукцию, а врезультате ничего, помогите правильно ли я написала условие?"
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Без итогов;
|Товар = Документ.РеализацияПродукции.Товар, Документ.План.Продукция, Документ.Заявка.Товар, регистр.МестаХранения.МПЗ;
|КолРП = Документ.РеализацияПродукции.Количество;
|КолМХ = регистр.МестаХранения.Количество;
|КолПлан = Документ.План.Количество;
|КолЗаявка = Документ.Заявка.Количество;
|Функция КолПланСумма = Сумма(КолПлан);
|Функция КолРПСумма = Сумма(КолРП);
|Функция КолЗаявкаСумма = Сумма(КолЗаявка);
|Функция МХ = КонОст(КолМХ);
|Группировка Товар;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка() = 1 Цикл
Если (Запрос.Товар.Родитель.Наименование=Перечисление.Видыматериалов.Сырье)или
( Запрос.Товар.Родитель.Наименование=Перечисление.Видыматериалов.ДавальческоеСырье) Тогда
Сообщить("материалы");
ИначеЕсли (Запрос.Товар.Родитель.Наименование=Перечисление.ТипыНоменклатуры.Продукция) Тогда
ИначеЕсли(Запрос.Товар.Родитель.Наименование=Перечисление.ТипыНоменклатуры.Полуфабрикат) Тогда
Наимен = Запрос.МПЗ;
План = Запрос.КолПланСумма;
Заявки = Запрос.КолЗаявкаСумма;
МХ = Запрос.МХ;
Таб.ВывестиСекцию("Сформировать");
//Иначе
// продолжить;
КонецЕсли;
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", """");
КонецПроцедуры
и делаю сортировку по условию по родителю т.е.отбираю только полуфабрикаты и продукцию, а врезультате ничего, помогите правильно ли я написала условие?"
28.03.2009
19:18
#3
1) С чего Вы взяли, что данные по запросу не формируются?
2) Для сравнения наименования группы, на что было указано выше, нужно поставить "Строка(Перечисление.Видыматериалов.Сырье)".
3) Вообще странное условие сравнения. Нельзя разве сразу в запросе отобрать нужные виды?
2) Для сравнения наименования группы, на что было указано выше, нужно поставить "Строка(Перечисление.Видыматериалов.Сырье)".
3) Вообще странное условие сравнения. Нельзя разве сразу в запросе отобрать нужные виды?
28.03.2009
22:07
#4
т.е.я выбираю ВидМПЗ и прописываю Условие(ВидМПЗ=Перечисление.ВидыМатериалов.Продукция)и т.д.
тогда исчезает количество План, Заявка и реализация, а мне надо чтобы были все данные тольео по 2-ум видам , а он мне выдает все, поэтому и пытаюсь прописать условие, а оно не срабатывает вылетает пишет ошибку(поле агрегатного объекта не найдено т.е. в справочниках одно и тоже поле названо по разному)
тогда исчезает количество План, Заявка и реализация, а мне надо чтобы были все данные тольео по 2-ум видам , а он мне выдает все, поэтому и пытаюсь прописать условие, а оно не срабатывает вылетает пишет ошибку(поле агрегатного объекта не найдено т.е. в справочниках одно и тоже поле названо по разному)
Читают тему
(гостей: 1)