Имя: Пароль:
1C
1С v8
Нумерация определенного вида.
0 SoKus
 
02.07.12
02:42
День добрый подскажите как лучше всего реализовать вот такую нумерацию.
Конечный номер должен быть вида Буква(выбирают сами какая из списка)-ПорядковыйНомер/Констранта-НомерПодраздаления. Пример (Э-1100/10-2001), где Э-буква которую выбрали в зависимости от вида операции, 1100 порядковый номер, /10- константа она всегда такая,2001 - Номер подразделения их около 10.
Сейчас реализовано как что буква-это префикс в зависимости от нее идет уже порядковый номер. Создан доп реквизит в который собирается уже вторая часть номера, потом уже в печатных формах исправлен вывод номера в нужном виде.
Вылезла проблема что требуется к примеру к номеру Э-1100 добавить 10 документов с разными подразделениями. т.е (Э-1100/10-2001, Э-1100/10-2002, Э-1100/10-2003), Но т.к у нас префикс это буква то такого естественно не получается сделать. Пока решение сделать доп регистр сведений, в котором хранить порядковые номера для подразделений, и при записи уже получать номера последний для нужного подразделения и уже записывать. Подскажите может есть другой более оптимальный вариант ?
1 SoKus
 
02.07.12
02:42
Сорри за опечатки )))
2 orange777
 
02.07.12
06:26
перенесите порядковый номер в конец, все остальное префиксами - организации, подразделения, чего угодно. только хватит ли 4хзначного номера на год?
3 SoKus
 
02.07.12
07:00
Нельзя переносить в конец номер, нужен именно такой порядок, распоряжение такое свыше.
4 SoKus
 
02.07.12
07:00
это пример в номере будет 6 знаков.
5 sda553
 
02.07.12
07:12
Может просто поменять отображение номера на форме и печ. документах?
6 SoKus
 
02.07.12
07:29
Порядочно придется все формы менять плюс печ доки. плюс еще ссылки на счет-фактуры итд...
7 kosts
 
02.07.12
08:00
Собственно в чем проблема, то. Ищи запросом максимальный, прибавляй 1.

ВЫБРАТЬ ПЕРВЫЕ 1
   ПОДСТРОКА(АнкетаЗастрахованногоЛица.Номер, 1, 2) + ПОДСТРОКА(АнкетаЗастрахованногоЛица.Номер, 3, 4) КАК Поле1
ИЗ
   Документ.АнкетаЗастрахованногоЛица КАК АнкетаЗастрахованногоЛица

УПОРЯДОЧИТЬ ПО
   Поле1 УБЫВ
8 SoKus
 
02.07.12
08:28
Нужно учесть Первую букву она может быть одна или двух символьная, плюс учесть еще подразделения.
т.е
Номера
Э-0001/10-2001
Э-0001/10-2005
П-0001/10-2001
АЭ-0001/10-2001

Э-0002/10-2001
Э-0002/10-2005
9 Flyd-s
 
02.07.12
08:34
проще печатные формы перепилить
10 kosts
 
02.07.12
08:37
(8)

Выбор Когда ПОДСТРОКА(АнкетаЗастрахованногоЛица.Номер, 1, 1) = "-" Тогда // префикс односимвольный
Иначе Когда ПОДСТРОКА(АнкетаЗастрахованногоЛица.Номер, 2, 1) = "-" Тогда // префикс двухсимвольный
Иначе // Другое
Конец
11 SoKus
 
02.07.12
08:41
kosts в принципе можно пойти твоим путем, указав в параметры мои подразделения и доп реквизит буквы выбирая последний и уже выводя его в номер с плюсом в единицу. Сейчас пойду попробую Пока что реализовал с Регистром сведений куда записывается порядковый номер и уже при добавлении нового чтения последнего из регистра.
12 sda553
 
02.07.12
14:49
(11) Боюсь схватишь массовые ошибки Lock request time out
Когда народ кинется документы штопать. Регистр то один на всех и пока кто то считал последний номер и не увеличил на единицу, регистр над держать для остальных заблокированным.
13 0_Serg_0
 
02.07.12
14:55
(12) прост при записи нового считывать
14 SoKus
 
03.07.12
01:27
(11) считывание происходит в момент установки нового номера, попробую посмотрим как будет.
15 sda553
 
03.07.12
06:42
(13) Это естественно, я про этот случай и говорю
16 orange777
 
03.07.12
06:44
я бы до последнего боролась с такой нумерацией...
17 Мимохожий Однако
 
03.07.12
06:46
Используй доп. реквизит у документа и в него пиши нужный номер.
Достаточно добавить процедуру расчета номера по указанным условиям, изменить функцию, которая использует печать номера.
18 SoKus
 
04.07.12
07:46
(17) Не совсем удобно придется по мима функций и процедур менять наименования  гиперссылок на ту же счет фактуру итд. Плюс во всех очетах касаемо книги продаж, покупки, журналов тоже переписывать.
19 sda553
 
04.07.12
13:58
Может это как раз тот случай, когда бизнес должен подстроится под ИТ систему, а не наоборот?
Закон Брукера: Даже маленькая практика стоит большой теории.