|
v7: Поиск документа по реквизиту 1с 7.7, запросом | ☑ | ||
---|---|---|---|---|
0
Adecvator
13.03.17
✎
10:23
|
|НомерДоговора = Документ.Договор.НомерДоговора;
|ТекущийДокумент= Документ.Договор.ТекущийДокумент; |Группировка ТекущийДокумент; |Условие(СокрЛП(НомерДоговора) = _НомерДоговора); Пока Запрос.Группировка(1) = 1 Цикл Возврат Запрос.ЗначениеУпорядочивания(1); КонецЦикла; _НомерДоговора = "1.4", договор с таким номером есть, но не находит ( |
|||
1
Adecvator
13.03.17
✎
10:24
|
передаю _НомерДоговора = "1.4"
|
|||
2
Волшебник
модератор
13.03.17
✎
10:24
|
У вас цикл не крутится
|
|||
3
Adecvator
13.03.17
✎
10:27
|
(2) а зачем крутить мне по первому въождению
|
|||
4
Chameleon1980
13.03.17
✎
10:38
|
может дело в длине номера не?
|
|||
5
Adecvator
13.03.17
✎
10:41
|
(4) ну я типа обрезаю СокрЛП(). Запрос по справочнику:
"//{{ЗАПРОС(ПоискКонтрагентаПоИНН) |ТекущийЭлемент = Справочник.Контрагенты.ТекущийЭлемент; |ИНН = Справочник.Контрагенты.ИНН; |Группировка ТекущийЭлемент; |Условие(СокрЛП(ИНН) = _ИНН); Пока Запрос.Группировка(1) = 1 Цикл Возврат Запрос.ЗначениеУпорядочивания(1); КонецЦикла Отрабатывает на ура, а вот по документу не пойму..... |
|||
6
Волшебник
модератор
13.03.17
✎
10:41
|
(3) Если крутить не надо, то зачем цикл?
|
|||
7
Adecvator
13.03.17
✎
10:45
|
(6) Да не знаю как по другому )
|
|||
8
Chameleon1980
13.03.17
✎
10:46
|
если Запрос.Группировка(1) = 1 тогда
|
|||
9
Масянька
13.03.17
✎
10:48
|
(5) Контрагенты - самостоятельный справочник. А Договоры/Договора - подчинен Контрагентам.
|
|||
10
Chameleon1980
13.03.17
✎
10:50
|
(9) а тут пофиг на это похоже
|
|||
11
Chameleon1980
13.03.17
✎
10:51
|
вот бы на полный текст запроса посмотреть, а то я смотрю текдокумент это реквизит договора еще какого-то документа, оказывается.
|
|||
12
Ёпрст
13.03.17
✎
10:53
|
(0), (5). Запрос.Выполнить() то хоть есть в коде ?
|
|||
13
Adecvator
13.03.17
✎
10:54
|
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "//{{ЗАПРОС(ПоискДоговорПоНомеру) |НомерДоговора = Документ.Договор.НомерДоговора; |ТекущийДокумент= Документ.Договор.ТекущийДокумент; |Группировка ТекущийДокумент; |Условие(СокрЛП(НомерДоговора) в _НомерДоговора); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат ""; КонецЕсли; Пока Запрос.Группировка(1) = 1 Цикл Возврат Запрос.ЗначениеУпорядочивания(1); КонецЦикла; |
|||
14
Zmich
13.03.17
✎
10:56
|
(13). Документ Договор проводится? Если нет, в тексте запроса должна быть строчка |ОбрабатыватьДокументы Все;
|
|||
15
Adecvator
13.03.17
✎
11:00
|
//{{ЗАПРОС(ПоискДоговорПоНомеру)
|НомерДоговора = Документ.Договор.НомерДоговора; |ТекущийДокумент= Документ.Договор.ТекущийДокумент; |Группировка ТекущийДокумент; |Условие(СокрЛП(НомерДоговора) в _НомерДоговора); |ОбрабатыватьДокументы Все; не помогут, документ проводится. |
|||
16
Ёпрст
13.03.17
✎
11:01
|
(13) зачем "в" в условии ?
Зачем ЗначениеУпорядочивания ? Возврат Запрос.ТекущийДокумент хотя бы |
|||
17
Ёпрст
13.03.17
✎
11:02
|
и это, без твоего условия хоть что-то возвращает ?
|
|||
18
Adecvator
13.03.17
✎
11:13
|
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "//{{ЗАПРОС(ПоискДоговорПоНомеру) |НомерДоговора = Документ.Договор.НомерДоговора; |ТекущийДокумент= Документ.Договор.ТекущийДокумент; |Группировка ТекущийДокумент; |Условие(СокрЛП(НомерДоговора) = _НомерДоговора); |ОбрабатыватьДокументы Все; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат ""; КонецЕсли; Если Запрос.Группировка(1) = 1 Тогда Возврат Запрос.ЗначениеУпорядочивания(1); КонецЦикла; |
|||
19
Adecvator
13.03.17
✎
11:14
|
результат тот же (
|
|||
20
welwel
13.03.17
✎
11:22
|
как вариант: условие из запроса перенести из запроса внутрь цикла "Пока Запрос.Группировка(1) = ..."
и там уже посмотреть значения отладчиком |
|||
21
azernot
13.03.17
✎
11:22
|
_НомерДоговора - это случайно не реквизит формы?
Проверь, что у тебя там Сообщить("'"+_НомерДоговора+"'"); |
|||
22
Chameleon1980
13.03.17
✎
11:29
|
(21) думается, запрос бы и не начал работать.
|
|||
23
Adecvator
13.03.17
✎
11:29
|
(20) Спасибо, это конечно не правильно, но выход )
|
|||
24
Chameleon1980
13.03.17
✎
11:29
|
вопрос в том - заполнено ли в реквизите значение
правильно предлагают - в цикле посмотреть что там возращается |
|||
25
Chameleon1980
13.03.17
✎
11:30
|
(23) посмотреть, хотя-бы
|
|||
26
welwel
13.03.17
✎
11:32
|
либо еще так проверить:
_НомерДоговора_ = СокрЛП(_НомерДоговора); ... |Условие(СокрЛП(НомерДоговора) = _НомерДоговора_); |
|||
27
azernot
13.03.17
✎
11:32
|
(22) Почему?
Если _НомерДоговора - это реквизит формы типа Строка 10, То конструкция языка _НомерДоговора = "1.4"; приведёт к тому, что в реквизите _НомерДоговора будет значение "1.4 ", что не соответствует условиям |
|||
28
Chameleon1980
13.03.17
✎
11:45
|
(27) я про то, что из запроса то не обратишься к реквизиту формы.
и да, из (0) _НомерДоговора = "1.4", договор с таким номером есть, но не находит ( проще все-же посмотреть ТСу результат перебора и озвучить причину |
|||
29
Chameleon1980
13.03.17
✎
11:46
|
автор, что там дают переменные запроса в цикле?
|
|||
30
Ёпрст
13.03.17
✎
11:49
|
(27) так и есть
|
|||
31
Adecvator
13.03.17
✎
12:06
|
(29) сам запрос глючит, не выводит не фига
|
|||
32
Builder
13.03.17
✎
12:13
|
(31) Попробуй период в запросе задать что ли....
|
|||
33
Ёпрст
13.03.17
✎
12:24
|
(31) без условия запрос что-то возвращает ?
|
|||
34
Adecvator
13.03.17
✎
12:26
|
(33) нет (
|
|||
35
1dvd
13.03.17
✎
12:31
|
(34) ещё раз спрашиваем. Документы проведены?
|
|||
36
Ёпрст
13.03.17
✎
12:34
|
(34) Круто, че.
Добавь тогда хотя бы период в текст запроса, для начала. И выкини Запрос.ЗначениеУпорядочивания(1) из кода. |
|||
37
Ёпрст
13.03.17
✎
12:34
|
Ну и, запрос, по-умолчанию, только проведенные документы выгребает.
|
|||
38
Масянька
13.03.17
✎
12:38
|
Извините, что я вмешиваюсь в беседу профессионалов, но - зачем огород?
|
|||
39
1dvd
13.03.17
✎
12:38
|
(38) ы?
|
|||
40
Ёпрст
13.03.17
✎
12:41
|
(38) картошка, помидорки, огурчики, укропчик...
|
|||
41
Масянька
13.03.17
✎
12:42
|
(40) Солить или есть?
|
|||
42
Ёпрст
13.03.17
✎
12:43
|
(41) Ты спрашиваешь, или интересуешься ?
|
|||
43
Масянька
13.03.17
✎
12:44
|
(42) Интересуюсь... Может рецепты (проверенные) нужны?
|
|||
44
azernot
13.03.17
✎
12:50
|
Мы можем ещё неделю переписываться в таком же стиле.
Автор, выполни код написанный ниже, и выложи результат исполнения из окна сообщений. Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ПоискДоговорПоНомеру) |Период с '01.01.1980' по '13.03.2017'; |Обрабатывать НеПомеченныеНаУдаление; |НомерДоговора = Документ.Договор.НомерДоговора; |ТекущийДокумент= Документ.Договор.ТекущийДокумент; |Группировка ТекущийДокумент; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат ""; КонецЕсли; Сообщить("_НомерДоговора = '"+_НомерДоговора+"'"); Пока Запрос.Группировка() = 1 Цикл Сообщить("Номер договора в документе "+Запрос.ТекущийДокумент +" = '"+Запрос.НомерДоговора+"'"); КонецЦикла; |
|||
45
Adecvator
13.03.17
✎
12:51
|
с периодом собака работает )
|
|||
46
Adecvator
13.03.17
✎
12:56
|
Блин, все из-за периода......
|
|||
47
Builder
13.03.17
✎
13:11
|
(46) Ну а как он тебе документы отберет без периода?
|
|||
48
Ёпрст
13.03.17
✎
13:21
|
(47)если документ был бы не проводным, то выбирались бы все документы без периода, а так, только на ТА/рабочую дату
|
|||
49
trad
13.03.17
✎
13:31
|
(48) беспроводной документ - надо запомнить
|
|||
50
Builder
13.03.17
✎
13:35
|
(48) Эт понятно, у ТС проведенные же.
|
|||
51
Волшебник
модератор
13.03.17
✎
13:39
|
(0) Семёрка ещё сыровата...
|
|||
52
Злопчинский
13.03.17
✎
15:43
|
(51) вы просто не умеете ее готовить - это ж экологически чистый продукт! привыкли какие-то полуфабрикаты жарить из восьмерки...
;-) |
|||
53
Adecvator
13.03.17
✎
16:07
|
Забыл, СПАСИБО )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |