Имя: Пароль:
1C
1C 7.7
v7: Условие в запросе не срабатывает почему?
0 1CForEver
 
22.07.11
17:08
ТекстЗапроса =
   "//{{ЗАПРОС(РеестрСчФактурПолученных)
   |Период с ДатаНач по ДатаКон;
   |Док =            Документ.СчетФактураПолученный.ТекущийДокумент,
   |                Документ.ПоступлениеМатериалов.ТекущийДокумент,
   |                Документ.ПоступлениеНМА.ТекущийДокумент,
   |                Документ.ПоступлениеОС.ТекущийДокумент,
   |                Документ.ПоступлениеОборудования.ТекущийДокумент,
   |                Документ.ПоступлениеТоваров.ТекущийДокумент,
   |                Документ.ПоступлениеУслуг.ТекущийДокумент,
   |                Документ.ПоступлениеУслугДопРасходы.ТекущийДокумент,
   |                Документ.ПоступлениеИзПереработки.ТекущийДокумент,
   |                Документ.ПоступлениеУслугПрочее.ТекущийДокумент;
   |
   |Субконто1 =    Документ.СчетФактураПолученный.Субконто1,
   |                Документ.ПоступлениеУслугПрочее.Субконто1;
   |
   |Контрагент =    Документ.СчетФактураПолученный.Контрагент,
   |                Документ.ПоступлениеМатериалов.Контрагент,
   |                Документ.ПоступлениеНМА.Контрагент,
   |                Документ.ПоступлениеОС.Контрагент,
   |                Документ.ПоступлениеОборудования.Контрагент,
   |                Документ.ПоступлениеТоваров.Контрагент,
   |                Документ.ПоступлениеУслуг.Контрагент,
   |                Документ.ПоступлениеУслугДопРасходы.Контрагент,
   |                Документ.ПоступлениеИзПереработки.Контрагент,
   |                Документ.ПоступлениеУслугПрочее.Контрагент;
   |
   |Сумма =        Документ.СчетФактураПолученный.СуммаБезНДС,
   |                Документ.ПоступлениеМатериалов.Всего,
   |                Документ.ПоступлениеНМА.Всего,
   |                Документ.ПоступлениеОС.Всего,
   |                Документ.ПоступлениеОборудования.Всего,
   |                Документ.ПоступлениеТоваров.Всего,
   |                Документ.ПоступлениеУслуг.Всего,
   |                Документ.ПоступлениеУслугДопРасходы.Всего,
   |                Документ.ПоступлениеИзПереработки.Всего,
   |                Документ.ПоступлениеУслугПрочее.Всего;
   |
   |НДС =            Документ.СчетФактураПолученный.НДС,
   |                Документ.ПоступлениеМатериалов.НДС,
   |                Документ.ПоступлениеНМА.НДС,
   |                Документ.ПоступлениеОС.НДС,
   |                Документ.ПоступлениеОборудования.НДС,
   |                Документ.ПоступлениеТоваров.НДС,
   |                Документ.ПоступлениеУслуг.НДС,
   |                Документ.ПоступлениеУслугДопРасходы.НДС,
   |                Документ.ПоступлениеИзПереработки.НДС,
   |                Документ.ПоступлениеУслугПрочее.НДС;
   |
   |ЕстьСчФ =      Документ.СчетФактураПолученный.СуммаБезНДС,
   |               Документ.ПоступлениеМатериалов.ЕстьСчетФактура,
   |                Документ.ПоступлениеНМА.ЕстьСчетФактура,
   |                Документ.ПоступлениеОС.ЕстьСчетФактура,
   |                Документ.ПоступлениеОборудования.ЕстьСчетФактура,
   |                Документ.ПоступлениеТоваров.ЕстьСчетФактура,
   |                Документ.ПоступлениеУслуг.ЕстьСчетФактура,
   |                Документ.ПоступлениеУслугДопРасходы.ЕстьСчетФактура,
   |                Документ.ПоступлениеИзПереработки.ЕстьСчетФактура,
   |                Документ.ПоступлениеУслугПрочее.ЕстьСчетФактура;
   |                
   |Функция ВсегоСумма = Сумма(Сумма+?(Док.Вид()=""СчетФактураПолученный"",НДС,0));
   |Функция ВсегоНДС = Сумма(НДС);
   |"//}}ЗАПРОС(РеестрСчФактурПолученных)
   ;                                
   Если (ГруппироватьПоКонтрагентам = 1) Тогда
       ТекстЗапроса = ТекстЗапроса + "Группировка Контрагент;"
   КонецЕсли;    
       ТекстЗапроса = ТекстЗапроса + "
   |Группировка Док;
   |
   |Условие (ЕстьСчФ <> 0);
   |";
   
   Если Исключить_Сч = 1 Тогда
       ТекстЗапроса = ТекстЗапроса + "Условие (не(Субконто1 в СписокЗначенийСубконто));";
   Иначе
       ТекстЗапроса = ТекстЗапроса + "Условие (Субконто1 в СписокЗначенийСубконто);";
   КонецЕсли;
1 1CForEver
 
22.07.11
17:10
(0) Вопрос, ТекстЗапроса = ТекстЗапроса + "Условие (не(Субконто1 в СписокЗначенийСубконто));"; вот это условие не срабатывает, а вот это срабатывает
ТекстЗапроса = ТекстЗапроса + "Условие (Субконто1 в СписокЗначенийСубконто);";

Кто нибудь сталкивался?
2 Надо работать
 
22.07.11
17:11
Юзай Принадлежит()
3 fedoss
 
22.07.11
17:12
Уже не помню деталей, но конструкции "не ... в" работают криво. Попробуй ВключитьSQL(0) или переделать.
4 Ёпрст
 
22.07.11
17:12
(1)

ТекстЗапроса = ТекстЗапроса + "Условие (СписокЗначенийСубконто.Принадлежит(Субконто1)=0)

наслаждайся
5 andrewks
 
22.07.11
17:12
если группы учитывать не надо, то:

ТекстЗапроса = ТекстЗапроса + "Условие (СписокЗначенийСубконто.НайтиЗначение(Субконто1)=0);";
6 1CForEver
 
22.07.11
17:15
Спасибо всем.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший