|  05.10.2004, 14:46 | #1 | 
| Участник | search item by barcode 
			
			How to enter new items by barcode? Usually in itemID field you select itemnumber from item list. How could be done that from barcode scanner? | 
|  | 
|  06.10.2004, 06:08 | #2 | 
| Участник | 
			
			Да никак. Если конечно сами не напишете поддержку сканнеров штрих-кодов в Аксапте, т.к. стандартный функционал их просто не поддерживает. Особенно сканнеры, подключаемые в COM-порт.  Сканнеры подключаемые в разьем клавиатуры сами по себе просто набирают сканируемый код на клавиатуре, следовательно определенным образом извращаясь их можно заюзать без какой либо поддержки со стороны программы в которой их предполагается использовать, но это наверняка будет неудобно. Кроме того сама постановка вопроса (как ввести новый itemId со сканнера) мне непонятна - что вы хотите? Чтобы ItemId у товара был равен штрих-коду на его этикетке?? | 
|  | 
|  06.10.2004, 08:32 | #3 | 
| Участник | 
			
			Ну, нельзя сказать, что совсем уж не поддерживает... Если посмотреть инвентаризацию в Управлении запасами Аксапты 3, то таки может... Вводим с клавиатуры (или клавиатурного сканера) штрихкод - выбирается искомая номенклатура. Соответственно, аккуратно доработав формы закупок/заказов, можно выбирать и там. А вот ItemId=штрихкод - это моветон. | 
|  | 
|  28.06.2005, 15:59 | #4 | 
| Бобр | моветон жжот (+) 
			
			А как делают в таком случае? Заводят новую аналитку  "штрихкод"?
		 | 
|  | 
|  29.06.2005, 09:44 | #5 | 
| NavAx | 
			
			У меня это выглядит так (это не стандартный функционал): public int task(int _taskId) { #TASK int ret; ItemId itemId; if (_taskId == #TASKBARCODE) { itemId = InventItemBarcode::findBarcodeSimple(appl.barcodeObject().getBarcodeString()).itemId; if (itemId) inventTable_ds.filter(fieldNum(InventTable, ItemId), itemId); } else ret = super(_taskId); return ret; } а зачем новую аналитику то?  открываем форму InventTable  и находим на ней кнопочку "Настройки" и там "Штриховые коды" 
				__________________ И все они создания природы... | 
|  | 
|  29.06.2005, 11:18 | #6 | 
| Участник | 
			
			Если одной номенклатуре соответствует только один штрих-код, то можно использовать поле "Краткое наименование" в картотеке номенклатуры. В это случае можно будет вводить штрих-код в поле кода номенклатуры, а система сама заменит его на нужный код.
		 | 
|  | 
|  29.06.2005, 11:50 | #7 | 
| Участник | Цитата: 
		
			Изначально опубликовано Peter Savintsev  Если одной номенклатуре соответствует только один штрих-код, то можно использовать поле "Краткое наименование" в картотеке номенклатуры. В это случае можно будет вводить штрих-код в поле кода номенклатуры, а система сама заменит его на нужный код. 1) 1 товар - разные штрихкоды, эта же кола, разливаемая на разных заводах, имеет разные штрих коды. Тоже самое с сигаретами, некоторыми консервами и т.д. 2) 1 штрихкод - разные товары, некоторые чаи (по-моему "Восточный Купец"), консервы имеют 1 штрихкод на весь видовой ассортимент товара. Даже попадались принципиально разные товары с одинаковыми штрихкодами. Первая ситуация - это норма, решается связью 1:н. Вторая - жульничество или ошибки производителей. Решается только переклейкой штрихкодов на внутринние. | 
