Имя: Пароль:
1C
1С v8
не ищет документ НайтиПоНомеру, НайтиПоРеквизиту
,
0 spiller26
 
06.09.12
09:49
Не ищет документ ни по Номеру ни По Реквизиту (ДБФ состоит из одной строки)

НомерДока=Число(Сред(Файл.Имя,2,9));
ШтрихКод = ДБФ.SHTRIH;
// опищем документ в базе
док=Документы.оуВнешнийПалет.НайтиПоНомеру(НомерДока);  //поиск документа по номеру
//
докШ=Документы.оуВнешнийПалет.НайтиПоРеквизиту("ШК",Строка(ШтрихКод)); //поиск дока по уникальному штрихкоду
Если (док.Пустая()) И (докШ.Пустая()) Тогда // такого дока нет
 //Создание нового документа
КонецЕсли;
1 unregistered
 
06.09.12
09:50
(0) А что говорит отладчик?
2 Maxus43
 
06.09.12
09:50
НомерДока как и реквизит - фиксированная длинна строки, пробелы или лидирующие нули не указаны
3 Maxus43
 
06.09.12
09:51
запрос + Подобно
4 k1us181b
 
06.09.12
09:51
НайтиПоНомеру(<НомерДокумента>, <ДатаИнтервала>)
5 mzelensky
 
06.09.12
09:52
(0) У этого документа нумерация сквозная или периодическая?
6 spiller26
 
06.09.12
09:55
(5) В пределах года
(1) только при записи выдает "Значение поля "Номер" не уникально", т.к. уже был созданный документ с таким номером, а вот Условие
   Если (док.Пустая()) И (докШ.Пустая()) Тогда
Пролетает
7 k1us181b
 
06.09.12
09:56
<ДатаИнтервала> (необязательный)

Тип: Дата.
Дата из интервала, в котором проводится поиск по номеру. Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года.
Параметр используется для документов с периодической нумерацией.
8 mzelensky
 
06.09.12
09:57
(0) читай (4) и (7). Для периодических доков нужна еще дата!
9 Kreont
 
06.09.12
09:57
(0) Неправильное условие:
Поставь вместо "И" или "ИЛИ", так как одновременно по двум реквизитам не найдет, тогда и пролетает
10 k1us181b
 
06.09.12
09:58
а лучше всего, читай Синтаксис-Помощник
11 spiller26
 
06.09.12
09:59
(2) Длина номера 9, ШК строка 13 фиксированно
12 spiller26
 
06.09.12
09:59
(9) или и будет
13 Kreont
 
06.09.12
10:00
(12) Значит только неправильно ищет по одному из способов поиска, а не по двум одновременно
14 Reset
 
06.09.12
10:04
(0) С шансом 90% у номера тип - строка.
С шансом 95% число 100500 преобразуется в строку 100 500 и не находит номера.
15 Reset
 
06.09.12
10:07
До блин даже число 5 прееобразуется в строку "5" и не находит номера "000005"
16 k1us181b
 
06.09.12
10:07
(14) наоборот, строка 100500 преобразуется в число 100 500
17 Reset
 
06.09.12
10:08
(16) Изыди. Он подсовывает число в поиск
18 Reset
 
06.09.12
10:09
Как он это число получил мне пофиг
19 k1us181b
 
06.09.12
10:09
(17) я не про то, что он там подсовывает, а про то как строка в число превращается
20 k1us181b
 
06.09.12
10:10
(0) а можно Файл.Имя в студию?
21 Reset
 
06.09.12
10:12
(19) Плевать, как она превращеатся
22 Reset
 
06.09.12
10:12
(19) Неправильно производится поиск, остальное вторично
Про дату уже сказали ранее, не повторяюсь
23 Reset
 
06.09.12
10:14
Пусть ТС скажет, нафейхуа он получает число для номера.
24 Serg_1960
 
06.09.12
10:23
Имхо: номер документа - строка с лидирующими нулями; первая строка алгоритма - причина возникновения ветки.
25 spiller26
 
06.09.12
10:25
Всё нашел, тупняк, был, Не по тому номеру искалось, т.к. обработка написана была не мной. Всем спасибо.
26 Reset
 
06.09.12
10:27
(24) Я раньше сказал :)
27 Reset
 
06.09.12
10:28
Хотя это в глаза бросается сразу
28 Serg_1960
 
06.09.12
10:29
(25) Ну, ну... ждём продолжения.

PS: НомерДока = Формат(Число(Сред(Файл.Имя,2,9)),"ЧЦ=9; ЧВН=; ЧГ=");
29 Serg_1960
 
06.09.12
10:30
(27) +1 Что ни строчка - то ошибка.
Закон Брукера: Даже маленькая практика стоит большой теории.