Имя: Пароль:
1C
1C 7.7
v7: результат функции в условии запроса
0 vitalka
 
16.03.12
13:53
Есть запрос

   "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Товары = Справочник.Товары.ТекущийЭлемент, Регистр.ОстаткиТоваров.Товар;
   |ОстатокТовара = Регистр.ОстаткиТоваров.ОстатокТовара;
   |ФлагУчета = Регистр.ОстаткиТоваров.ФлагУчета;
   |Функция ОстатокТовараНачОст = НачОст(ОстатокТовара);
   |Функция ОстатокТовараПриход = Приход(ОстатокТовара);
   |Функция ОстатокТовараРасход = Расход(ОстатокТовара);
   |Функция ОстатокТовараКонОст = КонОст(ОстатокТовара);
   |Группировка Товары;
   |Условие(ФлагУчета<>1);
   |Условие(ОстатокТовараРасход <= 0);
   |"//}}ЗАПРОС

при отработке ругается

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{D:\ARHIV\BAZA\EXTFORMS\НЕПРОДАЕТСЯ.ERT(24)}: Условие(ОстатокТовараРасход  <<?>> <= 0);
Запрос[12] : Ошибка в выражении 'ОстатокТовараРасход'

Что не так?
1 povar
 
16.03.12
13:54
Запрос.ОстатокТовараРасход
2 Ёпрст
 
16.03.12
13:55
(0) не делай так никогда, ибо ты не ведаешь, что творишь.
3 povar
 
16.03.12
13:56
(2) хотя да, согласен
4 viktor_vv
 
16.03.12
13:57
(0) Только ты сильно не обольщайся на результат работы такого условия. Скорее всего это не совсем то, что ты хочешь.
5 vitalka
 
16.03.12
14:10
не, ну конечно можно обработать уже результат запроса и выводить только то, что (Запрос.ОстатокТовараРасход <=0)

я думал, что если условие поставить в самом запросе то процедура отработается быстрее

(4)можно подробнее
6 Ёпрст
 
16.03.12
14:13
(5) условие на результат функции будет наложен при каждом вычислении функции, это раз, потеряешь результат всех остальных функций, это два..
Це вам не having, тут условие в ветку where летит
7 МихаилМ
 
16.03.12
14:18
+(6)

к тому же можно получить неправильную выборку

года 4 назад плотно обсуждалось на этом форуме

может ветка в архиве сохранилась
8 vitalka
 
16.03.12
14:26
получается даже

|Товары = Справочник.Товары.ТекущийЭлемент, Регистр.ОстаткиТоваров.Товар;

не имеет смысла из-за

условия

|Условие(ФлагУчета<>1);

В запрос попадут только товары которые есть в Регистр.ОстаткиТоваров
9 vitalka
 
16.03.12
14:27
достаточно

|Товары = Регистр.ОстаткиТоваров.Товар;