Что такое код поставщика. Импорт классификатора из Excel

Аксапта имеет мощный механизм создания порядковых номеров - номерные серии (number series). Номерные серии можно указать для заказов, закупок, счетов-фактур, накладных, операций, проводок и т.д. Если серия указана, то при создании нового элемента, Аксапта автоматически предложит ему порядковый номер.

В частности, можно указать номерные серии для клиентов и поставщиков. Я не рекомендую использовать номерные серии для клиентов и поставщиков. Будет гораздо удобнее, если вы будете вводить для них мнемонические коды. Оставьте незаполненными номерные серии для клиента , поставщика и номенклатуры .

Примечание: в последнем демонстрационном примере от Колумбуса именно так и сделано.

Дело в том, что практически во всех списках, фильтрах, бюджетах, журналах, заказах и закупках, Аксапта показывает только код. Иногда встречаются и код, и наименование. Но это скорее исключение из правила.

Примечание: Вы всегда можете получить полное наименование, просто "повисев" мышкой над кодом. Однако, просматривать список, в котором содержатся только числовые коды, все равно неудобно.

Если код является мнемоническим (значимым и читаемым), то нет необходимости добавлять колонку с наименованием во все формы. Кроме того, мнемонические коды оказываются удобными для операторов.

Сравните

Это демонстрационный пример международной версии Аксапты. Обратите внимание на колонку "Код клиента". Также обратите внимание, что наименование клиента по текущему заказу можно увидеть в заголовке окна и в выпадающей подсказке (выпадающая подсказка появляется, если "повисеть" мышкой над полем).

Также обратите внимание, что внизу Аксапта показывает наименование номенклатуры. Это и есть то самое исключение из правила. Дело в том, что наименование в заказе можно исправить вручную, наименование может быть составным (наименование + конфигурация), наименование может быть выбрано специального списка, созданного для каждого клиента. Поэтому наименование номенклатуры и показывается в форме.

Ниже последний демонстрационный пример Колумбуса.

Обратите внимание, что список клиентов намного информативнее.

Лирическое отступление

Почему же были сделаны номерные серии, если использование числовых кодов для номенклатуры и контрагентов так неудобно?

Здесь я могу только предполагать. Мои предположения следующие - это просто привычка западных пользователей. Дело в том, что на западе автоматизироваться начали гораздо раньше, чем здесь. Тогда компьютеры были слабее. Числовое кодирование всего и вся тогда была единственным средством, доступным для программиста. Позже, очень многие западные программы использовали числовую кодировку. Например, в Sun"е список клиентов и поставщиков это просто субсчета с числовыми кодами.

Видимо, для того чтобы Аксапта была не хуже других, в ней оставили возможность автонумерации контрагентов. Тем более что особых программистских усилий для того, чтобы привязать номерную серию, в Аксапте не требуется.

Вывод

Не стоит использовать автонумерацию для клиентов, поставщиков и номенклатуры. Для них лучше вручную устанавливать мнемонические (значимые) коды.

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

Любому специалисту, по роду своей деятельности так или иначе связанному с проектированием реляционных баз данных, полезно понимать и уметь осуществить нормализацию отношений. И этим постом хотелось бы начать небольшую серию публикаций, посвящённых нормальным формам, имеющую целью дать тем читателям Хабрахабра, которые по различным обстоятельствам ещё не освоили эту тему, возможность легко заполнить этот пробел в знаниях.

Статья не имеет своей целью подробное и точное изложение принципов нормализациии, поскольку это, очевидно, невозможно в рамках блога в силу больших объёмов информации, необходимых для публикации при таком подходе. Кроме этого, для такой цели существует большое количество литературы, написанной прекрасными специалистами. Моя же задача, как я считаю, заключается в том, чтобы популярно продемонстрировать и объяснить основные принципы.

Используемые термины

Атрибут - свойство некоторой сущности. Часто называется полем таблицы.
Домен атрибута - множество допустимых значений, которые может принимать атрибут.
Кортеж - конечное множество взаимосвязанных допустимых значений атрибутов, которые вместе описывают некоторую сущность (строка таблицы).
Отношение - конечное множество кортежей (таблица).
Схема отношения - конечное множество атрибутов, определяющих некоторую сущность. Иными словами, это структура таблицы, состоящей из конкретного набора полей.
Проекция - отношение, полученное из заданного путём удаления и (или) перестановки некоторых атрибутов.
Функциональная зависимость между атрибутами (множествами атрибутов) X и Y означает, что для любого допустимого набора кортежей в данном отношении: если два кортежа совпадают по значению X, то они совпадают по значению Y. Например, если значение атрибута «Название компании» - Canonical Ltd, то значением атрибута «Штаб-квартира» в таком кортеже всегда будет Millbank Tower, London, United Kingdom. Обозначение: {X} -> {Y}.

