Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Нумерация

Нумерация
Я
   Foxmara
 
27.08.18 - 17:04
УНФ, последний релиз. Платформа 8.3.12.1529. Нужно сделать свою нумерацию, причем нумерация должна идти от КРОНТРАГЕНТА. т.е. у каждого контрагента ID - 3 цифры (уникальный не подойдет, он длинный). далее документы (событие), договора и пр. тоже ID, формируется на основании ID контрагента + 3 цифры. Как реализовать можно? Просто добавить поле можно даже в режиме предприятия, но оно не будет а) нужной длины б) автоматически нумероваться.
 
 
   Пуля
 
1 - 27.08.18 - 17:06
Нумеровать что будем?
   hhhh
 
2 - 27.08.18 - 17:08
(0) вопрос-то в чем? находишь в общем модуле, где формируется префикс документа, подменяешь этот кусок на свое формирование префикса.
   Джинн
 
3 - 27.08.18 - 17:10
(1) Приходные кассовые ордера и счета-фактуры.
   Numerus Mikhail
 
4 - 27.08.18 - 17:10
(0) а если контрагентов станет больше 999?
   Aleksey
 
5 - 27.08.18 - 17:10
Нужно обязательно нумеровать по контрагентам или подойдет префикс в печатной форме с ID контрагента?
   dezss
 
6 - 27.08.18 - 17:10
подписка
ПриУстановкеНовогоНомера
а дальше как напишешь)
   vova1122
 
7 - 27.08.18 - 17:12
Не совсем понятно как должен формироваться номер документа. Опишите на примере
   Михаил Козлов
 
8 - 27.08.18 - 17:22
Спугнули.
   dezss
 
9 - 27.08.18 - 17:23
(7) ну у них не может быть больше 1000 контрагентов. И на каждого не больше 1000 одного вида дока.
Разделять предлагаю оригинально...дефисом)))
   Aleksey
 
10 - 27.08.18 - 17:51
(9) разово может быть и не может быть, а вот за 2-3 года, кто то  ушел, кто то пришел
 
 Рекламное место пустует
   hhhh
 
11 - 27.08.18 - 19:07
(10) можно не только цифры, но и буквы разрешить в ИД. Тогда в 3х знаках  где-то до 300000 контрагентов.
   Cyberhawk
 
12 - 27.08.18 - 19:12
Номер объекта делаешь числовым заданной длины. Профит.
   Cyberhawk
 
13 - 27.08.18 - 19:12
*объекта МД
   Aleksey
 
14 - 28.08.18 - 00:05
(11) На самом деле меньше. Так как визуально некоторые буквы и цифры похоже, а значит такую неопределенность нужно исключить (например буква О и цифра 0). Так же исключаем регистр (большие и маленькие буквы). Исключаем труднопроизносимые символы (например й, ъ,ь). Если мы добавим английский алфавит, то исключаем одинаковое написание русский и английских букв, например та же буква А. Ну и само собой спецсиволы идут лесом (*,:,^ и т.п.)
   azernot
 
15 - 28.08.18 - 00:21
Когда коту нечего делать, он лижет...
Когда у бухгалтера нет других проблем, он начинает заботиться о нумерации..
   GreyK
 
16 - 28.08.18 - 02:39
(0) Надеюсь следующий вопрос от "бухого" будет про сквозную нумерацию кадровых документов, это классика.
   Foxmara
 
17 - 28.08.18 - 08:15
Нумеровать по контрагентам обязательно. В идее все от КА строится.
Директор (не бух) клянется, что больше 1000 не понадобится..
номер (ID) у КА от 0 до 999.
номер Заказа = (ID КА) + 3 цифры
номер договора = номер Заказа
номер Счета = (ID Заказа) + 3 цифры
номер КП = (ID КА) + префикс (КП) + 3 цифры
   dezss
 
18 - 28.08.18 - 09:27
(17) тогда беги оттуда...это однодневка)))
шутка...

так не понятно, в чем именно у тебя проблема?
   seevkik
 
19 - 28.08.18 - 09:30
(17) ну хоть документы продаж и счет-фактуры не трогаете, но я бы прислушался к (18)
   dezss
 
20 - 28.08.18 - 09:35
Я вообще не понимаю зачем люди меняют нумерацию...
вот нафига?
если нужно что-то по конкретному контрагенту, делай отбор/сортировку в списке, зачем накладывать на номер/код какие-то еще функции, кроме обеспечения уникальности?
   Пуля
 
21 - 28.08.18 - 09:44
глянь модуль ПрефиксацияОбъектовКлиент вроде в нем номера строятся
   Foxmara
 
22 - 31.08.18 - 12:32
В общем задачу решил совсем просто. Поскольку достаточно 3 цифр - просто взял последние из номеров справочника и документа.
для справочника контрагент:
&НаКлиенте
    Процедура Расш1_ПослеЗаписиПосле(ПараметрыЗаписи)
        //Добавлено создание ИД

    Если НЕ ЗначениеЗаполнено(Объект.ИДКонтрагента) Тогда
    Объект.ИДКонтрагента = Прав(Объект.Код, 3);
    КонецЕсли;
    // конец обработки


    КонецПроцедуры


Это для заказа:
&НаСервере
    Процедура Расш1_ПослеЗаписиНаСервереПосле(ТекущийОбъект, ПараметрыЗаписи)
            КонтрагентЗак = Объект.Контрагент;
            ОбъектКА = КонтрагентЗак.ПолучитьОбъект();
            Если НЕ ЗначениеЗаполнено(Объект.ИДЗаказПокупателя) Тогда
            Объект.ИДЗаказПокупателя = ОбъектКА.ИДКонтрагента + Прав(Объект.Номер, 3);
            КонецЕсли;

    КонецПроцедуры


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует