После обсуждения «Работаем без последовательности?» в ветке «Che Burashka» на форуме ИС, некоторых высказываний «hogik» и моих собственных размышлений - появилось желание высказать свои размышления по «поводу» и «без» относительно высказанных в ходе обсуждения идей …
ветка ЧЕ: //infostart.ru/forum/forum11/topic28666/
замечание из написанных комментариев : дело не в составном коде ...! составной "код" не самоцель а средство ... !!!
читаем внимательнее ! ...
Решил начать повествования с самого главного, с моей точки зрения – со справочника «Номенклатура». Считаю, его самым главным объектом программы и от его принципов построения, а также принципов его использования в программе зависит если не всё то очень многое.
Вся статья опирается на мой прошлый опыт, довольно старый, 15 летней давности, когда многие программисты пытались писать «свои» программы бухгалтерского учёта.
Для начала несколько теоретических постулатов:
- Нормализация данных
- Колонки в таблице описывают объекты одного и того же типа;
- Колонки с не заполняемыми данными выносятся в отдельную таблицу;
- Не запоминаем в таблице данные, которые можно вычислить;
- Минимум данных для описания объектов.
- Построение отчётных данных при необходимости вынести в отдельную базу (сейчас это называется OLAP).
Принципы построения справочника «Номенклатура»
- Код элемента справочник не более 13 символов и является составным, а не «сплошным».
- Код является уникальным во всём справочнике.
- Каждое новое поступление номенклатуры - новый элемент справочника
- Для увеличения производительности справочников может быть несколько.
- Избегать создания подчинённых справочников.
- Минимальный уровень универсализации.
- Минимум ссылочных данных.
Справочник.
Справочник состоит из строк описывающие номенклатуру поступления. Одна и та же номенклатура разделена «приходом», но объединена единым аналитическим признаком.
Элемент справочника.
Элемент справочника характеризует номенклатуру с точки зрения идентификации его относительно хозяйственной операции. Для несколько «грубого» понимания можно сказать, что элемент справочника есть то, что понимается под словом «партия».
Код элемента справочника.
Код справочника является составным и подчиняется следующим правилам:
- Разрядность;
- Сборность;
- Многофункциональность;
- Однозначность.
Разрядность.
Код элемента делится на группы цифр. Например, 12-34-567-8-90-123.
Сборность.
Каждая группа цифр, разряд, содержит определённую информацию, поэтому и «собирается» по определённым правилам.
Многофункциональность.
«Код» не только информативен по разрядам, но и сам является носителем данных, например, является штрих кодом данного элемента справочника.
Однозначность.
«Код» должен быть однозначным в справочнике (уникальным).
Предлагается следующий способ составления кода элемента:
пн |
Группа разрядов |
Описание |
Разрядность |
Количество значений |
|
|
|
|
|
1 |
Резерв |
Предназначен для указания конкретного справочника Номенклатура. |
1 |
10 |
2 |
Номер1 |
Тип номенклатуры |
1 |
10 |
3 |
Номер2 |
Вид номенклатуры |
2 |
100 |
4 |
Номер3 |
Код номенклатуры |
3 |
1000 |
5 |
ЕИ |
Единица измерения номенклатуры |
1 |
10 |
6 |
Признак |
Характеристика, свойство номенклатуры |
2 |
100 |
7 |
Партия |
«Приход» номенклатуры |
2 |
100 |
|
|
|
|
|
|
|
ИТОГО: |
13 |
|
Примечание. Группы и их разрядность строятся при разработке справочника. Данная таблица приведена как пример.
Резерв.
Резерв предназначен для возможного увеличения количества справочников. В системе могут существовать несколько справочников «Номенклатура». Разделение справочника «Номенклатуры» возможно, если нагрузка на определённые группы элементов будет критичной для производительности. Тогда будет целесообразно его разделить.
Номер.
Вся номенклатура предприятия разделена по определённой иерархии. Например, если взять некий магазин, то его ассортимент можно поделить на основные группы товаров:
1. Канцелярские товары;
1.1. Карандаши;
1.1.1. Простые;
1.1.2. Цветные;
1.1.3. Наборы;
1.2. Ручки;
1.3. Бумага;
1.4. Краски;
1.5. Разное
2. Продукты;
3. Хозяйственные товары;
4. и так далее.
В примере с номенклатурой магазина группа «Номер1» соответствует «х.» нумерации, «Номер2» соответствует «х.х.» и «х.х.х.». «Номер3» соответствует «сплошному» коду номенклатуры.
Группы «Номер1», «Номер2», «Номер3» при необходимости можно объединить в этом случае количество номенклатуры может составить (10х100х1000) 1 000 000 вариантов или дополнительно разделить. Всё зависит от конкретных условий.
Как пример приведём некий код гипотетической номенклатуры с учётом приведённого примера иерархии номенклатуры магазина приведённого в примере:
0-1-12-789-х-хх-хх.
Глядя на этот код можно сказать, что:
0 - первый справочник номенклатуры;
1 - относится к группе «Канцелярские товары»;
2 - это «Карандаш»:
3 - это «Цветной» карандаш.
При необходимости группу «Канцелярские товары» можно сделать справочником со всеми вытекающими возможностями детализации.
Единицы измерения.
Аналогично можно подойти и к составлению и обозначению «Единиц измерения» а если их не много, как правило, то и совсем отказаться от справочника «Единицы измерения» и вести его в качестве информационной подсказки. Если придти к ведению номенклатуры к двум видам «шт» и «вес» тогда можно отказаться от группы «Единицы измерения». Тогда «кода» чётные будут «шт» а не чётные «вес». В документах выводить соответствующие единицы измерения расчётным способом.
Характеристика, свойства номенклатуры.
Данная группа цифр может содержать дополнительную информацию о номенклатуре.
Партия.
Содержит информацию о «приходе» номенклатуры. Например, производитель, дата, цена, количество и так далее.
Дальше, при разработке схемы необходимых объектов конфигурации, начинается совсем интересное и загадочное шаманство. Например, что лучше - использовать идентификацию и описание номенклатуры в строке справочника «Номенклатура» или пойти на создание и использование дополнительных, подчинённых справочников.
Выбор не из лёгких. В этом выборе решающую роль играет стечение нескольких обстоятельств: смелость разработчика, профессионализм бухгалтера, специфика деятельности и финансовые возможности конкретного предприятия. Рекомендация одна - чем меньше всего из выше перечисленного, тем меньше актов чтения и записи данных.
Даёшь свободу «заднему числу»!
… вот …
п.с. если данные мысли не будут оценены отрицательно то можно будет продолжить размышления на тему: « … а есть ли жизнь без последовательности … ?».
… ВОТ …