Первая нормальная форма

Отношение находится в первой нормальной форме (сокращённо 1НФ), если все его атрибуты атомарны, то есть если ни один из его атрибутов нельзя разделить на более простые атрибуты, которые соответствуют каким-то другим свойствам описываемой сущности.

Будем называть исходное отношение основным, а значение неатомарного атрибута - подчинённым.

Для того, чтобы нормализовать исходное отношение, атрибуты которого неатомарны, необходимо объединить схемы основного и подчинённого отношений. Кроме того, если, например, таблица, соответствующая ненормализованному отношению уже содержится в БД и заполнена информацией, задача усложняется тем, что значение неатомарного атрибута может в свою очередь содержать несколько кортежей.

Следует пояснить сказанное на примере. Рассмотрим отношение, имеющее атрибуты «Код сотрудника», «ФИО», «Должность», «Проекты». Очевидно, что один сотрудник может работать над несколькими проектами. Предположим, что проект описывается идентификатором, названием и датой сдачи.
Легко заметить, что не все атрибуты этого отношения атомарны (неделимы). В частности, атрибут «Проекты» можно разделить на три более простых атрибута: «Код проекта», «Название», «Дата сдачи», а значение этого атрибута для сотрудника Иван Иванович Иванов содержит несколько кортежей - информацию о трёх проектах.

Примечание: с некоторой точки зрения атрибут «ФИО» можно также считать неатомарным и в таком случае его также следует разделить на более простые, как «Фамилия», «Имя», «Отчество».

Теперь настало время рассмотреть алгоритм нормализации отношения до 1НФ.

  1. Создать новое отношение, схема которого будет получена путём слияния основной и подчинённой схем исходного отношения в одну.
  2. Для каждого кортежа исходного отношения включить в новое столько строк, сколько кортежей содержится в подчинённом отношении этого кортежа.
  3. Заполнить значения атрибутов нового отношения, соответствующих атрибутам подчинённого отношения.
  4. Заполнить строки нового отношения значениями атомарных атрибутов исходного.
Применим этот алгоритм к приведённому выше отношению. Схема нового отношения будет состоять из 6 атрибутов: «Код сотрудника», «ФИО», «Должность», «Код проекта», «Название», «Дата сдачи». Для одного единственного кортежа заданного отношения, добавим в новое три строки, по одной для каждого проекта (по количеству кортежей в подчинённом отношении). Теперь можно заполнить значения разделённых атрибутов кортежами из подчинённого отношения. Затем перенесём в каждую из этих строк значения атомарных атрибутов: «Код сотрудника», «ФИО», «Должность» (как Вы уже догадались, все три строки будут содержать одинаковые значения этих атрибутов).

Результат будет выглядеть так:

Вторая нормальная форма

Ясно, что отношение, находящееся в 1НФ, также может обладать избыточностью. Для её устранения предназначена вторая нормальная форма. Но прежде чем приступить к её описанию, сначала следует выявить недостатки первой.

Пусть исходное отношение содержит информацию о поставке некоторых товаров и их поставщиках.
Заранее известно, что в этом отношении содержатся следующие функциональные зависимости:
{ {Код поставщика, Код товара} -> { Количество},
{Код поставщика} -> {Город},
{Код поставщика} -> {Статус},
{Город} -> {Статус} }

Первичный ключ в отношении: {Код поставщика, Код товара}.

Очевидно, что отношение обладает избыточностью: оно описывает две сущности - поставку и поставщика. В связи с этим возникают следующие аномалии:

  • Аномалия вставки. В отношение нельзя добавить информацию о поставщике, который ещё не поставил ни одного товара.
  • Аномалия удаления. Если от поставщика была только одна поставка, то при удалении информации о ней будет удалена и вся информация о поставщике.
  • Аномалия обновления. Если необходимо изменить какую-либо информацию о поставщике (например, поставщик переехал в другой город), то придётся изменять значения атрибутов во всех записях о поставках от него.
Физический смысл избыточности исходного отношения заключается в том, что оно описывает не одну сущность, а две - поставку и поставщика .

Чтобы устранить эти аномалии, необходимо разбить исходное отношение на проекции:

  1. В первую следует включить первичный ключ и все неключевые атрибуты явно зависимые от него.
  2. В остальные проекции (в данном случае она одна) будут включены неключевые атрибуты, зависящие от первичного ключа неявно , вместе с той частью первичного ключа, от которой эти атрибуты зависят явно.
В итоге будут получены два отношения:
Первому отношению теперь соответствуют следующие функциональные зависимости:
{Код поставщика, Код товара} -> {Количество}
Второму отношению соответствуют:
{ {Код поставщика} -> {Город},
{Код поставщика} -> {Статус},
{Город} -> {Статус} }

