Имя: Пароль:
1C
1C 7.7
v7: Ошибка в запросе
0 St17
 
03.02.12
15:16
Здравствуйте!
ТИС
Отчет Остатки ТМЦ
Добовляю условие

   Если ПустоеЗначение(СкладСборки)=0 Тогда
       ТекстЗапроса = ТекстЗапроса +
       "Условие ((Номенклатура.СкладСборки=СкладСборки) и (Номенклатура.ЭтоГруппа()=0));";
   КонецЕсли;


Вся функция

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

Ошибка
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Отчет.ОстаткиТМЦ.Форма.Модуль(750)}: Группировка Номенклатура Все;Условие ((Номенклатура.СкладСборки=СкладСборки) и (Номенклатура.ЭтоГруппа()=0)); <<?>> |Условие Номенклатура.СкладСборки=СкладСборки;Группировка Склад Все ВошедшиеВЗапрос;Условие (Номенклатура в ВыбТМЦ);
Запрос[18] : Неизвестая ошибка '|'

Как только эту палочку не ставлю всеравно ошибка.
Подскажите пожалусто где ошибка!
1 ДенисЧ
 
03.02.12
15:18
Сообщить(ТекстЗапроса) покажи
2 GROOVY
 
03.02.12
15:18
ТекстЗапроса = СтрПериод + "
   |Фирма            = Регистр.ОстаткиТМЦ.Фирма,            
   |                 Регистр.РезервыТМЦ.Фирма;
3 St17
 
03.02.12
15:20
(1) //{{ЗАПРОС(Сформировать)

Фирма            = Регистр.ОстаткиТМЦ.Фирма,            
                Регистр.РезервыТМЦ.Фирма;
УпрАналитика    = Регистр.ОстаткиТМЦ.Фирма.УпрАналитика,
                Регистр.РезервыТМЦ.Фирма.УпрАналитика;
ЮрЛицо        = Регистр.ОстаткиТМЦ.Фирма.ЮрЛицо,      
                Регистр.РезервыТМЦ.Фирма.ЮрЛицо;
Номенклатура    = Регистр.ОстаткиТМЦ.Номенклатура,      
                Регистр.Заказы.Номенклатура,
                Регистр.РезервыТМЦ.Номенклатура;
Склад            = Регистр.ОстаткиТМЦ.Склад,            
                Регистр.РезервыТМЦ.Склад;  
РозничныйСклад = Регистр.ОстаткиТМЦ.Склад.РозничныйСклад,            
                Регистр.РезервыТМЦ.Склад.РозничныйСклад;Количество = Регистр.ОстаткиТМЦ.Количество;
Резерв     = Регистр.РезервыТМЦ.Количество;
Функция КоличествоКонОст = КонОст(Количество);
Группировка Номенклатура Все;Условие ((Номенклатура.СкладСборки=СкладСборки) и (Номенклатура.ЭтоГруппа()=0));
4 St17
 
03.02.12
15:31
(2) Сделал не помогло!
5 St17
 
03.02.12
15:34
(1) вывел текстЗапроса



Фирма            = Регистр.ОстаткиТМЦ.Фирма,            
                Регистр.РезервыТМЦ.Фирма;
УпрАналитика    = Регистр.ОстаткиТМЦ.Фирма.УпрАналитика,
                Регистр.РезервыТМЦ.Фирма.УпрАналитика;
ЮрЛицо        = Регистр.ОстаткиТМЦ.Фирма.ЮрЛицо,      
                Регистр.РезервыТМЦ.Фирма.ЮрЛицо;
Номенклатура    = Регистр.ОстаткиТМЦ.Номенклатура,      
                Регистр.Заказы.Номенклатура,
                Регистр.РезервыТМЦ.Номенклатура;
Склад            = Регистр.ОстаткиТМЦ.Склад,            
                Регистр.РезервыТМЦ.Склад;  
РозничныйСклад = Регистр.ОстаткиТМЦ.Склад.РозничныйСклад,            
                Регистр.РезервыТМЦ.Склад.РозничныйСклад;Количество = Регистр.ОстаткиТМЦ.Количество;
Резерв     = Регистр.РезервыТМЦ.Количество;
Функция КоличествоКонОст = КонОст(Количество);
Группировка Номенклатура Все;Условие ((Номенклатура.СкладСборки=СкладСборки) и (Номенклатура.ЭтоГруппа()=0));|Условие Номенклатура.СкладСборки=СкладСборки;Группировка Склад Все ВошедшиеВЗапрос;Условие (Номенклатура в ВыбТМЦ);
6 andrewks
 
03.02.12
15:34
поставь группировки в конце
7 St17
 
03.02.12
15:36
стоп
8 St17
 
03.02.12
15:37
два раза мое условие
9 St17
 
03.02.12
15:38
Спасибо вам. Вот это надо было раньше мне сделать.
Сообщить(ТекстЗапроса);
Запарка!
10 Рэйв
 
03.02.12
15:38
вот так надо

      ТекстЗапроса = ТекстЗапроса +"
       Условие ((Номенклатура.СкладСборки=СкладСборки) и (Номенклатура.ЭтоГруппа()=0));";
11 Рэйв
 
03.02.12
15:39
т.е.

...+"
|Условие....
12 St17
 
03.02.12
15:43
(10) условие у меня с ошибкой было в другой функции и там я поставил палочку!
13 andrewks
 
03.02.12
15:45
(12) не, ты не поставил там скобочки
14 НЕА123
 
03.02.12
15:48
палочки меня достают.
пишу, строки с переносом зачастую так

"Фирма            = Регистр.ОстаткиТМЦ.Фирма,"
"                 Регистр.РезервыТМЦ.Фирма;"
"УпрАналитика     = Регистр.ОстаткиТМЦ.Фирма.УпрАналитика,"
.....
15 KUBIK
 
03.02.12
15:51
Может так проще?:

ТекстЗапроса=ТекстЗапроса+"
|Группировка Номенклатура Без Групп Все;
|Группировка Склад Все ВошедшиеВЗапрос;
|Условие (Номенклатура.СкладСборки=СкладСборки);
|Условие (Номенклатура в ВыбТМЦ);";
16 St17
 
03.02.12
15:55
Получилось так.
1)Придумал условие.
2)Понял что не туда вставил!
3)Нашол куда добавить!
4)Подкоректировал синтаксис и условие!

а удалить старое условие забыл!
Группировка Номенклатура Все;
Условие ((Номенклатура.СкладСборки=СкладСборки) и (Номенклатура.ЭтоГруппа()=0));
|Условие Номенклатура.СкладСборки=СкладСборки;
Группировка Склад Все ВошедшиеВЗапрос;Условие (Номенклатура в ВыбТМЦ);
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший