|
Условная нумерация документов | ☑ | ||
---|---|---|---|---|
0
A_O_315
27.03.20
✎
11:11
|
Здравствуйте.
Стоит такая задача: Необходимо соблюдать нумерацию документов на основании своеобразной структуры подчиненности. В документе есть реквизит "ОсновнойДокумент" такого же типа как и сам документ. Если в Документе указана ссылка в реквизите "основнойДокумент", то в таком случае номер должен формироваться как Номер основного документа + "/1" . ну или с префиксации, но даже если использовать префикс, явного решения проблемы без ручного переназначения номеров я не вижу, так как докуменов создается очень много и одновременно работает 70+ юзеров. Например как должно выглядеть: Документ 001 - это основной документ Документ 001/1 - это документ где в реквизите "ОсновнойДокумент" выбран вышеуказанный Документ 001 Документ 001/2 - это еще один документ где в реквизите "ОсновнойДокумент" выбран вышеуказанный Документ 001 Документ 002 - это новый документ без указания реквизита "ОсновнойДокумент" Надеюсь я смог донести суть вопроса. Буду благодарен за идеи. |
|||
1
lodger
27.03.20
✎
11:15
|
специально для вас
ДокументОбъект.<Имя документа> (DocumentObject.<Document name>) ПриУстановкеНовогоНомера (OnSetNewNumber) Синтаксис: ПриУстановкеНовогоНомера(<СтандартнаяОбработка>, <Префикс>) Параметры: <СтандартнаяОбработка> Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная генерация нового номера производиться не будет. Значение по умолчанию: Истина. <Префикс> Тип: Строка. Префикс, который будет использоваться для генерации номера. Может быть изменен в процедуре-обработчике события. Описание: Возникает в момент, когда выполняется установка нового номера документа. Примечание: Параметр <Префикс> может быть указан, если Номер имеет тип Строка. Замечание: Безопасный режим на время исполнения данного обработчика будет отключен. Данное замечание не относится к обработчикам событий, расположенным в расширении конфигурации. См. также: ДокументОбъект.<Имя документа>, метод УстановитьНовыйНомер |
|||
2
mikecool
27.03.20
✎
11:16
|
(0) не используй суффиксы, используй только префиксы и будет тебе счастье и мало кодирования
|
|||
3
A_O_315
27.03.20
✎
11:17
|
(1) Спасибо за копипаст)))) но я знаю что в природе водятся события ПриУстановкеНовогоНомера))) суть вопроса в логической реализации
|
|||
4
A_O_315
27.03.20
✎
11:19
|
(2) По логике вещей для каждого "Подокумента" суффиксом должен служить номер документа указанный в реквизите "ОсновнойДокумент". Но насколько правильно такое писать? Был ли у кого такой опыт? И самый тревожащий меня вопрос - нагрузка на базу
|
|||
5
A_O_315
27.03.20
✎
11:20
|
(4) сори. не суффиксом а префиксом
|
|||
6
mikecool
27.03.20
✎
11:21
|
(4) главное чтобы у тебя хватило длины номера на это все, но - писать номер одного дока в номер другого - это хрень
видимо постановщик задачи не понимает., чего хочет или ты неверно его понял или не смог переубедить |
|||
7
mikecool
27.03.20
✎
11:22
|
в чем суть задачи? если для вывода в ПФ, то это решается другим способом
|
|||
8
lodger
27.03.20
✎
11:23
|
(4) в ходе жизни объекта и его формы, каждый раз как удалось потыкать ДокументОснование читай из него номер и помещай в ДополнительныеСвойства объекта
Процедура ПриУстановкеНовогоНомера(Стд,Преф) Если ДополнительныеСвойства.Свойство("ДокументОснованиеНомер") Тогда //Стд = Ложь; может да а может нет, не помню Преф = ДополнительныеСвойства.ДокументОснованиеНомер + "/"; Иначеесли значениезаполнено(ДокументОснование) Тогда //Стд = Ложь; Преф = ДокументОснование.Номер+ "/"; конецесли Конецпроцедуры |
|||
9
lodger
27.03.20
✎
11:24
|
но нумератору от этих плясок станет дурно.
|
|||
10
mikecool
27.03.20
✎
11:25
|
а если вложенность станет более двух уровней? вообще швах )
|
|||
11
A_O_315
27.03.20
✎
11:33
|
(6) Я пытался переубедить но заказчик верит в чудо) Грубо говоря есть основная реализация товара и бывает так называемая "дореализация" - это когда после основной продажи клиент хочет докупить товара, но отражать это надо отдельным документом. Но при всем при этом заказчик хочет чтобы последовательность нумерации по основной реализации была отражена по инкременту для послеовательного отражение номеров продажи без "пробрешин"
|
|||
12
ptiz
27.03.20
✎
11:34
|
(0) Добавить больше нулей и не страдать:
Документ 001 - это основной документ Документ 001/0001 - это документ где в реквизите "ОсновнойДокумент" выбран вышеуказанный Документ 001 Т.е. "001/" - это префикс, формируемый по документу-основанию + обычный номер. |
|||
13
ptiz
27.03.20
✎
11:35
|
Кстати, это документы разных видов или одного?
Если одного, то будет так: Документ 0000001 Документ 001/0001 |
|||
14
lodger
27.03.20
✎
11:43
|
(13) на следующий документ автоинкремент сделает 001/0002. и ему пофиг, что надо было 002
|
|||
15
bolero
27.03.20
✎
11:49
|
(11) как насчет прописывать в "суб-"реализации документом-основанием основную, потом хитрым способом выводить списки деревом?
он с этой нумерацией на штраф от ФНС напорется, если эти букеты реализаций будут не одним днем |
|||
16
ptiz
27.03.20
✎
11:54
|
(14) Для "обычных" документов делаем префикс = "0000" и всё ок.
|
|||
17
mikecool
27.03.20
✎
12:04
|
(11) я же и говорю, что проблемы в консерватории
|
|||
18
mikecool
27.03.20
✎
12:04
|
+17 дореализация суть реализация и пусть не парит никому мозг, но если клиент готов платить - то тут танцуем )))
|
|||
19
A_O_315
27.03.20
✎
13:32
|
(18) Сделал очень примитивно. назначаю префиксом номер головного документа. Работало вроде корректно но в какой-то момент нумерация сбилась)) копаю дальше)) всем спасибо за советы)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |