|
Хитрая генерация номеров документов | ☑ | ||
---|---|---|---|---|
0
vfrcbv
16.04.18
✎
13:11
|
Добрый день.
Есть обработка, которая программно заполняет и создает документы. Номер нового документа генерируется по определенным правилам (в начале содержаться номер месяца, затем символ точки и собственно уникальный номер документа, например, 04.0001). Но задача усложняется тем, что еще обработка может автоматически создавать "подчиненные" документы, например, 04.0001/1 и 04.0001/2. Пример: Базовый документ 04.0001 Подчинённый документ 04.001/1 Подчинённый документ 04.001/2 Базовый документ 04.0002 Подчинённый документ 04.002/1 Подчинённый документ 04.002/2 Подчинённый документ 04.001/3 Префикс номера с месяцем легко вычислить и установить через событие: ПриУстановкеНовогоНомера. Но как при этом, установить новый уникальный номер базового документа оставив 3 пустых символа справа (символ / и номер подчиненного), для использование нумерации подчинённых документов. Подскажите, как это сделать. |
|||
1
Tateossian
16.04.18
✎
13:18
|
(0) Для начала, тебе придется выключить в конфигурации автонумерацию (я бы не рекомендовал такую нумерацию), но если уж очень необходимо - тогда лучше заведи допполе, типа суффикс номера (и еще уникальность нужно выключить, но контролировать самостоятельно для такой схемы). А вычислять номер - запросом.
|
|||
2
bodri
16.04.18
✎
14:17
|
(1) Как-то как раз почти такое как (0) подобным и сделал.
|
|||
3
Повелитель
16.04.18
✎
14:25
|
(0) Главбухи вместо того, чтобы вовремя и правильно формировать СФ, решили программиста нагрузить.
|
|||
4
Пузан
16.04.18
✎
15:08
|
Для подчиненного документа префикс - это номер базового плюс слэш. И все. В подписке на событие установки нового номера прописывается это. Делал подобное. Буквально несколько строк кода.
|
|||
5
Туц
16.04.18
✎
15:23
|
(0) Запросом. Напишу как это примерно выглядит на mssql
Грубо select max(substring(номер,4,3)) from блаблабла where substring(номер,1,2) = '04' ты получишь для заданного месяца максимальный номер прибавь один ну и в качестве домашнего задания напрягись и изобрази сие в синтаксисе запросов 1с |
|||
6
Serg_1960
16.04.18
✎
16:00
|
Если вместо суффикса (цифры после косой черты) использовать ещё один префикс, то можно использовать типовую версию конфигурации с минимальным внесением изменений - в типовых предусмотрено использование двух префиксов (префиксы узлов распределенной базы и организаций)
|
|||
7
Быдло замкадное
16.04.18
✎
16:06
|
делал ручную нумерацию.
Запросом получаешь из всех номеров данного года что-то вроде Подстрока(). Или как там в запросе точно не помню. Сортируешь по этому полю, вот тебе крайний номер. Потом + 1 в коде. Ну и номер собираешь руками. У тебя в запросе еще будет условие какие доки выбирать (Содержит 04.0001) |
|||
8
Быдло замкадное
16.04.18
✎
16:07
|
и да, номер целиком сам собираешь. Никакие подсказки платформы уже не работают.
|
|||
9
Быдло замкадное
16.04.18
✎
16:10
|
ах да, и еще нули перед номером добавлял. Программно рассчитываешь сколько ноликов подставить и в цикле подставляешь.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |