|
v7: Оле условие в запросе по регистру | ☑ | ||
---|---|---|---|---|
0
Маркусс
12.09.14
✎
15:30
|
Добрый день
Запрос выплёвывает ошибку в |Условие.... Неужели нужно выгребать коды складов и по ним искать? Или я в другом ошибаюсь? СпрOLE_СписокСкладов = ТиС.CreateObject("СписокЗначений"); СпрOLE_Склады.НайтиПоКоду("00001",0);//главный СпрOLE_СписокСкладов.ДобавитьЗначение(СпрOLE_Склады.ТекущийЭлемент()); СпрOLE_Склады.НайтиПоКоду("22231",0);//рка СпрOLE_СписокСкладов.ДобавитьЗначение(СпрOLE_Склады.ТекущийЭлемент()); Запрос = ТиС.CreateObject("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(КомРегОстатки) |Период с '"+НачДатаЗагрДоки+"' по '"+КонДатаЗагрДоки+"'; |ТекущийДокумент = Регистр.ОстаткиТМЦ.ТекущийДокумент; |НомерСтроки = Регистр.ОстаткиТМЦ.НомерСтроки; |Фирма = Регистр.ОстаткиТМЦ.Фирма; |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура; |Склад = Регистр.ОстаткиТМЦ.Склад; |Количество = Регистр.ОстаткиТМЦ.Количество; |Функция КоличествоКонОст = КонОст(Количество); |Функция КоличествоРасход = Расход(Количество); |Функция КоличествоПриход = Приход(Количество); |Группировка ТекущийДокумент; |Группировка Номенклатура Без групп; |Условие(Склад в СпрOLE_СписокСкладов); |"//}}ЗАПРОС ; |
|||
1
Маркусс
12.09.14
✎
15:30
|
В текущей базе запрос отрабатывает нормально
|
|||
2
ДенисЧ
12.09.14
✎
15:34
|
в переменную-массив на той стороне складывай свои склады и её ставь в запрос
|
|||
3
Chameleon1980
12.09.14
✎
15:40
|
массив 77?
|
|||
4
Маркусс
12.09.14
✎
15:43
|
Обе базы 7.7
СписокЗначений делаю на той стороне. и Склады тоже в той базе. |
|||
5
lavalit
12.09.14
✎
15:56
|
Первое, что в глаза бросилось- период.... "Оля" такой период не поймет он локальный судя по всему.. дату надо передать так, что бы Оля понимала то есть в строке '01.01.2014' например
|
|||
6
Chameleon1980
12.09.14
✎
15:59
|
(5) +1 - не заметил
|
|||
7
lavalit
12.09.14
✎
16:06
|
Хотя так оно текст запроса должно тоже верно создать... а вот условия .. там да надо список делать у ОЛИ и по коду... Агрегат оно не потянет. Уж такая ОЛЯ блин
|
|||
8
lavalit
12.09.14
✎
16:07
|
Эт я про Даты.... погорячился сори психанул и т.д.))))))
|
|||
9
lavalit
12.09.14
✎
16:09
|
вот толковая статья .. сам по ней когда то рисовал свякие штуки для ОЛИ http://www.mista.ru/articles1c/ole.htm
|
|||
10
lavalit
12.09.14
✎
16:10
|
ТАм в конце про запросы все есть))) Удачи
|
|||
11
Маркусс
12.09.14
✎
16:12
|
(10) вкурил. спасибо)
|
|||
12
Маркусс
12.09.14
✎
16:12
|
(12) период кстате норм как раз
|
|||
13
lavalit
12.09.14
✎
16:14
|
(12) да точно... уж забывать стал))))) давненько олькины фокусы не пользовал)))
|
|||
14
Маркусс
22.09.14
✎
09:34
|
Что-то ничего понять не могу.
Ищу ЗаявкуПокупателя по внешнему номеру. Или не ищет совсем или ошибку выплёвывает в условии ЗаказНомерДок - строка Заказ.ВнешнийНомер - тоже строка Функция ДокВ_ОЛЕ_БазеЕсть(ЗаказНомерДок) ЗаказНомерДок = СокрЛП(ЗаказНомерДок); Запрос = ТиС.CreateObject("Запрос"); НачДатаЗагрЦен = ТекущаяДата()-52; КонДатаЗагрЦен = ТекущаяДата()-30; ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с '"+НачДатаЗагрЦен+"' по '"+КонДатаЗагрЦен+"'; |ОбрабатыватьДокументы все; |Обрабатывать НеПомеченныеНаУдаление; |ЗаявкаПокупателя = Документ.ЗаявкаПокупателя.ТекущийДокумент; |ВнешнийНомер = Документ.ЗаявкаПокупателя.ВнешнийНомер; |Группировка ЗаявкаПокупателя; |Условие(ЗаявкаПокупателя.Автор.Наименование= ""Автообмен""); // |Условие(Найти(ВнешнийНомер, '"+ЗаказНомерДок +"') >0);//*/условие не работает |Условие(Найти(ВнешнийНомер,ЗаказНомерДок)>0);///выдаёт ошибку |"//}}ЗАПРОС ; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда // Возврат; КонецЕсли; Пока Запрос.Группировка(1)= 1 Цикл Возврат 1; КонецЦикла; Возврат 0; КонецФункции |
|||
15
Ёпрст
22.09.14
✎
10:05
|
|Условие(Найти(ВнешнийНомер,ЗаказНомерДок)>0);///выдаёт ошибку //какую ошибку выдает ?
|
|||
16
Маркусс
22.09.14
✎
10:08
|
(15)
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда {Z:\КОМПЕРЕНОСЗАКАЗОВРТУ.ERT(321)}: 1С:Предприятие: Условие(Найти(ВнешнийНомер,ЗаказНомерДок <<?>> )>0); Запрос[9] : Ошибка в выражении 'ЗаказНомерДок' |
|||
17
Ёпрст
22.09.14
✎
10:11
|
|Условие(Найти(ВнешнийНомер, "+ЗаказНомерДок +") >0);
|
|||
18
Маркусс
22.09.14
✎
10:33
|
(17) Я так тоже пробовал. тоже ошибка
Сработало так: |Условие(Найти(ВнешнийНомер,Строка("+Прав(ЗаказНомерДок,8) +"))>0);//Отсёк префикс |
|||
19
Маркусс
22.09.14
✎
10:33
|
Буквы почему-то отказывается понимать
|
|||
20
Ёпрст
22.09.14
✎
10:34
|
(19) экранируй ковычками
|
|||
21
Ёпрст
22.09.14
✎
10:34
|
двойными, чтоб явно строка была
|
|||
22
Ёпрст
22.09.14
✎
10:35
|
|Условие(Найти(ВнешнийНомер,Строка("""+Прав(ЗаказНомерДок,8) +"""))
|
|||
23
Ёпрст
22.09.14
✎
10:36
|
только функцию строка оттуда можно выкинуть
|
|||
24
Маркусс
22.09.14
✎
10:47
|
Без строки с двумя кавычками уже не хочет искать)
|
|||
25
lavalit
22.09.14
✎
14:29
|
А да, с кавычками тут засада ... всегда забываю сколько их должно быть... хорошо помогает отладчик там видно что подается в ОЛЕ... ОЛЕ четко понимает только строки...
|
|||
26
МихаилМ
22.09.14
✎
16:59
|
кодСклада = Регистр.ОстаткиТМЦ.Склад.Код;
Условие ((кодСклада = ""22231"") ИЛИ (кодСклада = ""22231"")) + дополнить пробелами до полной длинны кода в dbf sql дополнение может отличаться, гдето проделы - спереди , гдето - сзади |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |