bpm
добавить маску
Маска
номер

Маска в номере

Добрый день, уважаемые пользователи интернет сообщества Terrasoft!

Как вы знаете, в системе BPMonline в таких сущностях как счет, документ и пр., существует поле "Номер", которое автоматически (если другой не указан) проставляется как номер предыдущей сущности плюс один. Иногда возникает необходимость добавить префиксы к нумерации, т.е к примеру счета нумеровать как С-1, С-2 и т.д., документы - Д-1, Д-2 и т.д.
Предлагаю Вам простой способ реализации автоматического проставления префиксов к номерам:
для этого Вам необходимо перейти в раздел «Системные настройки» меню [Инструменты] и открыть группу «Автонумерация записей». В этой группе откройте системную настройку «Маска номера инцидента» (документа, счета и т. д.)

1

и измените значение следующим образом:

I: {0} (для инцидента, другие префиксы - для других сущностей).

2

Приятной работы с BPMonline!

Нравится

Поделиться

10 комментариев

Добрый день!
А как например добавить текущую дату к номеру документа?
Какие-то еще маски кроме {0} целочисленных допускаются?
Или это уже на уровне базы данных нужно делать?
Спасибо

На уровне конфигурации.

Чтобы произвольным образом изменить маску, нужно доработать в схеме «Сгенерировать номер по порядку» функцию «GenerateNumberForSchemaName». Там на вход подаётся название раздела, можно для какого-то одного или для любого раздела заменять определённый макрос на текущую дату.

Если возникают вопросы о конретной реализации, напишите пример формата номера, который хотите получить.

Спасибо, Александр.
Нашел метод GenerateSequenseNumber в схеме «Сгенерировать номер по порядку» в пакете Base 7.5.0
Подскажите еще, как мне его переопределить в своем пакете? Создать свой бизнес-процесс?
Хочу формировать номер заказа в формате YYYY/MM-###

Ниже генерация номера договора (OrderPageV2) в формате Город: кодГорода + Знач.Сис.Настройки + НомерПопорядку(6 знаков) + Знач.Сис.Настройки + КодПродуктаВДоговоре.
Может поможет:

[javascript]
onEntityInitialized: function() {
this.callParent(arguments);
if (this.isAddMode() || this.isCopyMode() || this.get("NumberEx") === ""
|| this.get("NumberEx") === undefined || this.get("NumberEx") === null) {
if (this.get("Number") === "") {
this.getIncrementCode(function (responce) {
this.set("Number", responce);
});
}
var owner = this.get("Owner");
if (!this.Ext.isEmpty(owner)) {
this.getContactCityCode(owner, function(cityCode) {
if (this.Ext.isEmpty(cityCode) || this.Ext.isEmpty(cityCode.city)) {
this.set("Number", "");
this.set("NumberEx", "");
this.showMessage("Номер договора не сгенерирован. В карточке ответственного не указан город!");
return;
}
else if (this.Ext.isEmpty(cityCode.code)) {
this.set("Number", "");
this.set("NumberEx", "");
this.showMessage("Номер договора не сгенерирован. Для города ответственного не указан код!");
} else {
this.getProductCode(function(productCode) {
if (this.Ext.isEmpty(productCode) || this.Ext.isEmpty(productCode.product)) {
this.set("Number", "");
this.set("NumberEx", "");
this.showMessage("Номер договора не сгенерирован. В заявке нет продуктов!");
return;
} else if (this.Ext.isEmpty(productCode.code)) {
this.set("Number", "");
this.set("NumberEx", "");
this.showMessage("Номер договора не сгенерирован. В продукте заявки не указан код!");
} else {
var OrderNumber = this.get("Number");
while(OrderNumber.length < 6) {
OrderNumber = "0" + OrderNumber;
}
var parentThis = this;
Terrasoft.SysSettings.querySysSettingsItem("OrderNumberSeparator", function(value) {
parentThis.set("NumberEx", cityCode.city + ": " + cityCode.code + value +
OrderNumber + value + productCode.code);
parentThis.set("Number", cityCode.city + ": " + cityCode.code + value +
OrderNumber + value + productCode.code);
});
}
});
}
});
}
}
}
[/javascript]

Спасибо большое!

Каким образом решить проблему с сортировкой по полю номер с использованием маски, т.к. поле "Номер" является текстовым и в следствии этого возникает следующая ситуация:

Вопрос с сортировкой продолжили обсуждать здесь.

Здравствуйте. Подскажите пожалуйста, а как настроить маску, чтобы нумерация была типа цифры-год. Чтобы каждый год естественно концовка менялась. К примеру, 1885-15
Благодарю

Какая версия используется?

"Зверев Александр" написал:

Какая версия используется?

Здравствуйте, Александр. Используется версия 7.6

Показать все комментарии