Имя: Пароль:
1C
1С v8
Как написать функцию, при которой НомерДокумента = НомерПредыдущегоДокумента + 1
0 King-SD
 
28.05.15
07:58
Как написать функцию, при которой НомерДокумента = НомерПредыдущегоДокумента + 1   ??
1 Галахад
 
гуру
28.05.15
08:00
Типовая же есть.
2 King-SD
 
28.05.15
09:12
(1) Ну так какая? мне её всёравно переделать придётся
3 AntiBuh
 
28.05.15
09:14
ПриЗаписи номер дока в константу
потом этаКонстанта + 1
4 Фокусник
 
28.05.15
09:15
(0) Чем не устраивает автоматическое присвоение нового номера средствами платформы 1С?
5 LordCMEPTb
 
28.05.15
09:17
Написать запрос, который возьмет выборку документов (возможно, только по нужной организации), взять из выборки максимальный номер, пройтись посимвольно по полученной строке, попутно изменяя 2 строковые переменные: "Префикс" и "НомерЧисловой". После разбора номера строковый "НомерЧисловой" перевести в число, прибавить единицу, перевести в строку с лидирующими нулями, соединить с префиксом...
Ну или использовать "ДокументОбъект.УстановитьНовыйНомер()"
6 pushok
 
28.05.15
09:17
(4) да захотел. это уже достаточная причина.
какая разница чем не устраивает?
Может он лучше напишет
7 ИС-2
 
naïve
28.05.15
09:18
(0) если будут писать документы несколько пользователей, то нумерация рано или поздно задвоится. Надо делать блокировку константы, если делать как в (3)
(3) можно каждый раз выполнять запрос, чтобы получить максимальный номер (только надо помнить по то, что обычно нумерация имеет периодичность 1 год)
8 Heckfy
 
28.05.15
09:18
9 King-SD
 
28.05.15
09:24
дело в том, что у меня идёт нумерация, пример: П00000А250,,,
При типе документа - на реализацию, "А" меняется на "0",, и прибавляется единица,,, то есть получится номер П000000251,,, но потом я создаю документ с типом "На аванс", и у него должна присутствовать "А" в номере. По идее следующий документ должен быть с номером П00000А252, но он создаёт с номером П00000А251,,, так как А больше чем 0.. а мне нужно чтобы он производил операцию с поледним документом (7)
10 fisher
 
28.05.15
09:26
(0) Ой не советую. Это нетривиальная задача, которую придется решать либо через блокировки, либо через зопу. В любом случае ничего хорошего.
(9) "А" у тебя должно быть частью префикса. Просто устанавливай правильный префикс при получении нового номера.
11 fisher
 
28.05.15
09:28
Вообще, правильный номер должен быть ПА0000252. В противном случае, мне интересно как ты будешь выкручиваться, когда количество документов достигнет тысячи. Правильно - все делать через префиксы. Если на печать нужно чуток по-другому выводить - просто формируй номер для печати в момент печати.
12 Drac0
 
28.05.15
09:32
(11) А еще лучше хранить где-то номер для печати. Вдруг логику поменяют, а старые документы понадобится перепечатать.
13 King-SD
 
28.05.15
09:37
(11) Мне нужно именно так как я писал. в отчёты так нормально выводиться будет - А250,  А если "А" будет как префикс, тогда выведется А00000250, а это не есть хорошо. Переделывать всяко придётся, но лучше уж это сделать здесь
14 hhhh
 
28.05.15
09:50
(13) но ведь правильно 250А
15 King-SD
 
28.05.15
09:51
(14) Ну я же не буду делать так как неправильно. У каждого своя учётная политика
16 fisher
 
28.05.15
09:52
(13) Читать умеешь? А думать?
Что проще:
1) рисовать свою подсистему нумерации (в чем ты разбираешься плохо, раз не осознаешь потенциальных проблем)
2) вместо А0000250 выводить на печать А250
17 King-SD
 
28.05.15
09:52
Есть идея чтобы он выбирал максимальный номер из тех, которые не сожержат "А" и к нему прибавлял 1.. Но как это грамотно оформить?
18 VladZ
 
28.05.15
09:54
(17) Зачем изобретать велосипед? Попробуй задачу "втиснуть в рамки конфигурации".
19 King-SD
 
28.05.15
09:55
(16) Мне выводить не только на печать, ещё оно в книге продаж должно правильно отображаться. А по моему формату оно всё чётко отображается. Переделывать много где придётся
20 Масянька
 
28.05.15
09:55
(17) Счет-фактура на аванс?
21 King-SD
 
28.05.15
09:55
(18) То есть???
22 King-SD
 
28.05.15
09:55
(20) Да.
23 Масянька
 
28.05.15
09:59
(22) Не городи огород. Сделай для СФ на аванс отдельный нумератор и не выноси мозг (ни себе, ни людям).
24 King-SD
 
28.05.15
10:01
(23) Я уж не настолько тугой, сделал бы если можно было отдельно. Сказали одна нумерация должна быть, Нельзя нам разные, вот и думаю сижу
25 Масянька
 
28.05.15
10:02
(24) О какое единой нумерации идет речь в (17)?
Нельзя - почему?
26 myk0lka
 
28.05.15
10:02
(16) +100500

Сделать функцию для возврата номера в нужном формате и не ломать штатную систему нумерации.
Проще в нескольких печатных формах поправить одну строку, чем потом разгребать косяки.
27 Вася Чез
 
28.05.15
10:06
(24) хм, в типовой БП сквозная нумерация должна идти, даже если в настройках НДС префикс А поставил.
28 Вася Чез
 
28.05.15
10:08
(24) а вообще лучше не трогай типовую нумерацию, потом будут постоянно косяки всплывать, сделай как тебе в прошлой теме кто-то написал отдельный реквизит со своим номером и там твори что хочешь, эксперементируй и т.д. Если это желания бухов, то скажи чтобы шли на юх.
29 VladZ
 
28.05.15
10:18
(21) Нумерацию оставь как есть. Если бухи хотят видеть "А" в авансах - добавляй эту букву при выводе печ.формы. Это проще, чем заморачиваться с генерацией последующего номера.
30 fisher
 
28.05.15
10:19
(19) "Переделывать много где придется" = "в десятке-другом мест вставить одну строчку".
Если тебе кажется что альтернативный путь проще - что ж. Ты имеешь неотъемлемое право на собственные шишки.
"Может быть через трещину в голове войдет хоть капелька ума" (с) Книга Джунглей