v7: Поиск документа по неполному номеру?
☑
0
Sashgun
18.08.11
✎
11:28
Возможно ли как-нибудь найти документ имея скажем 5 его последних цифр номера. К примеру
Докум=СоздатьОбъект("Документ.РасходнаяНакладная");
Если Докум.НайтиПоНомеру(номер)= 1 тогда
Сообщить("Документ найден");
Иначе
Сообщить("Документ не найден");
Можно ли как то найти док если "номер"= последние 5 цифр реального номера документа.? Возможно что-то типа с использованием функции "прав"
Заранее спасибо!
1
aleks-id
18.08.11
✎
11:28
прямым запросом через LIKE
2
Sashgun
18.08.11
✎
11:30
(1) ок. спасибо
3
ДенисЧ
18.08.11
✎
11:30
Или простым запросом с условием (Прав(НомДок,5) = ...)
Но работать будет долго.
4
Sashgun
18.08.11
✎
11:31
(3)Согласен, запросом быстрее
5
FN
18.08.11
✎
11:45
ищет шустренько:
RS = СоздатьОбъект("ODBCRecordset");
ТекстЗапроса = "
|SELECT
| Жур.IDDoc as [Док $Документ],
| Жур.IDDocDef as Док_вид,
| Жур.DocNo as НомерДок
|FROM
| _1SJourn Жур (nolock)
|WHERE
| Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND
| RIGHT(RTRIM(Жур.DocNo), "+СтрДлина(Номер)+")=:НомДок AND
|";
RS.УстановитьТекстовыйПараметр("НачДата", НачалоИнтервала());
RS.УстановитьТекстовыйПараметр("КонДата", КонецИнтервала());
RS.УстановитьТекстовыйПараметр("НомДок", Номер);
Если ПолучитьОтбор(,)=1 тогда
ТекстЗапроса = ТекстЗапроса +" Жур.IDDocDef = $ВидДокумента."+ТекущийДокумент.Вид();
Иначе
ТекстЗапроса = ТекстЗапроса +" (Жур.IDDocDef = $ВидДокумента.РасходнаяНакладная OR Жур.IDDocDef = $ВидДокумента.Рахунок)";
КонецЕсли;
//RS.Отладка(1);
ТзДоков = RS.ВыполнитьИнструкцию(ТекстЗапроса);
6
Sashgun
18.08.11
✎
11:47
(5) Видел я обработку на инфостарте там так же реализовано
Программист всегда исправляет последнюю ошибку.