Имя: Пароль:
1C
 
Как в запросе указать строчку с кавычками?
0 pavlushov
 
19.04.11
11:44
Надо в запросе 7.7 указать что то подобное:
   |Условие(СокрЛП(Договор) = "Бла бла бла ""Бла"" бла бла");

В таком виде 7.7 ругается. Как сделать ?
1 Ёпрст
 
гуру
19.04.11
11:45
""вася""
2 Tatitutu
 
19.04.11
11:45
а Договор у тебя наверное документ ?
3 Ёпрст
 
гуру
19.04.11
11:46
а вообще, сравнивать приведенную ссылку со строкой моветон.
4 andrewks
 
19.04.11
11:49
жуть
5 pavlushov
 
19.04.11
11:55
и жуть и моветон - все понятно, суть такова одна 77 конектится к другой по оле и передает туда запрос, соответстенно в запрос приходится запихать значение переменной
6 pavlushov
 
19.04.11
11:55
я так понимаю нет решения данной проблеммы?
7 pavlushov
 
19.04.11
11:56
(2) в данном контексте договор - это наименование договора
8 andrewks
 
19.04.11
11:57
(6) какой? с кавычками? дали же уже
9 1Сергей
 
19.04.11
11:57
|Условие(СокрЛП(Договор) = "Бла бла бла """"Бла"""" бла бла");
10 1Сергей
 
19.04.11
11:58
(9) сторно. это по две кавычки :)
11 Ёпрст
 
гуру
19.04.11
11:58
(9) не верно
12 andrewks
 
19.04.11
11:58
(9) двоечник :-)
13 1Сергей
 
19.04.11
11:59
|Условие(СокрЛП(Договор) = ""Бла бла бла """"Бла"""" бла бла"");
14 pavlushov
 
19.04.11
12:00
(8) где дали то?
15 Ёпрст
 
гуру
19.04.11
12:00
(14) в (1)
16 andrewks
 
19.04.11
12:00
(14) -> (1)
17 1Сергей
 
19.04.11
12:01
ТекДоговор="Бла бла бла ""Бла"" бла бла";

  |Условие(СокрЛП(Договор) = ТекДоговор);
18 andrewks
 
19.04.11
12:01
(14) короче, в строковой перем. кавычку нужно удваивать
19 1Сергей
 
19.04.11
12:01
(15) (16) не прокатит, см (13)
20 pavlushov
 
19.04.11
12:01
(15) у меня так и написано
"Бла бла бла ""Бла"" бла бла"\
ругается
21 andrewks
 
19.04.11
12:01
(17) это неспортивно!
22 pavlushov
 
19.04.11
12:02
(13) не катит
23 andrewks
 
19.04.11
12:02
(19) ему говорят про суть. прокатит - см (18)
24 pavlushov
 
19.04.11
12:02
(17) так не выйдет, запрос передаем по оле
25 1Сергей
 
19.04.11
12:03
(24) с чего бы это не прокатило?
26 Ёпрст
 
гуру
19.04.11
12:03
(25) он не пробовал.
27 pavlushov
 
19.04.11
12:04
(24) Приемник.Перем = "вывыв" ?
28 1Сергей
 
19.04.11
12:04
(27) нет
29 pavlushov
 
19.04.11
12:05
(28) а как ?
30 pavlushov
 
19.04.11
12:09
Приемник.НаименованиеДоговора = НаименованиеДоговора;

Поле агрегатного объхекта не обнаружено "НаименованиеДоговора"

что собственно логично
31 smaharbA
 
19.04.11
12:16
Пофиг=Приемник.CreateObject("СписокЗначений");
Пофиг.ДобавитьЗначение(НаименованиеДоговора);
32 pavlushov
 
19.04.11
12:19
(31) неа, не катит
33 pavlushov
 
19.04.11
12:20
СписокДоговор = Приемник.CreateObject("СписокЗначений");
   СписокДоговор.ДобавитьЗначение(НаименованиеДоговора);
   
   СписокЭтап = Приемник.CreateObject("СписокЗначений");
   СписокЭтап.ДобавитьЗначение(НаименованиеЭтапа);
       
   Запрос = Приемник.CreateObject("Запрос");
   ТекстЗапроса =
   "
   |Спр = Справочник.Проекты.ТекущийЭлемент;
   |Договор = Справочник.Проекты.НаименованиеЭтапа;
   |Этап = Справочник.Проекты.НаименованиеЭтапа;
   |Условие(СокрЛП(Договор) В СписокДоговор);
   |Условие(СокрЛП(Этап) В СписокЭтап);

Дает ошибку:
1С:Предприятие: Условие(СокрЛП(Договор) В СписокДоговор <<?>> );
34 pavlushov
 
19.04.11
12:20
|Условие(СокрЛП(Договор) = СписокДоговор.ПолучитьЗначение(1));
тоже самое
35 Ёпрст
 
гуру
19.04.11
12:22
(24) что мешает в запросе фильтровать по списку договоров ?
+ в список кидать элементы справочников, а не какое-то там наименование договора.
Ты сами договора знаешь где брать ?
Они известны ? (ссылки на них есть?)
36 pavlushov
 
19.04.11
12:23
(35) я думаю без разницы сравнивать с сылкой или со строкой, но по задаче надо сравнивать со строкой
37 Ёпрст
 
гуру
19.04.11
12:24
(33) в запросе по оле, можно использовать только простые типы данных: число/строка/массив.
А вот заместо СЗ нужно передать массив, элементом которого будет СЗ.
38 Ёпрст
 
гуру
19.04.11
12:27
+37 а у тебя вообще всё просто, нужно всего лишь строку передать.
39 pavlushov
 
19.04.11
12:28
вобщем передать строку видимо нельзя
40 Ёпрст
 
гуру
19.04.11
12:29
(39) не тупи, всё можно.
Ковычек добавляешь и привет.
41 Ёпрст
 
гуру
19.04.11
12:30
+40, нам отсюда не видно, что ты передаешь в итоге и как текст запроса формируешь.
Если как в (33) - ясен пень не заработает в оле-базе.
42 pavlushov
 
19.04.11
12:30
(40) добавлял во всевозможных вариантах, не катит
43 pavlushov
 
19.04.11
12:31
хуле там думать с кавычками

Парам = "ывывыв ""ывывыв"" ывывыв";
44 pavlushov
 
19.04.11
12:31
не катит
45 pavlushov
 
19.04.11
12:31
запрос на другой стороне не воспринимает параметр
46 Ёпрст
 
гуру
19.04.11
13:16
(45) вот тебе наглядный пример...

В оле базе

Перем СписокКлиентосов[1] Экспорт;

В обработине

ОЛЕ.ExecuteBatch("СписокКлиентосов[1] =СоздатьОбъект(""СписокЗначений"")");
м = ОЛЕ.EvalExpr("СписокКлиентосов[1]");
   
Спр = ОЛЕ.CreateObject("Справочник.Контрагенты");
Пока Спр.ПолучитьЭлемент() = 1 Цикл
  Если Спр.ЭтоГруппа()=0 Тогда
   м.ДобавитьЗначение(Спр.ТекущийЭлемент());
  КонецЕсли;
КонецЦикла;
Запрос = ОЛЕ.CreateObject("Запрос");
ТекстЗапроса = "
|Спр = Справочник.Номенклатура.ТекущийЭлемент;
|Условие (Спр в СписокКлиентосов[1]);
|Группировка Спр Без Групп;";
Запрос.Выполнить(ТекстЗапроса);
Пока Запрос.Группировка(1)=1 Цикл
   Сообщить(Запрос.Спр.Наименование);
КонецЦикла;

сделай по-аналогии, в список пихай что хочешь.
47 Simod
 
19.04.11
13:21
48 pavlushov
 
19.04.11
14:55
(46) Спасибо!