|
v7: Нужна ваша помошь по нумерации документа | ☑ | ||
---|---|---|---|---|
0
defre315
16.01.13
✎
11:17
|
Ребята нужна ваша помощь.
Подскажите пожалуйста....Есть Документ, кто то из грамотеев наклацал и теперь все пошло не так Номер один работает правильно(При каждом новом создани документа он к номеру добавляет один, тоесть если сейчас 15, следующий документ будет 16) А вот номер который должен совпадать с первым....все время выдаёт цифру 2 Проверял в отлдчике.....нимогу найти причину, может в коде что то не так? Процедура НомерДоверенности() Док=СоздатьОбъект("Документ.Доверенность"); Док.ВыбратьДокументы(НачГода(ДатаДок),КонГода(ДатаДок)); Если Док.ПолучитьДокумент()>0 Тогда ПредыдущийНомер = Док.Номер; ДлинаПредыдущийНомер = СтрДлина(СокрЛП(ПредыдущийНомер)); Попытка НовыйНомер = Строка(Число(ПредыдущийНомер)+1); Исключение НовыйНомер = 1; КонецПопытки; ДлинаНовыйНомер = СтрДлина(Строка(НовыйНомер)); Если ДлинаНовыйНомер < ДлинаПредыдущийНомер Тогда Длина = ДлинаПредыдущийНомер; Иначе Длина = ДлинаНовыйНомер; КонецЕсли; ФорматнаяСтрока = "Ч(0)"+Строка(Длина)+".0"; Номер = Формат(НовыйНомер, ФорматнаяСтрока); Иначе Номер = "1"; КонецЕсли; КонецПроцедуры |
|||
1
defre315
16.01.13
✎
11:19
|
ой, вот скрин
http://s017.radikal.ru/i427/1301/6e/06d2893d788e.png |
|||
2
Ёпрст
16.01.13
✎
11:19
|
:))))))))))))))))))))
|
|||
3
Ёпрст
16.01.13
✎
11:20
|
Да уж..
Может того, подумаешь сперва ? Ты берешь первый документ в году всегда и к нему +1 делаешь. ну и 2 всегда и будет. |
|||
4
Ёпрст
16.01.13
✎
11:21
|
Если че - ОбратныйПорядок(1) тебя спасёт, хотя бы последний документ будешь брать, а не первый.
|
|||
5
Dolly_EV
16.01.13
✎
11:21
|
Ваще жесть))
Процедура НомерДоверенности() это еще поди вызывается из ВводНового()? )) |
|||
6
Стрелок
16.01.13
✎
11:21
|
ОбратныйПорядок !!!!
|
|||
7
Стрелок
16.01.13
✎
11:22
|
(5) конечно а что не так кроме того что чел забыл поставить обратный порядок выборки?
|
|||
8
defre315
16.01.13
✎
11:22
|
документ не первый то....уже сколько создавал
раньше было что при открытии.....первый и второй номер совподали |
|||
9
Ёпрст
16.01.13
✎
11:22
|
(8) читай (3,4) до полного просветления
|
|||
11
Стрелок
16.01.13
✎
11:25
|
(10) а ты видимо сразу с СП в руках родился? может чел начинающий. я этак в году 2002 и не такое чудил (перавых пару месяцев)
|
|||
12
defre315
16.01.13
✎
11:25
|
Подскажите пожалуйста как ОбратныйПорядок прописывается
|
|||
13
Dolly_EV
16.01.13
✎
11:25
|
(7) я ТС так понял (+ поизучав картинку):
в Документе Доверенность при вводе нового дока надо, чтобы в поле "Номер" упала числовая часть (без префикса) НомерДок ЭТОГО ЖЕ НОВОГО ДОКА, правильно? Так ЗАЧЕМ в этом случае перебирать все доки за год?!?!? |
|||
14
Стрелок
16.01.13
✎
11:25
|
(12) Перед выборкой написать
Док.ОбратныйПорядок(1); |
|||
15
Стрелок
16.01.13
✎
11:26
|
(13) неправильно понял. ты не знаком с нумерацией доверенностей? тогда чего лезешь?
|
|||
16
Ёпрст
16.01.13
✎
11:26
|
(12)
Док=СоздатьОбъект("Документ.Доверенность"); Док.ОбратныйПорядок(1); Док.ВыбратьДокументы(НачГода(ДатаДок),КонГода(ДатаДок)); ..... наслаждайся |
|||
17
Стрелок
16.01.13
✎
11:26
|
(16) )~
|
|||
18
Dolly_EV
16.01.13
✎
11:28
|
+(13)
Процедура ВводНового() Номер=Число(Сред(НомерДок,4)) ... КонецПроцедуры так не хватит? |
|||
19
Стрелок
16.01.13
✎
11:29
|
(18) писатель?
|
|||
20
defre315
16.01.13
✎
11:29
|
(16) сори, был у меня этот обратный порядок.....только когда он стоял у меня во втором номере всегда была цифра 1850
а когда я вчера убрал обратный порядок, цифра стала 2 |
|||
21
Стрелок
16.01.13
✎
11:30
|
(20) значит у тебя есть документ "Доверенность" у которого воткнули номер 1849
|
|||
22
Стрелок
16.01.13
✎
11:30
|
(+21) И он датой "на днях"
|
|||
23
Dolly_EV
16.01.13
✎
11:31
|
(19) ?
|
|||
24
Стрелок
16.01.13
✎
11:31
|
телепатирую - была себе доверка прошлого года но кто то умнй решил что "нуегона.." перед НГ куда то ехать за товаром и поменял дату на текущий год. И понеслось...
|
|||
25
Стрелок
16.01.13
✎
11:32
|
(23) я говорю - "ТЫ ПИСАТЕЛЬ?" читать 15 два раза
|
|||
26
defre315
16.01.13
✎
11:32
|
(18) сделал, теперь во второй колонке вообще ничего нету
(21) проверял....такого документа нет....Дело в том что с нового года нумерация должна была обнулится, и документы должны были создаваться с 1 номера |
|||
27
Стрелок
16.01.13
✎
11:33
|
(25) номера доверок и номер документа в 1С могут быть связаны ТОЛЬКО если все доверки выписываются в 1С и не помечаются на удаление (нет ошибочных) что происходит крайне редко. а нумерация должна быть сквозной
|
|||
28
Ёпрст
16.01.13
✎
11:33
|
(20) ну как тебе сказать то попроще - ты неправильно извлекаешь числовую часть из номера документа.
В начале, избавься от префикса, затем уже приобразовывай в число, прибавляй 1 и добавляй префикс. Но, можно пойти другим путём - тупо делаешь так и привет: Док.Новый(); Док.УстановитьНовыйНомер() Сообщить(Док.НомерДок) //тут будет номер+1..автоматом - наслаждайся |
|||
29
Стрелок
16.01.13
✎
11:33
|
(26) не слушай его
проверяй в отладчике - есть |
|||
30
aka AMIGO
16.01.13
✎
11:34
|
даже ОбратныйПорядок не поможет, если кто-то поменял дату.
но выход есть.. |
|||
31
Стрелок
16.01.13
✎
11:34
|
поищи в глобальнике глНомерБезПрефикса (используется в налоговых накладных обычно) это если нумерация совпадает 100 % но совет - не играйся.
|
|||
32
Dolly_EV
16.01.13
✎
11:37
|
(27) в сабже сказано "А вот номер который должен совпадать с первым"
|
|||
33
Стрелок
16.01.13
✎
11:39
|
(32) сори если так. я понял по другому - что он тоже должен приращаться на единицу. Так например как сделано в ПКО и РКО - номера ордеров не зависят от номер документа. но возможно такое только на Украине
|
|||
34
defre315
16.01.13
✎
11:40
|
Я в отладчике не сильный спец но вотчтооно мне показало
http://s018.radikal.ru/i507/1301/eb/45d10900ab7c.jpg |
|||
35
Dolly_EV
16.01.13
✎
11:41
|
(34) текст ВводНового() еще приведи полностью
|
|||
36
Стрелок
16.01.13
✎
11:43
|
(34) а где табло отладки со значениями "Док="?
|
|||
37
Dolly_EV
16.01.13
✎
11:43
|
и таки ответь на спор (13)(15)(27)(32) - тебе в поле "Номер" надо поле "Номер" ПРЕДЫДУЩЕГО дока + 1, или просто ЧИСЛОВУЮ ЧАСТЬ нового дока (без префикса) ??
|
|||
38
ЧеловекДуши
16.01.13
✎
11:44
|
Автору нужен тупо:
1. Создать константу "ПорядковыйНомерДоверенности" 2. При создании нового документа "Доверенность" записывать номер (не номер самого документа) типа "ПорядковыйНомерДоверенности + 1" 3. И тут же константу "ПорядковыйНомерДоверенности" увеличивать на единицу. ... Но по существу, все куда проще и лучше и дешевле. 1. Забить на нумерацию из под палки. 2. Любая доверенность еще и регистрируется на бумажном Журнале. 3. И вот этот журнал, где расписывается пользователь и играет БОЛЬШУЮ роль. А то что в базе, это лишь возможность еще раз распечатать одно и тоже в нескольких экземлярах :) |
|||
39
Стрелок
16.01.13
✎
11:44
|
(37) спроси проще :
1. номерация доверок должна быть сквозной? 2. бывают ли ошибочно выписанные доверенности? |
|||
40
defre315
16.01.13
✎
11:46
|
мне нужно что бы, номер предыдущего дока +1
|
|||
41
ЧеловекДуши
16.01.13
✎
11:46
|
(39)Судя по хотелки, нумерация сквозная (как бы пользователь хочет), на год.
Конечно бывают левые доверенности, куда без человеческого фактора :) |
|||
42
Стрелок
16.01.13
✎
11:47
|
Ну вот что я и говорил.. автор ищи документ этого года у которого поле "Номер" забили 1849
|
|||
43
Стрелок
16.01.13
✎
11:47
|
частенько доверенности выписывают "наперёд" резервируя номер для расходных документов от поставщика
|
|||
44
defre315
16.01.13
✎
11:48
|
(42) ок, а если найду, то что с ним нужно делать?
|
|||
45
Dolly_EV
16.01.13
✎
11:48
|
(44) поменять на "правильный" по-порядку
|
|||
46
ЧеловекДуши
16.01.13
✎
11:49
|
(43)Если это так, то автору (0) нужно чисто перебором в цикле находить не используемый номер доверенности :)
|
|||
47
Стрелок
16.01.13
✎
11:49
|
(44) спросить кто и зачем сделал и что теперь с ним делать? если никто не сознается - пометь на удаление (кстати в выборке проверочку на проведение доверенности поставь)
|
|||
48
Ёпрст
16.01.13
✎
11:49
|
(42) да уж..
Автор, не слушай двоечников, смотри (28) И если че, Строка(Число("НФ-00015")+1) = 1 всегда |
|||
49
Стрелок
16.01.13
✎
11:49
|
(46) точно. а точнее получить последний документ доверенность в текущем году. у него всё верно. не хватает обратного порядка выборки
|
|||
50
ЧеловекДуши
16.01.13
✎
11:49
|
(44)Нечего не делать. Ибо он уже скорей всего занесен в бумажный реестр доверенностей и за него расписался человек.
|
|||
51
Ёпрст
16.01.13
✎
11:49
|
(44) не найдешь, у тебя его нет
|
|||
52
Стрелок
16.01.13
✎
11:50
|
(48) да ему не тот номер надо если чо
|
|||
53
Стрелок
16.01.13
✎
11:50
|
(51) "аргументируй" ©
|
|||
54
Dolly_EV
16.01.13
✎
11:55
|
Если сквозная нумерация независимо от номера, тогда имхо лучшее решение будет прямым запросом:
Select MAX($Довер.Номер) КАК Номер from $Документ.Доверенность КАК Довер innerjoin $Жур ... и не надо никаких констант городить З.Ы. и ЗАПРЕТИТЬ к изменению ручками поле "Номер" на форме! |
|||
55
Dolly_EV
16.01.13
✎
11:56
|
а так же можно прислушаться к (38) второй абзац.
|
|||
56
Стрелок
16.01.13
✎
11:57
|
(54) ну ё-маё... вы сабж читали? код в нём? ясно же видно что нумерация уникальна в пределах года...
|
|||
57
Dolly_EV
16.01.13
✎
11:59
|
(56)
innerjoin $Жур ... вот в "..." много кроется |
|||
58
Стрелок
16.01.13
✎
12:00
|
(57) конечно много например "между"
|
|||
59
Dolly_EV
16.01.13
✎
12:02
|
(58) и какие претензии??? я ж не дописал просто, что в соединении с журналом выборка между НачГода и ТекДата и Проведен=1
|
|||
60
Стрелок
16.01.13
✎
12:04
|
(59) никаких кроме ... да ладно... "Если сквозная нумерация независимо от номера, тогда имхо лучшее решение будет прямым запросом:" и тут же откат "ну если надо то ставим условие на даты..." автор с отладчиком совладать не может а ты ему про прямые запросы... зачем городить огород если есть проверенное средство - обратная выборка
|
|||
61
Dolly_EV
16.01.13
✎
12:05
|
(60) "не ну если надо", а "имелось ввиду"
|
|||
62
Стрелок
16.01.13
✎
12:06
|
(61) поспорим. что ты имел в виду сказав "Если сквозная нумерация независимо от номера, тогда имхо лучшее решение будет прямым запросом:"? ась? где тут "имелось в виду"?
|
|||
63
Dolly_EV
16.01.13
✎
12:11
|
(62) я написал "Внутреннее соединение с Журналом..." МНОГОТОЧИЕ, не стал я писать условия на даты и Проведен, просто ИМЕЯ ВВИДУ... смысл спорить???
|
|||
64
Стрелок
16.01.13
✎
12:12
|
(63) мне надоело. вначале с номером теперь с прямым запросом.... как ты живёшь то с такой многосмысленностью в словах?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |