Վերլուծեք GS1 հավելվածի նույնականացուցիչները՝ օգտագործելով VintaSoft Barcode .NET SDK-ն

Բլոգի կատեգորիա՝ Barcode.NET

17.06.2025

Ժամանակակից լոգիստիկայում, մանրածախ առևտրում, բժշկության և արտադրության մեջ GS1 ստանդարտները, ներառյալ հավելվածի նույնականացուցիչները (AI), դարձել են շտրիխ կոդերում տվյալների կառուցվածքավորման ունիվերսալ գործիք: Նման կոդերի հետ արդյունավետ աշխատելու համար կարևոր է ոչ միայն կարդալ նիշերի շարքը, այլև ճիշտ վերլուծել բովանդակությունը՝ ընտրել յուրաքանչյուր հավելվածի նույնականացուցիչը և դրան կապված տվյալները: VintaSoft Barcode .NET SDK ծրագրային ապահովումը հզոր գործիք է GS1 ստանդարտին համապատասխան տեղեկատվությունը վերլուծելու և կառուցվածքավորելու համար:

Ի՞նչ են GS1 կիրառման նույնականացուցիչները և ինչու՞ դրանք վերլուծել

GS1 կիրառման նույնականացուցիչները կարճ թվային նախածանցներ են (սովորաբար 2-4 նիշ), որոնք տեղադրվում են շտրիխ կոդում՝ իրական տվյալներից առաջ: Յուրաքանչյուր նախածանց եզակիորեն նույնականացնում է տեղեկատվության տեսակը, ինչպիսիք են՝ գլոբալ առևտրային ապրանքի համարը (GTIN), արտադրության ամսաթիվը, պիտանելիության ժամկետը, քաշը, սերիական համարը և այլն: Այս նույնականացուցիչների ճիշտ մեկնաբանությունը թույլ է տալիս ավտոմատ կերպով արդյունահանել կառուցվածքային, միանշանակ տեղեկատվություն շտրիխ կոդից՝ ձեռնարկության գործընթացների հաշվառման, հետևման և ավտոմատացման համար:

Ի՞նչ շտրիխ կոդերի ձևաչափեր են աջակցում GS1 նույնականացուցիչները

ԳՍ1 ստանդարտները կիրառական նույնականացուցիչներով օգտագործվում են շտրիխ կոդերի բազմաթիվ համակարգերում՝

Սրանք այն ձևաչափերն են, որոնք ամենից հաճախ օգտագործվում են աշխարհի խոշոր ձեռնարկությունների կողմից՝ ամբողջական հետագծելիությունն ու ավտոմատացումն ապահովելու համար։

Ինչպես է GS1 նույնականացուցիչների վերլուծությունը գործում VintaSoft Barcode .NET SDK-ի միջոցով

VintaSoft Barcode .NET SDK ծրագրային փաթեթը թույլ է տալիս ոչ միայն արագ կարդալ ցանկացած տեսակի շտրիխ կոդեր, այլև ավտոմատ կերպով վերլուծել տվյալների տողերը՝ համաձայն GS1 ստանդարտի։

Վերլուծության հիմնական փուլերը՝

Կիրառումը և առավելությունները բիզնեսի համար

GS1 հավելվածի նույնականացուցիչների վերլուծությունը VintaSoft Barcode .NET SDK-ի միջոցով բացում է ավտոմատացման և վերահսկողության նոր հնարավորություններ ընկերությունների համար: Լուծումը հեշտությամբ ինտեգրվում է բիզնես գործընթացների շղթայում, հեշտացնում է ապրանքների շարժի հաշվառումը և ապահովում է տվյալների բարձր մակարդակի հուսալիություն:

Գործնական առավելությունների շարքում՝

Նման գործիքի օգտագործումը օգնում է բիզնեսներին ոչ միայն կրճատել ծախսերը, այլև բարելավել ծառայությունների որակը, արագացնել ապրանքների մշակումը և գործընթացները դարձնել ավելի թափանցիկ և ժամանակակից։

Եզրակացություն

GS1 հավելվածի նույնականացուցիչների վերլուծությունը և վերլուծումը ժամանակակից ավտոմատացման և հաշվապահական գործընթացների անբաժանելի մասն են կազմում մանրածախ առևտրի, լոգիստիկայի և առողջապահության ոլորտներում։

VintaSoft Barcode .NET SDK-ն ապահովում է ունիվերսալ, ճկուն և բարձր արդյունավետությամբ լուծում բարդ շտրիխ կոդերի սկանավորման և վերլուծության համար, որոնք համապատասխանում են GS1 գլոբալ ստանդարտներին։ Ձևաչափերի լայն շրջանակի աջակցությամբ, կառուցվածքային տվյալների ավտոմատ վերլուծությամբ և առկա համակարգերի հետ հեշտ ինտեգրմամբ՝ VintaSoft լուծումները օգնում են ընկերություններին բարձրացնել գործընթացների թափանցիկությունը և կրճատել շահագործման ծախսերը։

VintaSoft Barcode .NET SDK-ի հնարավորությունների և ինտեգրման օրինակների վերաբերյալ լրացուցիչ տեղեկությունների համար այցելեք VintaSoft-ի պաշտոնական կայքը կամ կապվեք ընկերության աջակցության ծառայության հետ։


Ահա C# կոդ, որը ցույց է տալիս, թե ինչպես ստեղծել Code128 շտրիխ կոդի պատկեր՝ GS1 տեղեկատվությամբ (GS1-128) և ճանաչել GS1-128 շտրիխ կոդը ստեղծված պատկերում.
using System;
using System.Text;

using Vintasoft.Barcode;
using Vintasoft.Barcode.BarcodeInfo;
using Vintasoft.Barcode.GS1;
using Vintasoft.Barcode.SymbologySubsets;
using Vintasoft.Imaging;

/// <summary>
/// Test that shows how to encode the barcode data in GS1 format using the GS1Codec class,
/// create image with GS1-128 barcode,
/// read GS1-128 barcode from image and
/// parse data stored in GS1 format.
/// </summary>
class GS1CodecExample
{

    /// <summary>
    /// Runs the test.
    /// </summary>
    public static void TestGS1Codec()
    {
        bool valueVisible = true;

        // form the GS1 Application identifiers

        GS1ApplicationIdentifierValue[] aiValues = new GS1ApplicationIdentifierValue[4];
        GS1ApplicationIdentifier ai;
        // 01 - Global Trade Item Number
        ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("01");
        aiValues[0] = new GS1ApplicationIdentifierValue(ai, "0123456789123C");
        // 310 - Net weight, kilograms
        ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("310");
        aiValues[1] = new GS1ApplicationIdentifierValue(ai, "0012.55");
        // 30 - Count of Items
        ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("30");
        aiValues[2] = new GS1ApplicationIdentifierValue(ai, "10");
        // 90 - Company Internal Information
        ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("90");
        aiValues[3] = new GS1ApplicationIdentifierValue(ai, "ABCabc12345");

        // get GS1 printable value
        StringBuilder printableValue = new StringBuilder();
        foreach (GS1ApplicationIdentifierValue value in aiValues)
            printableValue.Append(value);


        // create the barcode writer
        using (BarcodeWriter writer = new BarcodeWriter())
        {
            // specify that writer must create output image as 24-bpp image
            writer.Settings.PixelFormat = BarcodeImagePixelFormat.Bgr24;

            // specify that writer must generate Code128 barcode
            writer.Settings.Barcode = BarcodeType.Code128;

            // encode GS1 value in GS1-128 symbology
            writer.Settings.Value = GS1Codec.GS1_128.Encode(aiValues, writer.Settings);
            // set printable value
            if (valueVisible)
            {
                writer.Settings.ValueVisible = true;
                writer.Settings.PrintableValue = printableValue.ToString();
            }
            else
            {
                writer.Settings.ValueVisible = false;
            }

            // create image with barcode
            using (VintasoftBitmap barcodeImage = writer.GetBarcodeAsVintasoftBitmap())
            {
                // delete aiValues array
                aiValues = null;

                // create barcode reader
                using (BarcodeReader reader = new BarcodeReader())
                {
                    // specify that reader must search for GS1-128 barcodes only

                    reader.Settings.ScanBarcodeTypes = BarcodeType.None;
                    reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.GS1_128);

                    // read barcode from image
                    IBarcodeInfo[] infos = reader.ReadBarcodes(barcodeImage);

                    // gets a GS1 Application identifiers from barcode value
                    aiValues = ((GS1BarcodeInfo)infos[0]).ApplicationIdentifierValues;

                    printableValue = new StringBuilder();

                    // print Application identifiers values
                    for (int i = 0; i < aiValues.Length; i++)
                    {
                        GS1ApplicationIdentifierValue aiValue = aiValues[i];
                        ai = aiValue.ApplicationIdentifier;
                        Console.WriteLine(string.Format("[{0}] {1}", i + 1, aiValue));
                        Console.WriteLine(string.Format("Application identifier   : {0}", ai.ApplicationIdentifier));
                        Console.WriteLine(string.Format("Value                    : {0}", aiValue.Value));
                        Console.WriteLine(string.Format("Data title               : {0}", ai.DataTitle));
                        Console.WriteLine(string.Format("Data content             : {0}", ai.DataContent));
                        Console.WriteLine(string.Format("Format                   : {0}", ai.Format));
                        Console.WriteLine(string.Format("Is contains decimal point: {0}", ai.IsContainsDecimalPoint));
                        Console.WriteLine(string.Format("Is variable length       : {0}", ai.IsVariableLength));
                        Console.WriteLine();
                        printableValue.Append(aiValue.ToString());
                    }

                    // print GS1 printable value
                    Console.WriteLine("Printable GS1 value: " + printableValue.ToString());
                }
            }
        }
    }
}