что такое код нси
Что такое код нси
В 21 веке мы вступили в такой период развития, когда представить жизнь без электронно-вычислительных машин и программного обеспечения к ним совершенно невозможно, которые помогают нам в повседневной жизни, увеличивают производительность отдельно взятого специалиста, ускоряют течение времени.
В наш пресвященный и информационный век большое значение имеет быстрый поиск всех интересующих нас вопросов, начиная от способа открывания консервной банки без открывалки и заканчивая запросом нормативного документа федерального уровня.
В наш пресвященный и информационный век большое значение имеет быстрый поиск всех интересующих нас вопросов, начиная от способа открывания консервной банки без открывалки и заканчивая запросом нормативного документа федерального уровня. Любое юридическое действо сопровождается соответствующей документацией. Поэтому в государственном документообороте таких документов еще больше, ведь эта сфера достаточно масштабная.
Хорошим примером для понимания НСИ являются специальные справочные информационные базы, представляющие собой перечень нормативных правовых законодательных актов, указов и законов. Такой работой должен заниматься специальный отдел.
В состав НСИ обычно входят следующие информационно-аналитические компоненты:
Все эти данные в целом представляют собой мощный инструмент, способный решать многосложные и многоуровневые задачи.
Особенности и достоинства НСИ
Совокупность нормативно-справочной информации – это довольно мощный инструмент для хранения и качественной систематизации информации, входящей в ее компоненты.
Важным достоинством системы НСИ является возможность создания отчетов любой сложности, что способствует удовлетворению любых, даже самых сложных требований пользователя.
В заключение можно добавить, что системы НСИ – это мощный инструмент работы, которые просто необходимы в любых трудовых процессах каждого предприятия, а также в процессах работы федеральных и муниципальных органах самоуправления.
h4 >Определение нормативно-справочной информации (НСИ)
Нормативно-справочная информация предприятия представляет собой структурированную определенным образом условно-постоянную информацию, предназначенную в целях формирования и описания бизнес объектов и бизнес-процессов компании.
Чаще всего, нормативно-справочная корпоративная информация состоит из справочников, нормативных документов, словарей, классификаторов и других разновидностей понятий, призванных сформировать объединенное корпоративное пространство информации.
Основу НСИ организации составляют три основные группы:
Системы, использующиеся для поддержки справочной информации, в настоящее время, пользуются высоким спросом у заказчиков и проектных интеграторов. Российские крупные компании стараются не столько приобрести такие системы, сколько принять активное участие в разработке своих программных решений данного вопроса. Быть может, приобретение подобной системы покажется Вам довольно дорогой, но поверьте, что она того стоит.
НСИ в организациях и фирмах
Компании, которые первоначально обратили внимание на высокую значимость систем по поддержке нормативно-справочной информации и вложившие свои средства в их разработку, уже сегодня получают неплохую прибыль.
Существует несколько основных причин, по которым руководители крупных компаний стараются пользоваться системами нормативно-справочной информации в своих организациях:
НСИ в 1С
Создание информационных систем актуально для всех предприятий в век бурного технологического развития. В особенности таких, которые затрагивают самые разные направления деятельности, включая бухгалтерский, складской и управленческий учет, управление сотрудниками. Для построения единых систем нормативно-справочной информации доступно решение НСИ в 1С.
Ведь можно создать целый ряд независимых друг от друга систем, которые будут отвечать за каждое из направлений. Но в определенные моменты деятельности может возникнуть потребность увидеть происходящее целиком. А если на предприятии используются различные системы, сопоставить и сравнить данные невозможно. Это связано с тем, что наименования присваиваются в системах различными способами, что может привести к противоречивости и некорректности данных, а также их дублированию.
Основная причина несоответствий заключается в отсутствии единого подхода к созданию мастер-данных. Другими словами сведений, которые представляют основу структурных элементов компании.
Поэтому на предприятиях должна быть создана нормативно-справочная система, с помощью которой можно своевременно идентифицировать источник данных и корректно оперировать сведениями.
Сильные стороны НСИ, результаты внедрения
Нормативно-справочная информация – это ведение и поддержка различных справочников, которые обеспечивают ввод данных в информационном пространстве, в котором ведется работа. Такие системы можно назвать условно-постоянными.
Для эффективного управления предприятием должно быть создано общее информационное пространство. Таким образом, любое перемещение информации между различными участками будет организовано единообразно и будет опираться на единую базу. Для интеграции всех существующих систем понадобится централизованное управление нормативно-справочной информацией.
С помощью НСИ можно добиться следующих результатов:
Таким образом, осуществляется централизация ответственности за качество самой нормативно-справочной системы.
Собственники субъектов хозяйственной деятельности получают следующие преимущества:
Все это существенно упрощает подготовку отчетности – управленческой и бухгалтерской. В том числе система оптимизирует материальные затраты, повышает качество решений, улучшает качество консолидации учетных данных.
Справочники в 1С
В разделе нормативно-справочной информации в товароучетной программе 1С содержатся справочники, необходимые для работы в большинстве компаний. Эти справочники можно редактировать, вносить в них информацию для корректной работы по определенному виду деятельности.
Справочники можно разделить на основные и прочие. Первая категория включает справочники, необходимые для оформления документации по хозяйственной деятельности. К прочим относятся справочники, которые облегчают поиск и ввод данных.
В зависимости от вида деятельности, основные справочники содержат информацию о структуре компании и номенклатуре. К прочим относятся классификаторы, содержащие информацию общероссийских классификаторов, в их числе адресный классификатор, сведения о банках. Для предприятия, которое занимается торговлей, это могут быть склады, в которых хранится товар, торговые точки, кассы. Для сферы производства информационная структура будет более сложной.
Фирмы по оказанию услуг может иметь простую структуру в зависимости от количества видов услуг. Например, это может быть информация о самой организации, ее контрагентах. В одних решениях нормативно-справочная информация может быть вынесена в отдельный раздел меню, в других иметь вид Справочников в разделе «Компания», «Настройка» или меню «Справочники».
Описание НСИ
В любой информационной системе есть объекты и свойства. Каждый объект обладает определенными свойствами, по которым его можно идентифицировать. Все строится по определенным правилам и нормам, в качестве примера можно рассмотреть документ Спецификация, в котором отражены объекты, свойства и количество.
В 1С:ERP представлен отдельный раздел в меню «НСИ и администрирование», который включает два блока – «Настройка НСИ и разделов» и НСИ, содержащий справочники. В первом из них содержится нормативно-справочная информация для разных направлений, в том числе казначейство, заработная плата, кадры, налоги.
По отдельности НСИ размещена в некоторых разделах, включая «Закупки», «Производство», «Продажи». Любые нарушения при создании данных в системе могут вызвать проблемы, поэтому важно понимать архитектуру сведений, которые создают логистику. В системе содержится большое количество предустановленных реквизитов.
Вся корпоративная информационная система основана на архитектуре и полагается на эти сведения.
С мастер-данными происходят различные события. В результате этого производится запись в той или иной форме в базу данных. Отчеты строятся на основании той или иной формы различными способами.
Номенклатура – что это такое
Справочник «Номенклатура» присутствует во всех НСИ, которые связаны со сферой торговли, производства, оказания услуг, выполнения работ. В этом справочнике справа представлены виды номенклатуры, а в левой части – непосредственно объекты.
Следующие их виды установлены в 1С: Управление нашей фирмой – материалы, бытовая техника, розница, модули, работы и услуги, сантехника, мебельные детали. Внутри каждого из них представлены объекты, включенные в группу.
Отличаются виды объектов и их свойства в 1С: ERP. Они зависят от видов деятельности компании. Система позволяет задать фильтр по свойствам или видам.
По сути, виды номенклатуры представляют собой разрезы, которые содержат в себе определенные характеристики. Их объединяют по определенным признакам. Этих признаков может быть несколько, в частности, по отношению к производственным процессам.
Справочники в 1С:ERP
В основном справочнике содержатся сведения об Организации.
В них представлена следующая информация:
Есть и прочие сведения, такие как лицензии, кассы предприятия, лицевые счета предприятия. Впоследствии вся информация выводится в соответствующих документах.
Настройка выполняется в разделе «Настройка НСИ и разделов», в котором следует поставить галочку, если ведется учет нескольких организаций. Также можно задать валюту, настроить график, отметить подразделения в отдельном банке, разделить операции закупок и продаж для управленческого, регламентного учета.
В разрезе направлений отражены склады, отделы компании и службы в Справочнике «Структура предприятия». В справочниках «Кассы предприятия» и «Кассы ККМ» содержатся сведения о нумерации кассовых ордеров, принадлежности кассы к структурному подразделению, складах, регистрационном номере, типе касс для контрольно-кассовой машины.
Справочник «Физические лица» включает данные о любых физических лицах, связанных
С помощью справочника можно сгруппировать массивы по различным категориям. Предусмотрена возможность внесения сведений о гражданстве, контактных данных, дате и месте рождении, страховании и налогах, лицевых счетах.
Детальная информация о продукции производства и местах хранения товаров содержится в справочнике «Склады и хранение». Группировка производится по таким направлениям как виды цены, назначение склада, контактные данные.
Разновидности и состав номенклатуры
Данные о материалах, продукции, полуфабрикатах, предоставляемых услугах и покупных товарах хранятся в справочнике «Номенклатура».
Предусмотрена возможность настройки классификаторов номенклатуры, включая единицы измерения, виды, ценовые, складские и сезонные группы, по ТН ВЭД и по ОКВЭД.
Для производственных предприятий в группе комплектующих представлены такие номенклатуры как полуфабрикаты, изделия из дерева, основные материалы.
В любом виде номенклатуры можно увидеть основные данные о нем. Доступна функция корректировки.
На этапе создания нового вида необходимо указать группу доступа.
Что представляет собой номенклатура
В каждом объекте представлена табличная форма. На вкладке «Карточка» содержатся такие реквизиты как код, наименование, описание с изображением, артикул, параметры учета, данные о производстве, цены. Приведенные выше сведения можно ввести или изменить на вкладке «Реквизиты».
Единицы измерения могут отличаться для отражения единиц для отчетов и единиц хранения. Также здесь указываются группы учета (финансового и регламентированного), НДС. Если у объекта есть отличительные свойства, их можно увидеть при его выделении, непосредственно под видами.
Это значит, что можно выбрать материалы по определенным характеристикам. В этом же окне в строке поиска предусмотрен ввод необходимого объекта. С помощью перемещения курсора по видам номенклатуры можно гораздо быстрее найти элемент, что очень удобно при большом количестве наименований. Доступен поиск по штрих-коду, сортировка по товарам другого качества и номенклатуре с аналогичными характеристиками.
После материалов и комплектующих будет рассмотрена готовая продукция.
Спецификация
Например, предприятие занимается производством парников. Этот процесс включает изготовление деталей и их последующую сборку. Спецификация содержит данные о расходных материалах, всех этапах работы, трудовых затратах. Спецификацию можно посмотреть в разделе меню «Производство», и в категории «Нормативно-справочная информация» перейти к «Ресурсным спецификациям». Откроется список, в котором необходимо выбрать документ.
В форме «Спецификация» представлено несколько закладок. На основной размещена номенклатура, категория изделия, наименование, характеристики, единицы измерения, процент брака. На вкладке «Материалы и работы» указываются материалы, которые понадобятся при производстве.
В примере с парником это будет поликарбонат, саморезы, электродная проволока, профильная труба, каркас двери. Для всех наименований указываются единицы измерения, количество, способ получения, статья калькуляции. При «Установке дверей» способ получения материала производится по спецификации «Каркас дверей для парника». Отдельные характеристики для каждого из материалов не предусмотрены.
По спецификации «Каркас двери для парника» также выделены материалы для производства и этапы работы. На вкладке «Трудозатраты» размещены данные о количестве часов различных видов работ для изготовления парника, включая сварочные, слесарные, резку пластика, монтажные. Указывается, какой вид работ на каком этапе используется и статьи калькуляции.
Следующая закладка содержит сведения о процессе производства, в том числе очередность этапов и подразделения, в которых выполняется работа. Дополнительно приводится распределение затрат на изделия и указывается ответственное лицо.
Дерево спецификаций
Нюансы спецификации можно посмотреть с помощью «Дерева спецификаций».
Все данные спецификации можно найти в одном окне. Если спецификация основная, она будет подставляться во время организации работ по умолчанию. Эти документы выделяются шрифтом в общем списке.
К форме сравнения в списке спецификаций можно перейти с помощью клавиши «Сравнить спецификации». Нажатием кнопки «Добавить» выбираются необходимые спецификации, после чего нужно выбрать «Сформировать отчет». Появится таблица, в которой будут отражены сходства и различия при производстве выбранной продукции.
Можно оставить необходимые документы, для выбора этой опции нужно нажать «Показать только отличия».
Из всего вышеизложенного можно сделать вывод, что база данных строится на отдельных объектах с определенными свойствами. Эти объекты объединяются по определенным направлениям в списки и табличные формы. Они хранятся в товароучетной программе 1С и затем используются при заполнении документов, а также при последующем оформлении определенных процессов. Доступны списки клиентов, сотрудников, поставщиков.
Каждая позиция может хранить различную дополнительную информацию. В справочниках имеется иерархия, это значит, что данные объединяются в группы и подгруппы. Совмещение сведений, их взаимосвязи собираются в определенные нормативы. Все эти данные и составляют нормативно-справочную информацию, которая позволяет создать единую систему учета в компании.
Сервисы, помогающие в работе бухгалтера, вы можете приобрести здесь.
Централизованная ЕНСИ: о том, как эффективно работать с нормативно-справочной информацией
Для автоматизированного принятия управленческих решений и эффективного управления регионом на основе данных Компания БФТ предлагает внедрить платформу «Цифровой регион». Его важную часть составляет система централизованного управления нормативно-справочной информацией «БФТ.ЕНСИ». Она обеспечивает единообразие справочной и реестровой информации и сбор сопоставимых данных из разных информационных систем. Централизованный подход позволяет упорядочить данные, повысить эффективность их использования и сократить расходы на процессы ведения НСИ.
ВЕДЕНИЕ НСИ: ЗАДАЧИ К РЕШЕНИЮ
Нормативно-справочная информация (НСИ), включающая в себя реестры, справочники, классификаторы, кодификаторы и др., отвечает за регламентацию деятельности органов власти и является основой для унификации используемых в работе данных. Децентрализованный подход при ведении НСИ не позволяет эффективно управлять данными за счет:
На фоне обозначенных моментов становится очевидной необходимость создания информационной системы для централизованного хранения и согласованного изменения нормативно-справочной и реестровой информации на региональном или муниципальном уровнях.
МЕХАНИЗМ РАБОТЫ «БФТ.ЕНСИ»
В целевой схеме управления НСИ, которую предлагает построить Компания БФТ, справочники и классификаторы преобразуются и загружаются в единую централизованную систему НСИ и распространяются по единым регламентам из одной точки. Через открытый программный интерфейс(API) осуществляется распространение НСИ в системы-потребители. Благодаря этому к ней могут быть подключены любые информационные системы региона. При этом выгружаться могут как полные версии справочников, так и отдельные сведения, например, только изменения или данные по запросам системы-потребителя.
Управление НСИ может быть организовано как в автоматическом режиме работы, так и по заявкам, когда создание и изменение объектов осуществляется вручную.
В «БФТ.ЕНСИ» выделяются следующие подсистемы, предоставляющие:
Перечень подсистем может быть расширен.
ВОЗМОЖНОСТИ ЦЕНТРАЛИЗОВАННОГО РЕШЕНИЯ
«БФТ.ЕНСИ» представляет собой отдельное централизованное решение для хранения, ведения и распространения реестровых и справочных данных. В числе его возможностей:
«БФТ.ЕНСИ» не только обеспечивает поддержку актуальных копий федеральных справочников для использования региональными информационными системами, но и дополняет федеральные справочники необходимыми для региональных систем реквизитами. В случае, когда данные имеют несколько источников, информация пройдет проверку в системе «БФТ.ЕНСИ», дедупликацию и обогащение, а также будет приведена к единой форме. Таким образом, формируется «золотая запись», которая позволяет создавать и поддерживать достоверные, актуальные и непротиворечивые данные.
РЕЗУЛЬТАТЫ ВНЕДРЕНИЯ
Создание единой централизованной НСИ позволит обеспечить:
Что такое код нси
от 21 августа 2007 года N 1003
О классификаторах и перечнях нормативно-справочной информации, используемых для таможенных целей
(с изменениями на 10 мая 2018 года)
Документ с изменениями, внесенными:
приказом ФТС России от 13 ноября 2007 года N 1394 (изменения вступили в силу с 1 января 2008 года) (утратил силу с 1 января 2009 года на основании приказа ФТС России от 13 октября 2008 года N 1274);
приказом ФТС России от 2 декабря 2008 года N 1512 (вступил в силу с 1 января 2009 года) (утратил силу с 1 марта 2010 года на основании приказа ФТС России от 29 января 2010 года N 145);
приказом ФТС России от 3 апреля 2009 года N 611 (вступил в силу с 9 апреля 2009 года) (утратил силу с 1 марта 2010 года на основании приказа ФТС России от 29 января 2010 года N 145);
В целях унификации нормативно-справочной информации, используемой для таможенных целей,
особенностей перемещения товаров (приложение N 2);
видов транспорта и транспортировки товаров (приложение N 3);
особенности внешнеэкономической сделки (приложение N 5);
методов определения таможенной стоимости товаров, помещаемых под таможенные режимы, применимые к ввозимым и вывозимым товарам (приложение N 6);
признаков корректировки таможенной стоимости (приложение N 7);
видов таможенных деклараций (приложение N 8);
льгот по уплате таможенных платежей (приложение N 9);
видов документов, используемых при заявлении сведений в графе 44 ГТД (приложение N 10);
видов налогов, сборов и иных платежей, взимание которых возложено на таможенные органы (приложение N 11);
обозначений способов и особенностей уплаты пошлин, налогов и сборов (приложение N 12);
видов обеспечения уплаты таможенных платежей (приложение N 13);
экономических союзов и сообществ (приложение N 14);
видов груза, упаковки и упаковочных материалов (приложение N 15);
видов документов, подтверждающих наличие льгот по уплате таможенных платежей (приложение N 16);
таблицы соответствия клиринговой валюты и базовой валюты по Общероссийскому классификатору валют (приложение N 17);
мер по обеспечению соблюдения таможенного законодательства (приложение N 18);
особенностей расчетов за декларируемые товары (приложение N 20).
дополнительной таможенной информации (приложение N 24) (абзац дополнительно включен с 1 января 2009 года приказом ФТС России от 23 сентября 2008 года N 1162).
2. Использовать для целей электронной обработки сведений в таможенных органах следующие НСИ:
сокращенных наименований и аббревиатур основных реквизитов акцизных марок (приложение N 21);
решений, принимаемых таможенными органами (приложение N 22);
форм расчетов по внешнеторговым бартерным сделкам (приложение N 23);
классификатор дополнительной таможенной информации (приложение N 24) (абзац дополнительно включен с 1 января 2009 года приказом ФТС России от 23 сентября 2008 года N 1162).
3. Главному управлению информационных технологий (А.Е.Шашаев) совместно с ГНИВЦем ФТС России (О.П.Пучков) до 1 октября 2007 года внести с учетом положений настоящего приказа дополнения и изменения в базы данных НСИ, применяемые для обработки сведений, заявленных в таможенных документах, и обеспечить их применение с 1 января 2008 года.
4. Начальникам главных управлений, управлений согласовывать с Главным управлением организации таможенного контроля проекты правовых актов ФТС России, касающиеся внесения изменений и дополнений в классификаторы и перечни НСИ в соответствии с приложениями к настоящему приказу.
6. Начальникам таможенных органов Российской Федерации обеспечить доведение положений настоящего приказа до сведения всех заинтересованных лиц.
7. Настоящий приказ вступает в силу с 1 января 2008 года.
8. Контроль за исполнением настоящего приказа возложить на первого заместителя руководителя ФТС России В.М.Малинина.
Руководитель
действительный государственный советник
таможенной службы Российской Федерации
А.Ю.Бельянинов
Анатомия системы НСИ
Данная статья основана на реальных событиях,
и все проблемы в ней не вымышленные. (С)
В начале хотелось бы отметить, что статья не призвана показать изобретение велосипеда, потому как многие приёмы уже давно существуют в культуре разработки баз данных. Однако обобщить, проанализировать проблемы, которые они могут решить и показать, как с ними можно работать. А проблем хватает несмотря на то, что нормативно-справочная информация (НСИ) не относится к бизнес-логике, а скорее находится в обслуживании у неё. Стандартный процесс по рисованию очередной таблички для хранения справочника очень скоро начинает обрастать костылями или трудоёмкими переделками.
Вот и в моём случае оказалась та же картина — система стоит на продуктиве более десяти лет, строилась по тому же принципу, если что нужно, рисуем и включаем в оборот. Таким образом были созданы несколько таблиц для хранения разного рода оборудования. Но вот пришёл час Х, когда стало необходимо добавить ещё пару таблиц для нового оборудования и при этом все (включая старые) должны входить в определённую группу. Это значит, что ссылки на разные таблицы должны быть включены в кросс-таблицу между группой и всеми пятью видами оборудования, то есть для каждого своё поля с констреинтом на соответствующую таблицу. А если ещё одно добавится, менять структуру. И обработку нужно делать в зависимости от того, какие поля заполнены. Вот и возникает первая проблема, как разные таблицы обобщить, что бы с ними одинаково можно было работать и не менять структуру, если добавляется ещё одна. Замечательная мысль, создаём отдельную табличку, которая призвана хранить абстрактное понятие оборудование с указанием типа, а тогда остальные таблички ссылаются по внешнему ключу на своего родителя. На этой радостной волне мы заливаем в созданную табличку записи из одной и пытаемся тоже сделать для другой. Но что-то пошло не так, сработало ограничение первичного ключа, к чему бы это? А к тому, что на заре бурной молодости системы для каждой табличке были свои сиквенсы. Конечно, со временем это безобразие поправили, но старые ключи всё равно остались. Более того, они корнями проросли по внешним ключам с другими таблицам. Фиксируем вторую проблему, связанную со сквозной нумерацией всех справочников.
На этом мучения с таблицами оборудования не закончились. Потому как по последним требованиям оборудование имеет различные характеристики, более того их число переменно, а одна характеристика может иметь несколько значений. А значит появляется третья проблема, а именно иметь возможность хранить переменное число характеристик какой-то записи.
Вроде как с этим справились, но заказчик не дремлет, у него всегда есть наготове что-нибудь новенькое. И вот приходит требование — все справочники историчные (например, название продукта было одним, а потом его переименовали, и по документам на разные даты нужно показывать актуальное название). Само по себе требование нормальное, ничего не скажешь. А если ещё в отделе разработки есть кто-то, кто проходит испытательный срок, так вообще всё в шоколаде, можно и не заметить, что это проблема. Однако проходит всё, как обычно — с полным авралом, а тут ещё этим нужно заниматься. Создаём таблички, дублирующие таблицы соответствующих справочников для того, чтобы там хранить хронологию изменений справочника. Но, создавая эти таблицы, мы заодно создаём себе четвёртую проблему, теперь в коде нужно в зависимости от даты обращаться то ли к основной таблице, то ли к исторической.
Ну мы же молодцы, мы и это победили))) Теперь, попивая чай из своей кружки, начинаешь дискутировать с другими коллегами на тему, что им приходилось решать, и понимаешь, что список проблем пополняется. В обсуждении стоит вопрос как хранить версии одной и той же записи. Хочу оговорится, что версия, это не то, что укладывается в таблицу историчности. В историчности понятно, до такого-то числа было одно название, а начиная с этой даты актуальным становится другое. А в версионности подразумевается, что запись была сначала сохранена с ошибкой, а через несколько часов это поняли и её изменили, и нужно знать все состояния этой записи. Во-первых, здесь должно быть дробление на время, не только сутки. А во-вторых, такие следы нужны в случае разборок. Например, заполняли прайс, ошиблись, успели товар продать по такой цене, а потом поправили, но в конце дня случился дебаланс. Однако решение для таких ситуаций меня лично напрягло, предлагалась все такие изменения хранить в самой таблице. Не буду устраивать холивар на сколько так правильно, но для меня точно обозначилась пятая проблема, а именно хранение изменений записей.
Итак, обобщая вышесказанное мы видим перед собой пять увесистых грабель. Теперь наша задача определить стратегию, позволяющую обойти и не наступить на них.
Сколько можно наступать на одни и те же грабли, давайте скинимся и купим новые
Начиная проектировать систему с нуля, никто не может предугадать путь её развития, а значит не сможет сказать на каком уровне придётся обобщать, как в описанном примере с оборудованием. Поэтому имеет смысл сразу задать абстрактную сущность, распространяемую на все таблицы НСИ. Таким образом все справочники будут иметь прообраз в едином справочнике с разделением на типы.
Таблица nsi_type системная, заполняется по мере добавления новых справочников. Таблица nsi хранит ключи и системные поля. Заодно создаём собственный сиквенс и тем самым закрываем вторую проблему.
Так же создадим пакет, содержащий основную функциональность по работе со справочниками и будем его постепенно заполнять.
Здесь пока представлены вспомогательные функции для обеспечения необходимой инфраструктуры.
Итак стоит задача создать справочник организаций, куда же без него, любое предприятие контактирует со сторонними организациями — это и поставщики, и клиенты, и партнёры. Сразу добавим соответствующий тип в таблицу nsi_type и определим таблицу nsi_organization.
Теперь, пока не поздно, нужно вспомнить про грабли с номером «пять». Если начнём добавлять записи в созданную таблицу организаций, то это событие нужно где-то фиксировать.
А так же в пакет добавлена функция логирования.
Таким образом разрешена пятая проблема, теперь для любой записи НСИ можно посмотреть, что с ней происходило.
Пытаемся добавить туда организацию.
Конечно мы нарвёмся на констраинт nsi_organization_nsi_fk. Поэтому все справочные таблицы должны быть снабжены необходимой доработкой триггеров.
А теперь добавление записи пройдёт без проблем (ключ уже указывать не надо). Заодно в таблице nsi появится первая запись, а так же в таблице логирования будет зафиксировано это событие.
Но пока можно заметить только дополнительные расходы на создание таблицы какого-то справочника, а никак не преимущество единого подхода. Тогда вспомним про четвёртую проблему — нам необходимо хранить историчность данных в таблицах справочника, а так же извлекать актуальное состояние на заданную дату.
В пакет pkg_nsi добавим функцию сохранения записи в историческую таблицу. Хранить запись будем в формате json, поэтому в пакете так же появится возможность получить json для переданного запроса.
Таким образом любой справочник может воспользоваться этой функцией, чтобы увести в историю текущее состояние. Уже хорошо, хоть что-то полезное появилось от такого обобщения))) Для извлечения актуального состояния справочника добавим в пакет соответствующую pipeline-функцию. Записи справочника будут возвращаться в тип, расширенный системными полями.
Применим к нашей таблице nsi_organization.
Функция nsi_organization_table очень полезна, потому как удовлетворяет нашим требованиям и окончательно уводит проблему номер четыре в прошлое.
Идём дальше. Раз у нас появилось такое преимущество с введением единого подхода для работы со всеми справочниками, то воспользуемся им и для хранения дополнительной информации, которой может быть наделена любая запись из любого справочника. Такое механизм уже давно существует, называется EAV-pattern, его и реализуем.
Очень часто в контексте документов имена собственные необходимо использовать в каком-то падеже, поэтому создадим новую таблицу с физическими лицами и по аналогии с организациями добавим обработку триггеров и тип для выборки.
Осталось дополнить пакет pkg_nsi обработкой этой таблицы.
И добавим кого-нибудь в эту таблицу.
Создадим атрибуты для самого востребованного родительного падежа.
В пакете pkg_nsi добавим функции для работы с атрибутами справочников.
Теперь присвоим соответствующие атрибуты.
Таким образом мы победим третью проблему.
Кроме таблиц справочников в системе НСИ также важны отношение между ними. Так, например крупные организации включают в себя различные подразделения, филиалы, отделы и т.п., которые можно выстроить в древовидную структуру. Для начала заведём в нашей системе ещё несколько организаций, которые будут в подчинении у уже существующей «Рога и копыта».
Теперь нужно показать в каком отношении эти организации находятся между собой. Для этого необходима таблица с древовидной структурой и указанием периода действия, потому как всё подвержено изменением во времени и нужно это учитывать.
Конечно, следует расширить возможности пакета pkg_nsi, чтобы можно было настраивать структуру для различных таблиц.
После появления такого инструмента можно смело выстраивать отношения между организациями.
Так как справочники отделены от структуры, то каждый раз обращаться к организациям с учётом их отношений становится грамозко, поэтому немного упростим себе жизнь.
То, что мы строим дерево это замечательно, но все узлы этого дерева относятся к одной сущности, а наша задача реализовать построение отношения между разными сущностями. Это тоже не проблема, потому как структура не завязывается на какой-то определённый справочник, а работает в целом на всей системе НСИ. Для примера построим классификатор для должностей государственной гражданской службы и классификатор для должностей муниципалитета.
Осталось только заполнить и собрать необходимые классификаторы.
Ой, как это не читабельно!
Следует не забывать, что кроме отношения включения (в том числе и древовидного), существует отношение пересечения, то есть кросс-таблиц. Здесь добавляется дополнительное условие проверки пересечения по времени.
Всё, теперь мы с уверенностью можем сказать, что закрыли первую проблему.
Конечно можно много чего пытаться прикрутить к этой системе, но я думаю, что поставленную задачу в начале статьи я выполнила, а остальное уже можно рассмотреть в процессе дискуссии.
Материал подготавливался на версии Oracle 18c, хотя нативное поддержание формата json уже присутствует в версии 12. Здесь ссылка с архивом скриптов.