Имя: Пароль:
1C
1C 7.7
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) Видел я обработку на инфостарте там так же реализовано
Программист всегда исправляет последнюю ошибку.