Автонумерация для договоров

8 0

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

  1. Возможность настройки форматов номеров для справочников в зависимости от значений его реквизитов.
  2. Возможность задания форматов номеров для приложений и доп. соглашений в разрезе ведущей сделки. При этом предусмотреть, что приложения и доп. соглашения могут нумероваться отдельно друг от друга и возможность задания в качестве элемента формата номера номер ведущей сделки.
  3. Для нескольких форматов номеров должна быть возможность настройки сквозной нумерации.

Для выполнения данных требований было разработано прикладное решение, первоначально ориентированное на справочник «Договоры», но затем оно было распространено и на другие справочники. Рассмотрим данное решение в контексте двух примеров:

  1. В рамках одной организации функционирует несколько юридических лиц, назовем их Org1 и Org2. Необходимо настроить единый сквозной номер для договоров этих двух наших организаций (НОР), но с разными префиксами Org1 и Org2 соответственно. Номера должны выглядеть так: Org1-0001, Org2-0002 и т.д.
  2. Для НОР Org1 необходимо настроить нумерацию для приложений так, чтобы она велась отдельно своя для каждой ведущей сделки. Номер ведущей сделки должен участвовать в формате номера.

Итак, в прикладной разработке используются следующие справочники:

  1. «Типы разрезов справочников» – предназначен для хранения информации о реквизитах карточки нумеруемого справочника, значения которых будут определять правило формирования номера. Для одного справочника может быть настроен только один тип разреза. Чтобы выполнить настройку согласно вышеуказанным примерам нам понадобятся следующие реквизиты (см. рис. 1):

Рис. 1. Карточка записи справочника «Типы разрезов справочников»

  1. «Форматы номеров». В данном справочнике настраивается состав элементов номера для конкретных значений реквизитов записи нумеруемого справочника. Форматов номеров, соответствующих данному типу разреза, может быть несколько. Чтобы реализовать пример 1 и 2 нам понадобятся три записи данного справочника. Для примера 2 запись будет выглядеть:

  

Рис. 2. Карточка записи справочника «Форматы номеров»

После выбора значения поля «*Тип разреза» в табличную часть автоматически переносятся реквизиты, указанные в соответствующей записи справочника «Типы разрезов справочников». Состав реквизитов не может быть изменен. Необходимо указать конкретные значения реквизитов. Однако если определенный реквизит не участвует в формировании номера, то его значение не заполняется.

Здесь следует расшифровать значение следующих полей с «неговорящими» названиями (см. рис. 2):

Счетчик – ссылка на запись справочника «Счетчики форматов номеров», поле необходимо заполнять в случае, если несколько форматов номеров используют единый сквозной порядковый номер, но при этом элементы, участвующие в формировании формата номера, отличаются (см. пример на рис. 4,5).

Нумерация по значению разреза – признак Да/Нет, предназначен для указания сквозной нумерации, если не указано одно или несколько значений элементов разреза. Имеет смысл при незаполненном поле «Счетчик».  Если установлено значение «Да», то порядковый номер будет сквозным только в рамках тех записей, которые подпадают под значения заполненных элементов разреза и имеют одно и то же значение незаполненного элемента разреза. Если значение равно «Нет» или данный реквизит пуст, то порядковый номер будет сквозным для всех записей справочника, подходящих под разрез формата номера. По требованиям примера 2 устанавливаем значение «Да». Тогда запись справочника «Договоры» с реквизитами Ведущая сделка = Deal1, НОР = Org1, Тип документа = Приложение будет иметь порядковый номер отличный от записи Ведущая сделка = Deal2, НОР = Org1, Тип документа = Приложение.

  1. «Счетчики форматов номеров». Содержит текущее значение элемента формата номера «№ - порядковый номер» (см. пример на рис. 3). Запись справочника связана с записью справочника «Форматы номеров». Несколько записей справочника «Форматы номеров» могут использовать один и тот же счетчик. В данном справочнике можно изменить текущее значение счетчика.

 

Рис. 3. Карточка записи справочника «Счетчики форматов номеров»

Может оказаться, что значения реквизитов нумеруемого справочника удовлетворяют нескольким записям справочника «Форматы номеров»одновременно. В этом случае среди имеющихся вариантов будет выбираться формат номера с наибольшим количеством заполненных значений реквизитов. Если количество заполненных реквизитов одинаково, то будет применяться один из вариантов. Поэтому при заполнении справочника «Форматы номеров» нельзя допускать неоднозначность выбора.

Продемонстрируем настройку форматов номеров для примера 1 (см. рис. 4,5). Следует обратить внимание, что в настройке формата номера для НОР Org2 заполняется поле «Счетчик» значением, в котором как раз хранится текущий порядковый номер НОР Org1.

Рис. 4. Настройка формата номера для НОР Org1

Рис. 5. Настройка формата номера для НОР Org2

При необходимости изменения элементов разреза (добавление/удаление элементов) требуется изменить состав элементов разреза в соответствующей записи справочника «Типы разрезов справочников», во всех записях справочника «Форматы номеров», относящихся к данному типу разреза, перевыбрать значение поля «*Тип разреза» и задать новые значения элементов разреза. 

Пока комментариев нет.

Авторизуйтесь, чтобы написать комментарий