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

1С:Предприятие ::

Метки: 

Хитрая генерация номеров документов

Я
   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 пустых символа справа (символ / и номер подчиненного), для использование нумерации подчинённых документов. Подскажите, как это сделать.
 
 
   Tateossian
 
1 - 16.04.18 - 13:18
(0) Для начала, тебе придется выключить в конфигурации автонумерацию (я бы не рекомендовал такую нумерацию), но если уж очень необходимо - тогда лучше заведи допполе, типа суффикс номера (и еще уникальность нужно выключить, но контролировать самостоятельно для такой схемы). А вычислять номер - запросом.
   bodri
 
2 - 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с
   Serg_1960
 
6 - 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
ах да, и еще нули перед номером добавлял. Программно рассчитываешь сколько ноликов подставить и в цикле подставляешь.


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