1c77 Вид документа в запросе

vbs

Well-Known Member
18.02.2007
1 708
3
Санкт-Петербург
#1
Конфигурация на основе ТиС9.2.
Потребовалась такая штука - выбрать в запросе по регистру (в регистре есть измерение ДокОснование) документы, за исключением документов одного вида.
Что-то никак не могу найти подходящий синтаксис.
Анализ при группировке по документу не годится, нужно получить НачОст и КонОст без учета некоего документа.
А может, это вообще невозможно ?
 

puh14

Well-Known Member
11.07.2008
1 412
0
НеРезиновая
#2
Условие (Не(док.Вид() в ИсключаемыйВид));

Второй вариант - список значений без этого документа,"не" убрать
 

vitfil

IT-интегратор
02.04.2004
2 062
0
44
Минск
#3
Функция ААА = НачОст(...) (Когда ДокОсн.Вид() <> ""ИсключаемыйВид"")
 

vbs

Well-Known Member
18.02.2007
1 708
3
Санкт-Петербург
#4
ОплатаНаВыгрузке = "ОплатаНаВыгрузке";
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с Date1 по Date2;
|Заказчик = Регистр.Контрагенты.Контрагент;
|Сумма = Регистр.Контрагенты.Сумма;
|Док = Регистр.Контрагенты.ТекущийДокумент;
|Функция СуммаНачОст = НачОст(Сумма);
|Функция СуммаКонОст = КонОст(Сумма);
|Функция СуммаПриход = Приход(Сумма);
|Функция СуммаРасход = Расход(Сумма);";
ТекстЗапроса = ТекстЗапроса + "Условие(Заказчик в ВыбКонтрагент);
|Условие (Не(док.Вид() в ОплатаНаВыгрузке));
|Group Док;
|"//}}ЗАПРОС
;
[/quote]
В таком варианте Все работает !
Условие (Не(док.Вид() в ИсключаемыйВид));
Главное, что я пробовал подобное со знаками "=" или "<>" - вот и не получалось

|Функция СуммаНачОст = НачОст(Сумма) Когда (Док.Вид() <> ОплатаНаВыгрузке);
|Функция СуммаКонОст = КонОст(Сумма) Когда (Док.Вид() <> ОплатаНаВыгрузке);

А в таком - таки синтаксических ошибок нет, но результат никак не меняется, независимо от наличия КОГДА

Спасибо за быстрый отклик, чтобы я без подсказок делал ?
Через неделю плюсик за мной
 

vitfil

IT-интегратор
02.04.2004
2 062
0
44
Минск
#5
|Функция СуммаНачОст = НачОст(Сумма) Когда (Док.Вид() <> ""ОплатаНаВыгрузке"");
|Функция СуммаКонОст = КонОст(Сумма) Когда (Док.Вид() <> ""ОплатаНаВыгрузке"");
Забыл "закавычить" ОплатаНаВыгрузке, если это вид документа такой.
 

vbs

Well-Known Member
18.02.2007
1 708
3
Санкт-Петербург
#7
Забыл "закавычить" ОплатаНаВыгрузке, если это вид документа такой
ОплатаНаВыгрузке = "ОплатаНаВыгрузке";
Да нет, все в порядке, вроде.
|Функция СуммаНачОст = НачОст(Сумма) Когда (Док.Вид() <> ОплатаНаВыгрузке);
|Функция СуммаКонОст = КонОст(Сумма) Когда (Док.Вид() <> ОплатаНаВыгрузке);
Дает тот же результат, что и без условий.
А вот это
Условие (Не(док.Вид() в ОплатаНаВыгрузке));
сразу сработало, как надо, а
Условие (док.Вид() <> ОплатаНаВыгрузке);
выдавало синтаксическую ошибку (ругалась на Вид())
 

unknown181538

НеГуру
28.12.2008
1 417
0
30
Москва
#8
Дает тот же результат, что и без условий.
А вот это
Цитата(vbs @ 21:09:2009 - 10:31)
Условие (Не(док.Вид() в ОплатаНаВыгрузке));

сразу сработало, как надо, а
Условие (док.Вид() <> ОплатаНаВыгрузке);
выдавало синтаксическую ошибку (ругалась на Вид())
Так и не понял - отличие только в "Не"?
 

vbs

Well-Known Member
18.02.2007
1 708
3
Санкт-Петербург
#9
Условие (док.Вид() <> ОплатаНаВыгрузке);
Не работает (НачОст и КонОст неправильные)
Условие (Не(док.Вид() в ОплатаНаВыгрузке));
а так работает.
Условие (док.Вид() = ОплатаНаВыгрузке);
и
Условие (док.Вид() в ОплатаНаВыгрузке);

не сравнивал