|  | 
|  29.06.2005, 14:29 | #8 | 
| Administrator | 
			
			Поскольку предполагается, что сканеры штрих-кодов используются на складе, работа с ними реализована во всех складских журналах. Заказы и закупки складскими документами не являются. Вообще, у кладовщиков доступ в эти формы, ИМХО, должен быть только на чтение.
		 
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  14.12.2006, 18:26 | #9 | 
| Участник | 
			
			Подскажите как организовать такой функционал: В строках заказа вводится в поле номенклатура штрих-код, по штрих-коду ищется номенклатура и подставляется в строку со всеми аналитиками. Как добится того что бы подставлялась аналитика? Как передать в salesline inventDimId? Вот что получилось, но работает не совсем так, как хотелась бы. X++: boolean  validateField(fieldId  fieldId)
{
    boolean         ok = true;
    SalesLineType   salesLineType;
    RAssetTable     assetTable;    //valu FA (Viar)
    SalesLine       salesLineTmp;  //valu FA (Viar)
    InventItemBarcode inventItemBarcode;
    InventDim           inventDim;
    InventTable         inventTable;
    SalesLine           salesLine;
    ;
    if(fieldId == fieldnum(SalesLine, ItemId))
    {
        select firstonly InventItemBarcode
        where InventItemBarcode.itemBarCode ==  this.ItemId;
        if(inventItemBarcode)
        {
            this.ItemId = inventItemBarcode.itemId;
            if(inventItemBarcode.inventDimId)
            {
                ttsbegin;
                inventDim.clear();
                inventTable.clear();
                //inventItemBarcode.clear();
                inventTable = InventTable::find(this.ItemId);
                //inventItemBarcode = InventItemBarcode::findBarcode(inventTable.itemId);
                inventDim = inventItemBarcode.inventDim();
                inventDim.inventLocationId  = inventTable.salesInventLocationId(inventDim.inventLocationId);
                inventDim.configId          = inventDim.configId
                                ? inventDim.configId
                                : inventTable.standardConfigId;
                inventDim.inventSizeId      = inventDim.InventSizeId
                                ? inventDim.InventSizeId
                                : inventTable.standardInventSizeId;
                inventDim.inventColorId     = inventDim.InventColorId
                                ? inventDim.InventColorId
                                : inventTable.standardInventColorId;
                inventDim.InventLocationId  = inventDim.InventLocationId;
                salesLine.inventDimId       = InventDim::findOrCreate(inventDim).inventDimId;
                salesLine.inventDimId       = InventDim.inventDimId;
                salesLine.projCategoryId    = inventTable.projCategoryId;
                salesLine.setTaxItemGroup(inventTable.salesTaxItemGroupId());
                salesLine.salesUnit         = inventTable.salesUnitId();
                salesLine.overDeliveryPct   = inventTable.salesOverDeliveryPct();
                salesLine.underDeliveryPct  = inventTable.salesUnderDeliveryPct();
                salesLine.initName(inventTable);
                salesLine.initFromCustExternalItemDescription();
                salesLine.salesQty          = InventItemBarcode.Qty;
                salesLine.qtyOrdered        = InventItemBarcode.Qty;
                salesLine.CurrencyCode      = CompanyInfo::standardCurrency();
                salesLine.priceUnit         = inventTable.salesPriceUnit();
                salesLine.lineAmountModified();
                salesLine.barCode           = inventItemBarcode.itemBarCode;
                salesLine.barCodeType       = inventItemBarcode.barcodeSetupId;
                salesLine.dimension         = Dimensions::findDimension(salesLine, inventTable, inventTable.Dimension);
                salesLine.setPriceDisc(inventDim);
                salesLine.calcPackingUnit(inventDim);
                ttscommit;
            }
        }
    }
    ok = super(fieldId);
    if (ok)
    {
        salesLineType = this.type();
        ok = salesLineType.validateField(fieldId);
    }
    // Valu FA  (Viar) -->
    if (ok && fieldId == fieldnum(SalesLine, assetId_ru) && this.assetId_ru)
    {
        assetTable = RAssetTable::find(this.assetId_ru);
        ok = assetTable.isOkToSell();
        if (ok)
        {
            salesLineTmp = SalesLine::findAsset_RU(this.assetId_ru);
            if (salesLineTmp && salesLineTmp.recid != this.recId)
            {
                ok = checkfailed(strfmt("@FAV1297", salesLineTmp.salesId));
            }
        }
    }
    // <<-- Valu FA (Viar)
    return ok;
} | 
|  | 
|  14.12.2006, 19:02 | #10 | 
| Banned | 
			
			Да уж, длинно и некрасиво. Вот идеи: salesLine.initFromInventTable(...) InventDim.mergeUsedDim(...) SalesLine::ModifySalesQty(...) А полный пример реализации похожей функциональности можно найти здесь: \Classes\WMSJournalFormTrans\barCodeEAN128 И ради бога, сделайте отдельное поле для ввода штрих-кода. | 
|  | 
|  | 
| 
 |