Добавлена возможность ввода продукции сканером штрих-кода при возврате в накладных отгрузки

и накладных возврата просроченной продукции в модуле "экспедиция" или "реализация".

 

В таком режиме ввода нужно добавить новый документ (или выбрать уже введенный),

далее нажить F7-номенклатура(продукция) и при открытом списке продукции проводим сканером по штрих-коду

изделия. При этом в случае отсутствия продукции в документе она добавляется с количеством 1, а если такая

продукция уже была введена ранее (или повторно провести сканером), то изменяется только количество изделий

(+1 или -1 - в соответствии с настройками см.ниже).

    В накладных возврата просроченной продукции устанавливается количество изделий, принятое от водителя,

т.е. сканируются реальные изделия принятые от водителя (из магазина устанавливается такое же количество).

В дальнейшем количество из магазина можно изменить в соответствии с их документами и при расхождении

получится недостача водителя.

    В накладных отгрузки продукции сканером устанавливается количество возвращенных изделий (принято

от водителя), при этом принято магазином уменьшается на количество возвращено (изначально было сколько

отпустили изделий столько магазин и принял, возвращено = 0) и при необходимости можно вручную изменить

количество принятое магазином. Также в случае расхождения образуется недостача водителя.

 

Для этого нужно сделать следующие настройки:

 - В параметрах модуля "Реализация" на закладке "Брак.Возврат"

"При возврате продукции (RTH/ESJ) первоначальный ввод колич.от водителя (Да) или из магазина (Нет)" - "Да"

 

 - В настройках формы документа "Накладная отгрузки продукции" представление RTH30001, Программы:

(добавить следующий текст программы - приведен для примера)

 

<BAR_CODE>

if factoryid='NHC' // Такая странная настройка пока только для NHC -> ввод двумя сканерами

  // Настроить префикс сканера годной продукции = "1", сканера брака = "2"

  // Для NHC в накладных имеет смысл только годная продукция, поэтому оба сканера как "годные"

 

  // Имя реквизита в док-те "код номенклатуры", Имя реквизита "наименование номенклатуры",

  // Идент. спр-ка, Реквизит получающий фокус, кол-во символов Префикса,

  // блок кода доп.обработки,

  // блок кода поиска ранее введенной номенклатуры

 

  // По сканеру вместо Amnt-принято магазином устанавливается Nattr2-принято от водителя (возвращено)

  result:={;

    'KANAL2','K2NAME','R11','NATTR2',1,;

    {|bar_code| FIELD->NATTR2:=FIELD->NATTR2+1, iif(Left(bar_code,1)='1',nil,nil) },;

    {|bar_code,anal,table| Prog("SEEK_BAR",,bar_code,anal,table) };

           }

else

  result:='DANAL2,D2NAME,R11,NATTR1'

endif

 

 

<SEEK_BAR>

Parameters bar_code,anal,table

result:=(table)->(DbLocate('KANAL2',{anal}))

 

 

 

 

 - В настройках формы документа "Накладная возврата просроченной продукции" представление ESJ20001, Программы:

(добавить следующий текст программы - приведен для примера)

 

 

<BAR_CODE>

if factoryid='NHC' // Такая странная настройка пока только для NHC -> ввод двумя сканерами

  // Настроить префикс сканера годной продукции = "1", сканера брака = "2"

 

  // Имя реквизита в док-те "код номенклатуры", Имя реквизита "наименование номенклатуры",

  // Идент. спр-ка, Реквизит получающий фокус, кол-во символов Префикса,

  // блок кода доп.обработки,

  // блок кода поиска ранее введенной номенклатуры

 

  // По сканеру вместо Amnt-отпущено магазином устанавливается Nattr1-принято от водителя

  result:={;

    'DANAL2','D2NAME','R11','NATTR1',1,;

    {|bar_code| FIELD->NATTR1:=FIELD->NATTR1-1,FIELD->CATTR10:=iif(Left(bar_code,1)='1','ПРОД','В СЫРЬЕ') },;

    {|bar_code,anal,table| Prog("SEEK_BAR",,bar_code,anal,table) };

           }

else

  result:='DANAL2,D2NAME,R11,NATTR1'

endif

 

 

<SEEK_BAR>

Parameters bar_code,anal,table

Result:=(table)->(DbLocate('DANAL2;CATTR10',{anal,iif(Left(bar_code,1)='1','ПРОД','В СЫРЬЕ')}))

 

 

________________

 

 

Настройки для NHC приведены для примера, как можно работать с двумя сканерами, настроить у них префикс

и по этому префиксу автоматически отличать изделия годные от брака.

 

Функция <SEEK_BAR> может возвращать три значения: .t./.f./nil

В случае .t. - прежняя запись найдена и увеличивается(уменьшается) только количество продукции

Если .f. - запись не найдена и происходит добавление новой записи в документе (новой продукции)

(в обоих этих случаях если в справочнике изделий не найдено изделия, то это изделие добавляется)

Если nil - то добавления записи в документ не производится и добавление продукции в справочник

тоже не производится.

 

________________