v7: Как ставить условие?
☑
0
lesstat
27.06.12
✎
12:23
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы все;
|Склад = Регистр.ОстаткиТМЦ.Склад;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|ТекущийДокумент = Регистр.ОстаткиТМЦ.ТекущийДокумент;
|Функция КоличествоНачОст = НачОст(Количество);
|Функция КоличествоПриход = Приход(Количество);
|Функция КоличествоРасход = Расход(Количество);
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Склад;
|Группировка Номенклатура;
|Группировка Документ;
|Условие(Склад в ВыбСклад);
|Условие(Номенклатура в ВыбНоменклатура);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Склад
Таб.ВывестиСекцию("Склад");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Номенклатура
Таб.ВывестиСекцию("Номенклатура");
Пока Запрос.Группировка(3) = 1 Цикл
// Заполнение полей Документ
Таб.ВывестиСекцию("Документ");
КонецЦикла;
КонецЦикла;
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
на форме есть флажки нулевыеостаткинананачало и нулевыеостаткинаконец,
как мне отбирать номенклатуры при включении того или иного флажка или если оба флажка включены?
1
Maxus43
27.06.12
✎
12:23
В 7-ку перенесите
2
lesstat
27.06.12
✎
12:26
(1) блин ошибся а как перенести?
3
ALoHA
27.06.12
✎
17:36
Перед Запрос.Выполнить Поставь"
Если Птица1=1 Тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие Твоё= (....);";
Иначе
ТекстЗапроса=ТекстЗапроса+"
|Условие Твоё2= (....);";
КонецЕсли;
4
ALoHA
27.06.12
✎
17:41
Поправлюсь:
Если нулевыеостаткинананачало = 1 Тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие Твоё= (....);";
ИначеЕсли нулевыеостаткинаконец = 1 Тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие Твоё2= (....);";
ИначеЕсли (нулевыеостаткинаконец = 1) И (нулевыеостаткинананачало = 1) Тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие Твоё3= (....);";
КонецЕсли;
5
Ёпрст
гуру
27.06.12
✎
17:44
(0) интересно было бы посмотреть, как ты получаешь "нулевые" остатки на начало и конец периода.
6
viktor_vv
27.06.12
✎
17:48
У ТС уже ж была такая ветка, там все объяснили, или он надеется на чудо.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший