Объекты нси что это
Анатомия системы НСИ
Данная статья основана на реальных событиях,
и все проблемы в ней не вымышленные. (С)
В начале хотелось бы отметить, что статья не призвана показать изобретение велосипеда, потому как многие приёмы уже давно существуют в культуре разработки баз данных. Однако обобщить, проанализировать проблемы, которые они могут решить и показать, как с ними можно работать. А проблем хватает несмотря на то, что нормативно-справочная информация (НСИ) не относится к бизнес-логике, а скорее находится в обслуживании у неё. Стандартный процесс по рисованию очередной таблички для хранения справочника очень скоро начинает обрастать костылями или трудоёмкими переделками.
Вот и в моём случае оказалась та же картина — система стоит на продуктиве более десяти лет, строилась по тому же принципу, если что нужно, рисуем и включаем в оборот. Таким образом были созданы несколько таблиц для хранения разного рода оборудования. Но вот пришёл час Х, когда стало необходимо добавить ещё пару таблиц для нового оборудования и при этом все (включая старые) должны входить в определённую группу. Это значит, что ссылки на разные таблицы должны быть включены в кросс-таблицу между группой и всеми пятью видами оборудования, то есть для каждого своё поля с констреинтом на соответствующую таблицу. А если ещё одно добавится, менять структуру. И обработку нужно делать в зависимости от того, какие поля заполнены. Вот и возникает первая проблема, как разные таблицы обобщить, что бы с ними одинаково можно было работать и не менять структуру, если добавляется ещё одна. Замечательная мысль, создаём отдельную табличку, которая призвана хранить абстрактное понятие оборудование с указанием типа, а тогда остальные таблички ссылаются по внешнему ключу на своего родителя. На этой радостной волне мы заливаем в созданную табличку записи из одной и пытаемся тоже сделать для другой. Но что-то пошло не так, сработало ограничение первичного ключа, к чему бы это? А к тому, что на заре бурной молодости системы для каждой табличке были свои сиквенсы. Конечно, со временем это безобразие поправили, но старые ключи всё равно остались. Более того, они корнями проросли по внешним ключам с другими таблицам. Фиксируем вторую проблему, связанную со сквозной нумерацией всех справочников.
На этом мучения с таблицами оборудования не закончились. Потому как по последним требованиям оборудование имеет различные характеристики, более того их число переменно, а одна характеристика может иметь несколько значений. А значит появляется третья проблема, а именно иметь возможность хранить переменное число характеристик какой-то записи.
Вроде как с этим справились, но заказчик не дремлет, у него всегда есть наготове что-нибудь новенькое. И вот приходит требование — все справочники историчные (например, название продукта было одним, а потом его переименовали, и по документам на разные даты нужно показывать актуальное название). Само по себе требование нормальное, ничего не скажешь. А если ещё в отделе разработки есть кто-то, кто проходит испытательный срок, так вообще всё в шоколаде, можно и не заметить, что это проблема. Однако проходит всё, как обычно — с полным авралом, а тут ещё этим нужно заниматься. Создаём таблички, дублирующие таблицы соответствующих справочников для того, чтобы там хранить хронологию изменений справочника. Но, создавая эти таблицы, мы заодно создаём себе четвёртую проблему, теперь в коде нужно в зависимости от даты обращаться то ли к основной таблице, то ли к исторической.
Ну мы же молодцы, мы и это победили))) Теперь, попивая чай из своей кружки, начинаешь дискутировать с другими коллегами на тему, что им приходилось решать, и понимаешь, что список проблем пополняется. В обсуждении стоит вопрос как хранить версии одной и той же записи. Хочу оговорится, что версия, это не то, что укладывается в таблицу историчности. В историчности понятно, до такого-то числа было одно название, а начиная с этой даты актуальным становится другое. А в версионности подразумевается, что запись была сначала сохранена с ошибкой, а через несколько часов это поняли и её изменили, и нужно знать все состояния этой записи. Во-первых, здесь должно быть дробление на время, не только сутки. А во-вторых, такие следы нужны в случае разборок. Например, заполняли прайс, ошиблись, успели товар продать по такой цене, а потом поправили, но в конце дня случился дебаланс. Однако решение для таких ситуаций меня лично напрягло, предлагалась все такие изменения хранить в самой таблице. Не буду устраивать холивар на сколько так правильно, но для меня точно обозначилась пятая проблема, а именно хранение изменений записей.
Итак, обобщая вышесказанное мы видим перед собой пять увесистых грабель. Теперь наша задача определить стратегию, позволяющую обойти и не наступить на них.
Сколько можно наступать на одни и те же грабли, давайте скинимся и купим новые
Начиная проектировать систему с нуля, никто не может предугадать путь её развития, а значит не сможет сказать на каком уровне придётся обобщать, как в описанном примере с оборудованием. Поэтому имеет смысл сразу задать абстрактную сущность, распространяемую на все таблицы НСИ. Таким образом все справочники будут иметь прообраз в едином справочнике с разделением на типы.
Таблица 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. Здесь ссылка с архивом скриптов.
Как не сойти с ума в разработке систем управления нормативно-справочной информацией. Из истории наших проектов
За иллюстрации отдельное спасибо замечательному художнику Васе Ложкину.
Случай первый. Как загрузить вагон и маленькую тележку
Создание единой системы управления контрагентами для крупной производственной компании со множеством заводов по всей стране и за рубежом.
Цель проекта – создать единую базу контрагентов для всех подразделений. Ведение контрагентов осуществляется на основе заявок, которым присваиваются приоритеты от низкого до срочного. Срочная заявка должна быть обработана экспертами НСИ за 2 часа вне зависимости от разницы во времени между подразделениями.
Живая история
Проект был согласован со всеми заинтересованными сторонами (в этом нас убедило руководство заказчика) и разработан в заданные сроки в соответствии с утвержденными требованиями.
Презентация созданной системы управления контрагентами проходила гладко, пока не встала одна видная женщина – руководитель сибирского филиала – и весьма энергично, с использованием русских идиоматических выражений, довела до сведения собравшихся, что когда к ней приходит железнодорожный вагон под погрузку готовой продукции, она не будет ждать 2 часа, пока кто-то там в Москве рассмотрит заявку на добавление покупателя.
Она не собирается оплачивать простой вагона, пока происходит утверждение заявки, а заведет данные покупателя в систему как есть и отгрузит товар, а московские товарищи могут разбираться потом с информацией о покупателе сколько угодно.
Это заявление было поддержано еще несколькими руководителями филиалов компании, что практически полностью разрушило централизованную методологию ведения единого справочника контрагентов на основе заявок.
В итоге проект был видоизменен таким образом, чтобы все филиалы имели доступ к базе данных контрагентов и могли вносить в нее изменения напрямую, но при этом выполнялся автоматический поиск схожих записей, которые отображались сотруднику филиала, и он принимал решение о необходимости корректировки данных, которые позднее проверялись экспертной группой.
Что мы запомнили: не доверяйте словам руководителей и ответственных лиц со стороны заказчика, что все решения согласованы, все в теме и возражений нет. Выявляйте все заинтересованные стороны проекта и старайтесь выяснить требования к системе и ограничения непосредственно у них.
Случай второй. Как хотим, так и используем
Создание централизованной системы управления клиентами для страховой компании с большим числом филиалов и агентов по всей стране.
Цель проекта – создание сводной клиентской базы для использования в аналитических приложениях. База данных собиралась со всех филиалов, данные выверялись, дополнялись, дублирующиеся объекты устранялись. Количество клиентов в одном филиале – от тысячи до нескольких миллионов. При этом, пересечений по клиентам между филиалами практически нет.
После создания сводной клиентской базы она должна была периодически сравниваться с базами данных филиалов для выявления различий, их последующей обработки и загрузки изменений в сводную базу. Прирост клиентской базы между сверками составлял несколько тысяч записей.
Для выполнения сверки был создан специальный модуль, архитектура которого была спроектирована исходя из того, что он должен быстро сравнивать большое количество записей и формировать относительно небольшой XML-файл с изменениями для загрузки. Формат XML был выбран заказчиком.
После внедрения системы мы получили от заказчика сообщение, что модуль сверки работает крайне медленно и формирует для загрузки в сводную базу файл огромного размера, который они ничем не могут открыть.
Что же выяснилось? Заказчик производил начальную загрузку данных из филиалов в сводный справочник. Экспертам эта работа показалась нудной и трудоемкой, и они просто взяли модуль сверки и подсунули ему полные данные нового филиала, которые еще не разу не загружались в сводный справочник.
Модуль сверки, который в соответствии с ТЗ должен был формировать сведения о различиях в количестве нескольких тысяч записей, получил на вход два миллиона записей, и все они в сводном справочнике отсутствовали.
В результате, за несколько часов нечеловеческих усилий модуль сверки все-таки сформировал файл для загрузки, в который вошли все данные филиала. И, да, этот файл был огромным.
Модуль сверки был использован заказчиком не по назначению, но сам факт, что сверка позволяет выполнять начальную загрузку данных, заказчику понравился, и он собирался и дальше работать именно таким образом, только просил значительно ускорить работу модуля и что-нибудь сделать с создаваемым файлом, чтобы его можно было открывать в текстовом редакторе.
На наши возражения, что модуль сверки не предназначен для начальной загрузки данных, заказчик радостно показал ТЗ и спросил, а где это тут написано? Как хотим, так и используем!
В результате нам пришлось вносить изменения в архитектуру модуля сверки с целью обработки больших массивов данных и формирования выходного файла в формате CSV, так как заказчик решительно не захотел отказываться от такого удобного инструмента.
Что мы запомнили: всегда включайте в ТЗ описание ограничений – что ваша система делать не должна. Ну, или создавайте решения, которые учитывают все возможные сценарии использования, что сильно дороже.
Случай третий. Не слонёнок, а слон, да еще и должен летать
Создание централизованной системы ведения НСИ для финансовой организации.
Цель проекта — создание централизованной системы ведения справочников и классификаторов с рассылкой изменений в заинтересованные системы и базы данных. Предоставление доступа внешним системам к справочникам через веб-сервисы нашей системы.
Обычно у заказчиков среднее количество записей на один справочник составляет от нескольких сотен до нескольких тысяч. Наш недавний рекордсмен – справочник, в котором было 11 млн. записей. Но этот заказчик преподнес нам сюрприз. В его справочнике оказалось свыше 100 млн. записей. Загружали мы его больше суток, т.к. при начальной загрузке выполнялось множество проверок данных. Это не было бы большой проблемой, но заказчик потребовал, чтобы справочник загружался за несколько минут.
В результате нам пришлось сильно изменить порядок работы системы с этим справочником. Фактически, его ведение осуществляется за пределами системы, а мы только предоставляем интерфейс для его использования. Сейчас мы разрабатываем для нашей системы новые способы работы с очень большими справочниками. Надеемся, что заказчику понравится.
Что мы запомнили: в современном мире данных становится все больше, и темпы их роста постоянно увеличиваются. Система должна быть готова к высоким нагрузкам даже там, где они изначально не предполагались. Мы постоянно развиваем наше решение с учетом современных тенденций роста данных и повышения требований к скорости их обработки.
Случай четвертый. Сложный фокус с файлами
Создание централизованной системы ведения НСИ в крупном банке.
Цель проекта – создание централизованной системы ведения справочников и классификаторов с рассылкой изменений в заинтересованные системы и базы данных. Особенность проекта – весьма непростые процессы распространения изменений, затрагивающие множество систем.
Поскольку в дальнейшем мне придется упомянуть наше собственное решение для управления НСИ, позволю себе небольшое лирическое отступление.
Задачи наших заказчиков во многом схожи, и мы решили снизить затраты на программные разработки и сократить время проектов, создав собственную универсальную платформу для ведения НСИ и основных данных (Reference Data Management & Master Data Management). Система существует уже более 10 лет, и все эти годы мы в ЛАНИТ ее активно развиваем.
NORMA поддерживает централизованное и распределенное ведение НСИ. Все данные и метаинформация ведутся с учетом истории изменений и система позволяет просматривать и изменять весь массив НСИ на произвольную дату в прошлом или будущем. Для справочников могут быть настроены процессы согласования и утверждения изменений. В состав системы входит выделенный сервер распространения изменений, который позволяет взаимодействовать с внешними системам через различные интерфейсы и создавать достаточно сложные интеграционные бизнес-процессы (этакий мини BizTalk Server). У нас есть пакеты экспорта/импорта данных, которые умеют выгружать/загружать данные справочников в базы данных и файлы различных форматов. Поддерживается ведение перекодировочных таблиц для внешних систем.
NORMA включает графический построитель запросов и дизайнер отчетов. Кроме работы с собственными справочниками, система позволяет через свой интерфейс просматривать и изменять справочники, которые находятся во внешних, по отношению к ней, базах данных, а также использовать эти справочники в построителе запросов и пакетах экспорта/импорта.
В ответ на возникновение различных событий в системе, например, события внесения изменений в справочник, могут запускаться подключаемые программные компоненты, написанные на C#, которые могут как проверять данные, так и взаимодействовать с внешними системами и, собственно, самой системой NORMA. Практически все функции системы доступны через веб-сервисы.
Система может масштабироваться как вертикально, путем увеличения мощности сервера приложений и базы данных, так и горизонтально за счет использования многоузлового сервера приложений, в котором каждый узел или группа узлов отвечает за выполнение отдельной функции. Для хранения НСИ система может использовать Microsoft SQL Server, Oracle или PostgreSQL.
Обычно при создании справочников и процессов распространения изменений заказчик консультируется с нашими аналитиками, какой инструмент или набор инструментов, предоставляемых системой, лучше использовать для конкретной задачи. В этот раз заказчик сказал, что будет создавать справочники и процессы самостоятельно.
Через некоторое время к нам обратился один из специалистов заказчика с жалобой, что у него не загружаются данные в систему. В подтверждение нам прислали пакет импорта данных, исходный файл с загружаемыми записями и сообщение об ошибке, в котором говорилось, что загружаемые данные имеют неверный тип.
Начинаем разбираться. Крутим пакет и так, и этак, пробуем разные варианты представления исходных данных, но ошибку повторить не можем. Обращаемся к заказчику с вопросами, может быть, у пакета импорта есть подключенные программные компоненты, может быть на справочник наложены какие-то дополнительные ограничения, может быть данные не от этого процесса? На все получаем ответ — ничего такого нет, все должно легко загружаться и раньше работало.
Оказывается, этот пакет импорта был только вершина айсберга. Если кратко и сильно упрощенно, то происходило следующее. Процедура импорта загружала правильные данные из исходного файла в справочник. Исходный файл удалялся. Затем наша система выполняла распространение изменений в несколько баз данных, в одной из которых производилось сравнение собственных данных с нашими изменениями и формировался файл с расхождениями, который возвращался в нашу систему для загрузки. Причем для загрузки этого файла заказчик использовал ту же процедуру импорта, что и для исходного файла. И вот именно в этом файле, сформированном внешней системой, были данные неверного типа. Очевидно, что при анализе исходного файла мы никаких ошибок найти не могли, а про второй файл и развесистый процесс распространения изменений нам ничего не сообщили.
Что мы запомнили: Всегда проверяйте полученную информацию даже если вам говорят, что у нас тут маленькая проблемка, и она вот именно в этом месте, мамой клянусь! Анализируйте проблему в контексте.
Случай пятый. Я привыкаю к несовпадениям
Создание системы управления НСИ в производственной компании.
Цель проекта – создание системы ведения НСИ в управляющей компании со множеством филиалов, заводов и конструкторских подразделений.
В этот раз мы дальше нескольких презентаций не продвинулись. Наша система NORMA очень понравилась технарям. Она закрывала все их существующие проблемы. Дальше пришла очередь показывать систему руководству, и вот тут произошел облом десятилетия. Высокий руководитель посмотрел, послушал и сказал: «Мы тут все работаем на продуктах Apple, у них есть определенный стиль, а ваша система в этот стиль не вписывается. Мы ее даже рассматривать не будем».
Что мы запомнили: заказчики бывают разные, и некоторым вы просто не подходите. Стиль другой.
Подобные истории случаются в различных проектах. Что интересного было в вашей проектной жизни? Что стало для вас неожиданным уроком? Делитесь в комментариях.
НСИ в 1С. Что это?
Наш бурный век, когда развитие идет семимильными шагами, на предприятиях остро стоит вопрос о создании информационных систем. Таких, которые могли бы затрагивать различные направления деятельности:
Можно создать ряд систем, которые будут независимы друг от друга и отвечать за каждое из направлений. Однако, в различные моменты деятельности у собственников предприятия возникает потребность увидеть всё происходящее целиком. Соответственно, если на предприятии применяются различные системы, то не представляется возможным сопоставить и сравнить данные. Потому что в каждой системе они могут быть поименованы различными способами, что вызовет дублирование, противоречивость или некорректность данных при интеграции.
Основная причина возможных несоответствий — отсутствие единообразного подхода при создании мастер-данных. То есть таких данных, которые неизменны и представляют собой основу структурных элементов всей компании.
Соответственно, на предприятиях необходимо создавать такую нормативно-справочную систему, которая могла бы грамотно и своевременно идентифицировать источник данных, оперировать сведениями корректно и логично.
Содержание:
1. НСИ: преимущества и результаты
Говоря простыми словами, нормативно-справочная информация (НСИ) представляет собой ведение и поддержку разнообразных справочников, обеспечивающих ввод данных в том информационном пространстве, в котором ведется работа. При этом данные такой системы являются условно-постоянными.
Для того чтобы эффективно управлять любым предприятием, требуется создание общего информационного пространства. Это необходимо, чтобы любое перемещение информации между различными участками было единообразным и опиралось на единую базу. Соответственно, требуется грамотная интеграция всех существующих систем. Для этого необходимо централизованное управление нормативно-справочной информацией.
Соответственно, происходит централизация ответственности за качество самой НСИ.
В результате внедрения централизованной системы управления НСИ собственники компании получают:
Всё это в целом упрощает задачу подготовки любой отчётности, как бухгалтерской, так и управленческой. В том числе позволяет оптимизировать материальные затраты, повысить качество принимаемых управленцами решений, и в целом дает возможность улучшения качества консолидации учётных данных.
2. Справочники в 1С
В 1С в разделе НСИ содержатся справочники, которые необходимы для работы на большинстве предприятий. При этом эти справочники можно редактировать, а также добавлять другую информацию, необходимую для корректной работы по определенному виду деятельности компании.
Все эти справочники номинально можно разделить на основные и прочие.
К основным относятся такие справочники, которые необходимы при оформлении документации по хозяйственной деятельности. А к прочим можно отнести те, которые облегчают поиск или ввод необходимых сведений.
Соответственно, в зависимости от вида деятельности, к основным справочником могут относиться информация о структуре самого предприятия и номенклатуре. А к прочим можно отнести различные классификаторы, в том числе содержащие в себе информацию общероссийских классификаторов. Так, например, сюда относятся справочники, содержащие в себе сведения о банках, адресный классификатор, классификатор стран и видов контактных данных.
Если говорить об основных справочниках, то, например, для торгового предприятия это могут быть:
Для производства информационная структура будет более сложной, рассмотрим её позже.
В фирме, оказывающей услуги, структура может быть более простой и зависит также от количества видов оказываемых услуг. Допустим, это может быть информация о самой организации, контрагентах и услугах.
При этом, в одних решениях НСИ вынесена в отдельный одноименный раздел меню, в других же представлена Справочниками, включенными в разделы «Настройка», «Компания» или выделенные отдельным пунктом меню «Справочники».
3. Об НСИ простым языком
И так, в любой информационной системе есть объекты и их свойства. С объектами происходят некие события. Наличие в названии слова «справочная» показывает то, что каждый объект имеет определенные свойства, по которым можно его идентифицировать.
«Нормативная» указывает на то, что все строится по определенным нормам и правилам. Это ярко видно на таком документе, как Спецификация. В нем отражены объекты, их свойства и количество. По аналогии с кулинарным рецептом. Если хочешь, чтобы получилось именно то блюдо, необходимо использовать определенные ингредиенты, в нужном количестве при конкретных способах приготовления.
Так, например, сущности представлены в 1С: ERP.
Выделен отдельный раздел в меню «НСИ и администрирование», в котором, в числе прочих, представлено 2 блока:
В последнем представлена нормативно-справочная информация для отдельных направлений: кадры, казначейство, зарплата, налоги и т.п.
При этом отдельно НСИ представлена и в некоторых разделах. Например, выделено в меню «Производство», «Закупки», и «Продажи». Что вполне логично.
Важно понимать архитектуру данных, которые создают логику системы. Любое нарушение при создании новых данных в НСИ приведет к проблемам. В системе имеется огромное количество различных предустановленных реквизитов. Вся корпоративная информационная система базируется на архитектуре и полагается на эти данные. Есть мастер-данные, с ними происходят некоторые события, в результате чего происходит запись в той или иной форме в базу данных. На основании той или иной формы, тем или иным способом строятся различные отчёты.
4. Что такое номенклатура
Во всех НСИ, связанных с выполнением работ, оказанием услуг, производством и торговлей присутствует справочник «Номенклатура». Если открыть данный справочник, то справа будут представлены виды номенклатуры, а слева сами объекты.
Так, например, в 1С: Управление нашей фирмой выделены виды:
А внутри каждого вида представлены объекты, включенные в группу.
В 1С: ERP будут представлены другие виды и свойства. Они зависят от видов деятельности компании. При этом система позволяет сделать отбор отдельно по видам или свойствам.
То есть, виды номенклатуры — это некие разрезы, которые несут в себе определенные характеристики. И объединяют их по каким-либо признакам. Признаков может быть много, в частности, по отношению к производственным процессам.
5. Справочники в 1С: ERP
Основной справочник – это сведения об Организации.
Они включают в себя основную информацию:
А также иную информацию: кассы предприятия, лицензии, лицевые счета сотрудников и пр.
Вся введенная информация впоследствии выводится в соответствующих документах.
Настройка производится в разделе «Настройка НСИ и разделов». В нем необходимо поставить соответствующую галочку, если в системе ведется учет нескольких организаций. Здесь же можно настроить график работы, используемую валюту, отметить обособленные подразделения в отдельном банке. А также выбрать раздельные операции закупок и продаж для управленческого и регламентного учета.
В Справочнике «Структура предприятия» отражены отделы фирмы, склады, службы в разрезах направлений.
Справочники «Кассы ККМ» и «Кассы предприятия» содержат данные о:
Справочник «Физические лица» по аналогии со справочником «Организации» содержит полную информацию о любых физлицах так или иначе взаимосвязанных с компанией. Это могут быть:
Справочник позволяет группировать массивы по различным категориям. При этом есть возможность внести сведения:
Справочник «Склады и хранение» содержит подробные сведения о местах хранения товаров и продукции производства. Группировка происходит по направлениям. Представлена информация о:
6. Виды и состав номенклатуры
Справочник «Номенклатура» хранит в себе информацию о продукции, материалах и полуфабрикатах, покупных товарах и оказываемых услугах.
Есть возможность настроить классификаторы номенклатуры:
Например, для производственных предприятий в группе комплектующих будут такие виды номенклатуры:
Раскрывая любой вид номенклатуры, можно увидеть основные сведения о нем. И при необходимости скорректировать.
При создании нового вида следует указать группу доступа.
7. Что входит в понятие номенклатуры?
Раскрыв конкретный объект, предстает табличная форма. На вкладке «Карточка» отображаются все реквизиты:
На вкладке «Реквизиты» можно ввести (скорректировать) указанные выше данные.
Единицы измерения могут быть разными для отражения как единиц хранения или единиц для отчетов. Здесь же указываются группы регламентированного и финансового учета, проставляется НДС и т.п.
При выделении материала (объекта), имеющего определенные отличительные особенности, эти свойства можно увидеть здесь же, непосредственно под видами.
Соответственно, можно выбрать материалы по определенным свойствам.
В этом же окне можно в строке поиска ввести необходимый объект и перемещая курсов по видам номенклатуры значительно быстрее найти искомый элемент. Это удобно при больших количествах наименований.
Также представлена возможность поиска по штрих-коду и фильтрация по товарам другого качества и номенклатуре с аналогичными свойствами.
Рассмотрев материалы и комплектующие, следует изучить готовую продукцию.
8. Спецификация как рецепт изготовления изделия
Выше приводилось сравнение спецификации и рецепта какого-либо блюда. Предлагаем рассмотреть на простом примере.
Допустим, предприятие занимается изготовлением парников. Данный процесс включает в себя изготовление необходимых деталей и их сборку. В спецификацию заносятся этапы работы, расходные материалы и их количество, требуемое для изготовления парника, а также трудозатраты.
Для того, чтобы посмотреть любую спецификацию, следует перейти в раздел меню «Производство» и в категории «Нормативно-справочная информация» выбрать «Ресурсные спецификации». В открывшемся списке кликнуть по нужному документу.
Форма «Спецификация» имеет несколько закладок. На основной указывается наименование и тип изделия, номенклатура, количество, единицы измерения, характеристики и процент брака.
На вкладке «Материалы и работы» указываются материалы, необходимые для изготовления. В рассматриваемом примере:
Для каждого наименования указывается количество, единицы измерения, на каком этапе работ используется, способ получения материала и статья калькуляции.
Так, например, для этапа «Установка дверей» требуется способ получения материала произвести по спецификации «Каркас двери для парника». При этом отдельных характеристик для каждого из материалов не предусмотрено.
По спецификации «Каркас двери для парника» также выделены этапы работы и материалы для изготовления, включая трудозатраты.
На следующей вкладке ресурсной спецификации «Трудозатраты» представлена информация о количестве часов различных видов работ для изготовления парника:
Указаны статьи калькуляции и на каких этапах какой вид работ используется.
На следующей закладке представлен процесс производства, включающий очередность этапов и подразделения, в которых выполняется работа. Дополнительно указывается распределение затрат на изделия и ответственное лицо.
9. Дерево спецификаций и их сравнение
Просмотреть основные моменты спецификации можно через «Дерево спецификаций».
Здесь, поэтапно раскрывая информацию можно увидеть все данные спецификации в одном окне.
Спецификация может быть основной. Тогда она будет подставляться по умолчанию при организации работ. Такие документы выделяются шрифтом в общем списке.
В списке спецификаций нажатием клавиши «Сравнить спецификации» можно перейти к форме сравнения. Для этого через кнопку «Добавить» следует выбрать необходимые спецификации и нажать «Сформировать отчет».
В появившейся таблице сразу будут видны сходства и отличия при изготовлении выбранной продукции.
Кнопка «Показать только отличия» оставит необходимые элементы.
Итак, база данных строится на отдельных объектах, обладающих определенными свойствами. Эти объекты объединены по определенным направлениям в табличные формы и списки. Они хранятся в 1С и используются при заполнении документов и оформлении определенных процессов. Существуют списки сотрудников, клиентов, поставщиков товаров или т.д.
В каждой позиции может храниться различная дополнительная информация. В справочниках может быть иерархия, то есть данные могут объединяться в группы и подгруппы. Определенное совмещение этих данных, их взаимосвязи могут быть собраны в определенные нормативы. Все это составляет нормативно-справочную информацию, которая позволяет создать единообразную систему учета на предприятии.