Такое разбиение устранило аномалии, описанные выше: можно добавить информацию о поставщике, который ещё не поставлял товар, удалить информацию о поставке без удаления информации о поставщике, а также легко обновить информацию в случае если поставщик переехал в другой город.

Теперь можно сформулировать определение второй нормальной формы, до которого, скорее всего, читатель уже смог догадаться самостоятельно: отношение находится во второй нормальной форме (сокращённо 2НФ) тогда и только тогда, когда оно находится в первой нормальной форме и каждый его неключевой атрибут неприводимо зависим от первичного ключа.

Литература

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

Штрих-код производителя - это последовательность черных и белых полос, представляющая некоторую информацию в виде, удобном для считывания техническими средствами. Информация, содержащаяся в коде может быть напечатана в читаемом виде под кодом (расшифровка). Штриховые коды используются в торговле, складском учете, библиотечном деле, охранных системах, почтовом деле, сборочном производстве, обработка документов. В мировой практике торговли принято использование штрихкодов символики EAN для маркировки товаров. В соответствии с принятым порядком, производитель товара наносит на него штриховой код, формируемый с использованием данных о стране местонахождения производителя и кода производителя. Код производителя присваивается региональным отделением международной организации EAN International. Такой порядок регистрации позволяет исключить возможность появления двух различных товаров с одинаковыми кодами.

Существуют различные способы кодирования информации, называемые (штрихкодовыми кодировками или символиками). Различают линейные и двухмерные символики штрихкодов.

Линейными (обычными) в отличие от двухмерных называются штрихкоды, читаемые в одном направлении (по горизонтали). Наиболее распространненые линейные символики: EAN, UPC, Code39, Code128, Codabar, Interleaved 2 of 5. Линейные символики позоволяют кодировать небольшой объем информации (до 20-30 символов - обычно цифр) с помощью несложных штрихкодов, читаемых недорогими сканерами. Пример кода символики EAN-13:

Двухмерными называются символики, разработанные для кодирования большого объема информации (до нескольких страниц текста). Двухмерный штрих-код считывается при помощи специального сканера двухмерных кодов и позволяет быстро и безошибочно вводить большой объем информации. Расшифровка такого кода проводится в двух измерениях (по горизонтали и по вертикали). Datamatrix, Data Glyph, Aztec.

Штриховой код можно наносить при производстве упаковки (типографским способом) или использовать самоклеящиеся этикетки, которые печатаются с использованием специальных принтеров.

Расшифровка штрих-кода производителя

C помощью штрихового кода зашифрована информация о некоторых наиболее существенных параметрах продукции. Наиболее распространены американский универсальный товарный штрих-код UPC и Европейская система кодирования EAN. Наиболее распространенны EAN/UCC товарные номера EAN-13, EAN-8, UPC-A, UPC-E и 14-разрядный код транспортной упаковки ITF-14. Так же существует 128 разрядная система UCC/EAN-128. Согласно той или иной системе, каждому виду изделия присваивается свой номер, состоящий чаще всего из 13 цифр (EAN-13).

Возьмем, к примеру, цифровой код: 4820024700016. Первые две цифры (482) означают страну происхождения (изготовителя или продавца) продукта, следующие 4 или 5 в зависимости от длинны кода страны (0024) - предприятие-изготовитель, еще пять (70001) - наименование товара, его потребительские свойства, размеры, массу, цвет. Последняя цифра (6) контрольная, используемая для проверки правильности считывания штрихов сканером.

Штрих-код EAN-13

Для "кода товара":

1. цифра: наименование товара,

2. цифра: потребительские свойства,

3. цифра: размеры, масса,

4. цифра: ингредиенты,

5. цифра: цвет.

Пример вычисления контрольной цифры для определения подлинности товара

1. Сложить цифры, стоящие на четных местах: 8+0+2+7+0+1=18

2. Полученную сумму умножить на 3: 18x3=54

3. Сложить цифры, стоящие на нечетных местах, без контрольной цифры: 4+2+0+4+0+0=10

4. Сложить числа, указанные в пунктах 2 и 3: 54+10=64

5. Отбросить десятки: получим 4

6. Из 10 вычесть полученное в пункте 5: 10-4=6

Если полученная после расчета цифра не совпадает с контрольной цифрой в штрих-коде, это значит, что товар произведен незаконно.

Таблица соответствия штрих-кода производителя стран мира

Штрих-код производителя

Организация EAN

США и Канада

UCC (U.S.A. & Canada)

Внутренний штрих-код предприятия

GENCOD-EAN France

Болгария

Словения

Хорватия

Босния и Герцеговина

