Имя: Пароль:
1C
1С v8
как добавить условие в текст запроса?
,
0 Ar-Bus
 
06.07.12
13:00
Доброго времени суток, господа. Пользуюсь конструктором выходной формы, делаю внешний отчет. Реестр документов делаю. Короче надо сделать вывод на печатную форму документов вида счет-фактура с условием, чтобы в комментарии этих документов содержался текст "текстУсловия". С помощью конструктора выходной формы создаю запрос, а вот как и где прописать условие - не могу разобраться. Я понимаю, что это довольно примитивный вопрос, но все же, помогите!
1 Naumov
 
06.07.12
13:02
где-то в теле
2 Ar-Bus
 
06.07.12
13:06
(1) ну понятно, что в тебе запроса, но... дословно текст условия какой должен быть?  

...
ГДЕ
... - какой текст здесь написать?
3 Jaap Vduul
 
06.07.12
13:10
Комментарий содержит '%' + текстУсловия + '%'
4 Ar-Bus
 
06.07.12
13:11
(3) поподробнее, пожалуйста!!!
5 Jaap Vduul
 
06.07.12
13:16
(4)Извиняюсь, наврал.
В запросе надо писать "... ГДЕ Комментарий ПОДОБНО '%' + текстУсловия + '%'"
6 Ar-Bus
 
06.07.12
13:19
(4) текстУсловия можно подробно написать???
7 palpetrovich
 
06.07.12
13:20
ВЫБРАТЬ
   СчетНаОплатуПокупателю.Ссылка
ИЗ
   Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
ГДЕ
   СчетНаОплатуПокупателю.Комментарий ПОДОБНО &Коммент
8 Ar-Bus
 
06.07.12
13:22
(7) &Коммент чему равно?  Текст какой там должен быть?
9 badboychik
 
06.07.12
13:25
%текстУсловия%
10 kosts
 
06.07.12
13:25

Запрос.текст = "... ГДЕ ... И &ДопУсловие";

Если Не ПустаяСтрока(текстУсловия) Тогда
   Запрос.текст = СтрЗаменить(Запрос.текст, "&ДопУсловие", " Комментарий ПОДОБНО &ИскомоеЗначение");
Иначе
   Запрос.текст = СтрЗаменить(Запрос.текст, "&ДопУсловие", "Истина");
КонецЕсли;


Можно будет продолжать использовать конструктор запроса.
11 badboychik
 
06.07.12
13:26
кажется строку для оператора ПОДОБНО надо задавать обязательно напрямую а не в параметре
12 kosts
 
06.07.12
13:28
(11) Не обязательно


Запрос.Текст =
           "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ПЕРВЫЕ 2
           |    СотрудникиОрганизаций.Физлицо.Наименование КАК ФизлицоНаименование
           |ИЗ
           |    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
           |ГДЕ
           |    СотрудникиОрганизаций.Наименование ПОДОБНО &Текст СПЕЦСИМВОЛ ""~""
           |    И СотрудникиОрганизаций.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство)
           |    И СотрудникиОрганизаций.Актуальность";
13 Ar-Bus
 
06.07.12
13:38
Макет = ВнешняяОбработкаОбъект.ПолучитьМакет("Отчет");
   ТекстУсловия="перевыставленный";
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    СчетФактураВыданный.Дата КАК Дата,
   |    СчетФактураВыданный.ВидСчетаФактуры,
   |    СчетФактураВыданный.Номер,
   |    СчетФактураВыданный.Комментарий,
   |    СчетФактураВыданный.СуммаДокумента КАК СуммаДокумента
   //|    Текст=
   |ИЗ
   |    Документ.СчетФактураВыданный КАК СчетФактураВыданный
   |ГДЕ
   |    СчетФактураВыданный.Комментарий ПОДОБНО &Текст
   
   |УПОРЯДОЧИТЬ ПО
   |    Дата
   |ИТОГИ ПО
   |    ОБЩИЕ,
   |    СуммаДокумента";
   
   Запрос.УстановитьПараметр("Текст",текстУсловия);

   Результат = Запрос.Выполнить();

В итоге выходит печатная форма с пустыми строками(только шапка и подвал), т.е. нет ни одного документа, удовлетворяющего условию! Что в условии не так?
14 MaXpaT
 
06.07.12
13:40
ТекстУсловия="%перевыставленный%";

вот так вот пробуй
15 palpetrovich
 
06.07.12
13:41
(8) Запрос.УстановитьПараметр("Коммент", "%" + ТекстУсловия + "%");
16 kosts
 
06.07.12
13:42
Это зачем СуммаДокумента?

|ИТОГИ ПО
   |    ОБЩИЕ,
   |    СуммаДокумента
17 MaXpaT
 
06.07.12
13:43
|    СуммаДокумента

ага это лучше убрать
18 Ar-Bus
 
06.07.12
13:44
(14) все получилось, спасибо большое!
19 Ar-Bus
 
06.07.12
13:44
(15) ваша правда, благодарю!
20 Ar-Bus
 
06.07.12
13:49
(17) если это убрать, тогда не выходят строки с отобранными документами
21 kosts
 
06.07.12
13:50
(20) Тебе виднее, но сумма в группировке применяется крайне редко...
22 Ar-Bus
 
06.07.12
13:55
(21) виднее, скорее всего, вам, поэтому помогите правильно написать запрос
23 kosts
 
06.07.12
13:57
Если разрабатываешь новый отчет, то возможно нужно убрать излишнюю выборку.
24 acsent
 
06.07.12
13:59
кошерно юзать построитель запроса
25 Ar-Bus
 
06.07.12
14:11
(23) мне не нужна излишняя выборка. Отчет должен выглядеть так: сверху заголовок отчета, затем таблица с колонками "дата, номер, вид документа, сумма, комментарий". В строках таблицы выходят счета-фактуры, в комментариях которых присутствует текст "перевыставленный". В подвале таблицы должна выходить общая сумма выведенных документов
26 kosts
 
06.07.12
14:14
(25) Тогда должно быть 2 уровня выборки, примерно так

ВыборкаОбщиеИтоги = Результат .Выбрать();
Пока ВыборкаОбщиеИтоги.Следующий() Цикл
   ВыборкаДокументы = ВыборкаОбщиеИтоги.Выбрать();
   Пока ВыборкаДокументыСледующий() Цикл
   КонецЦикла;
КонецЦикла;


Без СуммаДокумента
27 Ar-Bus
 
06.07.12
14:37
(26) спасибо, буду пробовать
28 Ar-Bus
 
06.07.12
14:40
а вот еще вопрос. Если я в конструкторе выходной формы на закладке "отчет" ставлю галочку "использовать построитель отчета", тогда текст Запроса меняется кардинально... А как мне в этом новом тексте написать по аналогии из старого текста строку:
   
     Запрос.УстановитьПараметр("Текст","%перевыставленный%");
29 Ar-Bus
 
06.07.12
14:50
поднимаю
30 palpetrovich
 
06.07.12
14:53
(28) откорректировать потом, что не ясно-то? :)
31 Ar-Bus
 
06.07.12
15:00
(28) ну а как откорректировать? Как в тексте при использовании ПостроителяОтчета будет выглядеть данная строка?
Запрос.УстановитьПараметр("Текст","%перевыставленный%");
32 Ar-Bus
 
06.07.12
16:03
(31) поднимаю