EAN-BIH (Bosnia-Herzegovina)

Германия

Distribution Code Center - DCC (Japan)

UNISCAN / EAN RUSSIA (Russian Federation)

Кыргызтан

EAN Eesti (Estonia)

Азербайджан

Узбекистан

Шри-Ланка

Филиппины

PANC (Philippines)

Беларусь

Казахстан

HKANA (Hong Kong)

Великобритания

HELLCAN - EAN HELLAS (Greece)

Македония

EAN-MAC (FYR Macedonia)

Ирландия

Бельгия, Люксембург

ICODIF/EAN Belgium.Luxembourg

Португалия

CODIPOR (Portugal)

Исландия

Южная Африка

EAN South Africa

Маврикий

EAN Maroc (Marocco)

Кот дИвуар

TUNICODE (Tunisia)

Иордания

Саудовская Аравия

EAN Saudi Arabia

Объединенные Арабские Эмираты

Финляндия

Article Numbering Centre of China - ANCC (China)

Норвегия

EAN Norge (Norway)

Israeli Bar Code Association - EAN Israel

Гватемала

Сальвадор

Гондурас

Никарагуа

Коста-Рика

Доминиканская Республика

EAN Republica Dominicana

Венесуэла

Швейцария

EAN (Schweiz, Suisse, Svizzera)

Колумбия

Аргентина

CODIGO - EAN Argentina

Парагвай

Бразилия

Camera de Comercio de la Republica de Cuba (Cuba)

Словакия

Югославия

EAN YU (Yugoslavia)

Монголия

Северная Корея

EAN DPR Korea (North Korea)

Union of Chambers of Commerce of Turkey (Turkey)

Нидерланды

EAN Nederland (Netherlands)

Южная Корея

EAN Korea (South Korea)

Камбоджа

Сингапур

SANC (Singapore)

Индонезия

Австралия

Новая Зеландия

Малайзия

Malaysian Article Numbering Council (MANC).

960-969

Великобритания (для EAN-8)

Периодические издания ISSN

Книжные издания ISBN

Музыкальные издания ISMN

Возвратные квитанции

Валютные купоны

Таблица 2. поставщики

Код поставщика

Наименование поставщика

Адрес

Телефон

Факс

Номер расчётного счёта

ООО "Теремок"

ул.Новая 12

ООО "Стоитель"

ул.Строительная 1

ООО "Лесник

ул. Лесная 9

Таблица 3. Накладная

Код накладной

Дата поставки

Код поставщика

Код материала

Количество

Сумма

Склад

Таблица 4. Склад

Таблица 5. Остаток на складе

Код остатка

Код склада

Код материала

Количество

Схема данных.

Связи это - отношение. Связь, установленная между двумя общими полями (столбцами) двух таблиц. Существуют связи с отношением «один – к – одному», «один – ко – многим» и «многие – ко – многим».

При создании связи между таблицами связываемые поля могут иметь разные имена. Однако связываемые поля должны иметь одинаковый тип данных, за исключением случая, когда поле первичного ключа является полем типа Счетчик. Поле счетчика связывается с числовым полем, если значения свойства размер поляобоих полей совпадают.

Рисунок 1. Схема данных.

5. ПРОЕКТИРОВАНИЕ ЭЛЕКТРОННЫХ ФОРМ ДЛЯ ОБРАБОТКИ ВХОДНЫХ ДОКУМЕНТОВ

Формы являются типом объектов базы данных, который обычно используется для отображения данных в базе данных. Форму можно также использовать как кнопочную форму, открывающую другие формы или отчеты базы данных, а также как пользовательское диалоговое окно для ввода данных и выполнения действий, определяемых введенными данными.

Рисунок 2. Материал

Рисунок 3. Поставщики

Рисунок 4. Накладная

Рисунок 5. Склад

Рисунок 6. Остаток на складе

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  • Адамова Н.А., Йохна В.А., Малова Т.Л., Пенкин Т.Е. Ор­ганизация и планирование производства швейной промыш­ленности, - Киев: «Высшая школа», - 1994.
  • Кожекин Г. Я., Синица Л. М. Организация производства, - Минск: ИП «Экоперспектива», - 1998.
  • Сергеев И.В. Экономика предприятия, - Москва: «Финансы и статистика», - 1997.
  • Кастеллани К. Автоматизация решения задач управления. М.: Мир, 1982. - 482 с.
  • Автоматизированные информационные технологии в экономике /Под ред. проф. Г.А.Титоренко. - М.: ЮНИТИ, 2000. - 400 с.
  • Коуров Л.В. Информационные технологии. - Мн.: Амалфея, 2000. - 192 с.
  • Дейт К. Дж. Введение в системы баз данных. - К.: Диалектика, 1998. - 784 с.