PAC
Документ "Отчет смены производственного мастера", таблица DOCP
Для работы необходимо построить индексы справочника R187
Содержание
PAC1
DATDOC - дата
KREFL1 - R10
KANAL1 - код производства
Умалчиваемое выражение: GetFiltName( 'KANAL1' )
DREFL1 - R10
DANAL1 - код производства
CATTR9 - код из справочника R160
DSHIFT - Дата и смена ггггммддс
CATTR10 - Табельный номер начальника смены
_TIMEFIRST - Дата и время ввода
_TIMELAST - Время последнего;изменения
AMNT_FLOUR - Выработано;кг из муки
BAD - Признак ошибки
CATTR1 - Наличие отчета движения гот-ой продукции
CATTR2 - Наличие отчета движения сырья
CATTR3 - Время начала работы по счетчику
CATTR9 - Подразделение код
DANAL1 - Код производства копия KREFL1
DANAL3 - Код пользователя
DATDOC - Дата отчета
DREFL1 - Спр-к аналитик копия KREFL1
K1NAME - Наименование производства
KG - кг с PAC4
KSHIFT - Дата / смена
LAST_USER - Автор последнего;изменения
MOL - Мастер
MOL2 - Оператор
NATTR1 - № акта на брак
NATTR11 - Дополн.числовое поле
NATTR2 - Вес яйца
NATTR3 - Явочная численность
NATTR4 - Показания счетчика ИЛИ кг c PAC9
NATTR5 - Показания видеосчетчика
NUMDOC - Номер отчета
PRINTED - Печать
SHIFT - Номер смены
SUBDIV - Подразделение
PAC2 Влажности и бункеры
KREFL2 - R08
KANAL2 - код муки
K2NAME - наименование муки
NATTR1 - влажность муки
KREFL3 - R317
KANAL3 - код бункера
K3NAME - наименование бункера
KSHIFT - смена в формате ггггммддс
NATTR10 - количество по дозатору
PAC3 Замены сырья и материалов
DANAL3 - что заменяем, код
D3NAME - что заменяем, имя
AMNT - количество
KANAL3 - чем заменяем, код
K3NAME - чем заменяем, имя
NATTR3 - коэффициент замены
KANAL2 - второй заменитель, код
K2NAME - второй заменитель, имя
NATTR2 - коэффициент замены
NATTR4 - третий заменитель, код
CATTR1 - третий заменитель, имя
NATTR5 - коэффициент замены
Клавиши
CTRL+F6 - полная замена сырья в текущем отчете
CTRL+F7 - частичная замена сырья
PAC4 Изделия
DATDOC - дата
DSHIFT - ггггммддс
DREFL1 - R10
DANAL1 - код производства
DREFL2 - R11
DANAL2 - код изделия
AMNT - выработка, штук
KG - выработка, кг
CATTR1 - вариант рецептуры
CATTR3 - номер линии
CATTR6 - номер подбригады
CATTR10 - начальник смены, мастер, бригадир ( табельный номер )
NATTR1 - средневзвешенная влажность
NATTR2 - технологический брак в штуках
NATTR3 - брак по вине мастера в штуках
NATTR6 - количество добавок в кг
NATTR8 - выход при влажности муки 14.5%
round(SeekRef(DREFL2,DANAL2,{||PAC4->(RetIssue2(DANAL2,,val(CATTR1),,KSHIFT,val(CATTR3)))},1,0), prsn_I)
NATTR10 - вес одного изделия
SUM - фонд заработной платы
PAIN_AMNT - расход основного сырья
REJ_SUM2 - Стоимость сырья на брак
EXTSUM сумма по плановой себестоимости
Выражение для расчета
Round( Round( Prod_Price( DANAL2, DATDOC,,,,,,, 4 ), 2 ) * AMNT, 2 )
_LINE_NUM - имя;печи
_SUBDIV - Подразделение
_TIMEFIRST - Дата и время ввода
_TIMELAST - Время последнего;изменения
AMNT - Выработано (шт)
AMNT_FLOUR - Выработано;кг из муки
AMNT_MEM - Кол-во виновных
BAD - Признак ошибки
BAD2 - Признак ошибки 2
BR_MAST - Брак мастера не перерабатываемый
BR_MAST_KG - Брак мастера не перерабатываемый в кг
BR_PNO - утилизация брака ПНО в штуках
BR_PNO_KG - утилизация брака ПНО в кг
BR_TECH - Брак технологический не перерабатываемый
BR_TECH_KG - Брак технол-ий не перерабатываемый в кг
CATTR1 - N рецептуры
CATTR10 - Мастер
CATTR2 Вариант расценки изделия
CATTR3 - N печи, линии
CATTR4 - Рецептура упакованных изделий
CATTR5 - Рецептура дополн-но изготовленного п/ф
CATTR6 - Технологическая стадия
CATTR7 - Вар-т расценки упаковки
CATTR8 - Вар-т расценки п/ф
CATTR9 - Код упаков-х изд по R11
CHANGEMAT - Ручная корректировка?
D_OPARA - Опара;в дежах
D_TECTO - Тесто в дежах (в пруфере)
D2NAME - Наименование изделия
DANAL1 - Код производства PAC1
DANAL2 - Код изделия
DANAL3 - Код п/ф по R74
DATDOC - Дата отчета PAC1
DEBT - Счет изделия
DREFL1 - Спр-к аналитик PAC1
DREFL2 - Спр-к изделий
DSHIFT - Дата / смена PAC1
FLOUR - Основная мука (код)
FLOUR_AMNT - Основная мука (кол-во)
GIVE_MAT_F - Используется ли давальческое сырье(1-да)
K2NAME - Наименование добавок 1-я добавка
K3NAME - Наименование бункера
KANAL1 - Код производства PAC1
KANAL2 - Код добавок 1-я добавка
ProdToRej( DANAL2 )
KANAL3 - Код бункера
KG - Выработано (кг)
KG_MB - Брак по вине мастера (кг)
KG_TB - Технологический брак (кг)
KG_VPO - НЕТ см.NATTR7 Возвр-перераб. отходы (кг)
KOL_MAT - Количество наименований сырья
KREFL1 - Спр-к аналитик PAC1
KREFL2 - Спр-к сырья ( добавка 1)
KREFL3 - Спр-к бункеров
KSHIFT - Дата / смена PAC1
LAST_USER - Автор последнего;изменения
LINE_NUM2 -
MOL - Оператор
NATTR1 - Средневзвешенная влажность
NATTR10 - Вес 1 шт.
NATTR11 - Дополн.числовое поле
NATTR2 - Технологический брак (шт)
NATTR3 - Брак по вине мастера (шт)
NATTR4 - Упаковано (шт)
NATTR5 - Кол-во дополн-но изготовл-го п/ф (кг)
NATTR6 - Кол-во добавок (кг) 1-я добавка
NATTR7 - ВПО (кг)
NATTR8 - Выход при 14.5
NATTR9 - Выход при влажности
NDSSUM - Трудоемкость
NUMDOC - Номер отчета
PAIN_AMNT - Израсходовано муки
PAIN_AMNT2 - Для округления мук по линии
PAIN_PAC5 - Сумма муки с PAC5
PERC_PAIN - Добавки в виде % от муки
PRD_AMNT - Количество переделываемых тортов
PRD_KOD - Код переделываемого изделия
PRD_NAME - Наименование переделываемого изделия
PRIM - Примечание
PRINTED - Печать
RAWSUM - Стоимость сырья основного изделия
REALISSUE - Реальный выход
REASOFORIG - Причина брака
REJ_KOD - Код брака
REJ_NAME - Наименование брака
REJ_REFL - Спр-к брака
REJ_SUM2 - Стоимость сырья на брак
REJECTS - Брак при неисправном оборудовании
REJECTS_KG - Брак при неисправном оборудовании, кг
REJECTV Возвратно-перерабатываемые отходы
REJECTV_KG Возвратно-перерабатываемые отходы, кг
REMREJ_KG - Переработка брака
REMREJ_KOD - Код перерабатываемого брака
REMREJ_VAR - № рецептуры для перерабатываемого брака
REMREJNAME - Наименование перерабатываемого брака
SHIFT - Номер смены PAC1
SUBDIV - Подразделение
SUM - Фонд з/пл
SUM_PACC - Сумма с этажа Си
TYPE_REJ - Признак брака
Проводки
43 40 Возникновение изделия с суммой EXTSUM
PAC5 Расход сырья, материалов и полуфабрикатов
Идентификатор реквизита | Выражение для расчета | Перечень зависимых реквизитов | Умалчиваемое значение | Поле справочника | Изменяемый реквизит |
---|---|---|---|---|---|
_TIMEFIRST | Date()+' '+Time(true) | ||||
_TIMELAST | |||||
AMNT | local sql, recept, i, r11_precsn, Flour_prec, ind, dough, on_pain
recept := {} if IsSweetNAK( PAC1->KANAL1 ) return endif if INPUTFLDNAME = 'NATTR8' and Empty( AMNT ) and !WorkAddAll AMNT := NATTR8 endif if FactoryID = 'DED' and Empty( AMNT ) amnt := NATTR8 if Empty( amnt ) amnt := NATTR6 endif endif result := PAC5_Precsn( AMNT, CATTR1, KANAL2, DOCS4->DANAL2, PAC4->CATTR3, val( DOCS4->CATTR1 ) ) if FactoryId = 'DED' and Empty( result ) result := Round( NATTR8, 3 ) if Empty( result ) result := Round( NATTR6, 3 ) endif endif // кроме пекарни Орехово if CATTR1 = 'УЦ' and !( FactoryId = 'OHC' and NrmtId = 2 ) if FRAC( NATTR8 ) > 0 result := INT( NATTR8 ) + 1 else result := NATTR8 endif endif if SeekRef( 'R08', KANAL2, 'PRECSN', 1 ) = 9 result := round( Result, 0 ) endif // в том числе упакованно ( Ликино ) if Ascan( { 'OHC', 'XHC' }, FactoryId ) > 0 if DOCS4->NATTR4 > 0 and ( ( 'УП' $ CATTR1 ) or ( 'УЦ' $ CATTR1 ) or ( 'ТА' $ CATTR1 ) ) sql := [ Select UNIT_AMNT From R71 Where KODPROD = ] + a_s( DOCS4->DANAL2 ) + [ and VAR_NUM = ] + atr( DOCS4->CATTR1 ) + [ and KOD = ] + a_s( KANAL2 ) recept := SelectSqlToArr( sql, { 'UNIT_AMNT' }, ReflisPath ) if !Empty( recept ) result := Round( recept[1,1] * DOCS4->NATTR4, GetPrm( 'PRECSN_M', 'PROD', GetTaskNum( 'PROD', DOCS1->DANAL1 ) ) ) endif endif endif // кроме Куровского if Recalc and Ascan( { 'OHC' }, FactoryId ) > 0 and NRMTID <> 4 Nattr8 := Result endif if Recalc and FactoryID = 'OHC' and NRMTID = 4 and CATTR1 <> 'МУ' Nattr8 := Result endif if Recalc and Ascan( { 'KTV' }, FactoryId ) > 0 and CATTR1 = 'МУ' Nattr8 := Result endif if Recalc and Ascan( { 'PHC', 'ARX', 'ORN', 'NAY', 'KAZ', 'KLM', 'SHC', 'DED', 'NAH', 'SRG', 'TVR', 'VLG', 'TPS', 'JWR', 'MUR', 'VLK' }, FactoryID ) > 0 Nattr8 := Result endif // кого я "веду" if Ascan( { 'N_AZ', 'DED', 'EHC', 'GHC', 'KLM', 'NHC', 'OHC', 'PHC', 'XHC' }, FactoryId ) != 0 // если не весовое изделие, округление до целого // хотя делаться это должно в PAC5_Precision if ( 'ИЗ' $ CATTR1 ) and R11Wght( KANAL2 ) != 1 result := Round( result, 0 ) endif else if KREFL2 = 'R11 ' result := Round( Result, 3 ) if FactoryId = 'TVR' if R11Wght( DANAL2 ) = R11Wght( KANAL2 ) result := Round( Result, 0 ) endif NATTR6 := result NATTR8 := result endif endif endif /// --- Щелково хочет видеть выигрыш в сырье при добавлении брака-мочки --- if FactoryId = 'WHC' and !Empty( DOCS4->NATTR6 ) and !Empty( DOCS4->KG ) and ( Empty( CATTR1 ) or Cattr1 = 'МУ' ) // Щелково добавки снимает с выработки NATTR8 := result * ( DOCS4->KG / ( DOCS4->KG - DOCS4->NATTR6 ) ) endif if FactoryId = 'KRL' or ( FactoryId = 'EHC' and !( 'МУ' $ CATTR1 ) ) NATTR8 := result endif // округление изделий в рецептуре if FactoryId = 'KLM' and KREFL2 = 'R11 ' result := Round( result, 1 ) endif if Ascan( { 'DTV', 'ZRS', 'XHC' }, FactoryId ) > 0 // Владимир попросил, все что меньше 0.001 приравнять 0.001 if result = 0 and NATTR6 < 0.001 and NATTR6 > 0 result := 0.001 endif // а если в целых, то 1 if Cattr1 = 'СЦ' and iif( FactoryId = 'DTV', NATTR6 <= 1, NATTR6 < 1 ) and NATTR6 > 0 result := 1 endif endif if FactoryId = 'ZRS' and CATTR1 = 'МУ' and !Empty( DOCS4->NATTR6 ) // округлить муку для Зарайска, при использовании добавок result := Round( result ) endif if FactoryId = 'DTV' and CATTR1 = 'МУ' and result > DOCS4->FLOUR_AMNT // записать код основной муки на 4-ый этаж для Дятьково DOCS4->FLOUR_AMNT := result DOCS4->FLOUR := KANAL2 endif if FactoryId = 'ZRS' and AMNT = 0 and NATTR8 = 0 if KANAL2 = 26 // округление солода при маленьком кол-ве хлеба result := Round( NATTR6, 1 ) Field->NATTR8 := result endif if KANAL2 = 3 or KANAL2 = 2 // округление ржанообдирной при маленьком кол-ве хлеба result := 1 Field->NATTR8 := 1 endif endif Transaction() Field->NATTR9 := NATTR8 - Result if KREFL2 = 'R11 ' r11_precsn := GetPrm( 'R11_PRECSN', 'PROD', GetTaskNum( 'PROD', DOCS1->DANAL1 ) ) if !Empty( r11_precsn ) result := Round( result, r11_precsn ) else result := Round( result, 0 ) endif endif // 2 // Алексей 07.12.2010 KRG if FactoryId = 'KRG' // ванилин if KANAL2 = 8 result := Round( result, 0 ) endif // масло в тесто в хлебобулочном производстве if KANAL1 = 2 and KANAL2 = 21 and CATTR1 <> 'СМ' result := Round( result, 1 ) endif endif if FactoryID = 'ARX' and KSHIFT < '201205011' if ( 'УП' $ CATTR1 ) or ( 'УЦ' $ CATTR1 ) result := 0 endif endif if FactoryID = 'NAK' // Брак ржано-пшеничный if KREFL2 = 'R08 ' and KANAL2 = 9003 // индекс номер 6 справочника R71 ind := Str( DANAL2, 5 ) + Str( val( DOCS4->CATTR1 ), 5 ) + Str( KANAL2, 5 ) dough := SeekRef( 'R71', ind, 'DOUGH', 6 ) if !Empty( dough ) on_pain := SeekRef( 'R71', ind, 'ON_PAIN', 6 ) if on_pain <> dough result := Round( result * dough / on_pain, 2 ) endif endif endif endif result || NATTR9,SUM,PAIN_PAC5 || || || | ||||
CATTR1 | if IsSweetNAK(PAC1->KANAL1)
Local arr:=MultyArrElDel(MatPropts(Шаблон:KANAL2,KREFL2), "", .t.) if len(arr)>0; result:=arr[1]; endif endif || || || PAC5PROPTS || | ||||
CATTR10 | PAC1.CATTR10 | ||||
CATTR2 | 'Н' | ARYESNO | |||
CATTR3 | PAC4.CATTR1 | ||||
CATTR4 | pac4.cattr3 | ||||
D2NAME | RealName(DREFL2,DANAL2) | PAC4.D2NAME | KOD | DANAL2 | |
D3NAME | RealName(DREFL3,DANAL3) | PAC4.D2NAME | KOD | DANAL3 | |
DANAL1 | PAC4.DANAL1 | ||||
DANAL2 | D2NAME | PAC4.DANAL2 | |||
DANAL3 | D3NAME | local a
a:=SeekRef('R74',PAC4.DANAL2,'REALPROD',1) if !Empty(a) and GetPrm('USEMREADY','PROD',ProdNum); a; else; PAC4.DANAL2; endif || || | |||
DATDOC | PAC4.DATDOC | ||||
DEBT | result:=ProdAcnt(DANAL2,DREFL2)
if FactoryId='NAK' .and. !IsSweetNAK(PAC1->KANAL1); result:='20'; endif || || || || | ||||
DREFL1 | PAC4.DREFL1 | ||||
DREFL2 | D2NAME | PAC4.DREFL2 | |||
DREFL3 | PAC4.DREFL2 | ||||
DSHIFT | DToS(DATDOC)+SHIFT | PAC4.DSHIFT | |||
GIVE_MAT_F | if KRED=GIVE_MAT; 1; endif | ||||
K2NAME | if FactoryID="KRL" and KREFL2='R08'
if DANAL2=610 Field->DANAL2:=135 Field->DANAL3:=135 elseif DANAL2=390 Field->DANAL2:=374 Field->DANAL3:=374 end endif RealName(KREFL2,KANAL2) || || || KOD || KANAL2 | ||||
K3NAME | RealName(KREFL3,KANAL3) | KOD | KANAL3 | ||
KANAL1 | PAC4.KANAL1 | ||||
KANAL2 | K2NAME, NATTR1, SUM, KRED, DEBT, KREFL3, KANAL3, UNIT_NAME, CATTR1 | ||||
KANAL3 | // для основного сырья, если Бункеры в R317 (Bunker_R10=False) запишем код бункера
// 05.07.05 Алексей Бункеры прописываются в ReceptToArr // iif(!Bunker_R10.and.IsMainPain(Kanal2),SeekRef('R317',KANAL2,'KOD',3),) || K3NAME,NATTR1 || || || | ||||
KOL_MAT | 1 | ||||
KRED | //14.04.2004 а если в рецептуре списывается изделие? SeekRef('R08',M->Kanal2,'Bkacnt',1)
result:=ProdAcnt(KANAL2,KREFL2) if ProdAs20 result:=ProdAcnt(KANAL1,KREFL1) endif || GIVE_MAT_F || || BKACNT || | ||||
KREFL1 | PAC4.KREFL1 | ||||
KREFL2 | K2NAME,NATTR1,SUM,KRED | 'R08 ' | R08R11 | ||
KREFL3 | iif(Bunker_R10,'R10 ','R317') | K3NAME,NATTR1 | iif(Bunker_R10,'R10 ','R317') | ||
KSHIFT | DToS(DATDOC)+SHIFT | PAC4.KSHIFT | |||
LAST_USER | |||||
MOL | userkod | userkod
//SeekRef('R126',userKod,'TABNUM',1,0) || KOD || | |||
NATTR1 | if !WorkAddAll // т.е. только для ручной корректировки
local fw if 'МУ' $ CATTR1 fw:=FindWetns(KANAL2,KANAL3,,KREFL2,KREFL3,WetnsArr) if !Empty(fw) result:=fw else result:=Nattr1 endif endif endif || NATTR8 || || || | ||||
NATTR10 | |||||
NATTR2 | |||||
NATTR3 | |||||
NATTR4 | RawSum | ||||
NATTR5 | |||||
NATTR6 | if IsSweetNAK(PAC1->KANAL1); Return; endif
PAC5_Precsn(NATTR6, CATTR1, KANAL2, , PAC4->CATTR3) || || || || | ||||
NATTR7 | |||||
NATTR8 | // PAC5_Precsn(NATTR8, CATTR1, KANAL2, , PAC4->CATTR3) | AMNT | |||
NATTR9 | if HandFldName='AMNT' or FactoryID='NFM'
NATTR8-AMNT endif || || || || | ||||
NDSSUM | |||||
NUMDOC | DOCS1->NUMDOC | ||||
PAIN_PAC5 | if CATTR1='МУ'; AMNT; endif | ||||
PRIM | |||||
RAWSUM | // только сырье, списанное на основное изделие
from_pac5:=.f. result:=0 if DANAL2=PAC4->DANAL2 .and. KREFL2='R08'; result:=SUM; endif || NATTR4 || || || | ||||
SHIFT | PAC4.SHIFT | ||||
SUM | if AMNT=0; result:=0; return; endif
// Алексей 21.04.05 Local arr,_KRED,_KREFL1,_KANAL1,_KREFL2,_KANAL2 _KRED:=KRED; _KREFL1:=KREFL1; _KANAL1:=KANAl1; _KREFL2:=KREFL2; _KANAL2:=KANAL2 // для ввода по F6 if KREFL2='R08' result:=MTUN->(CalcPriceMT({{'BKACNT',_KRED},{'REFLANAL',_KREFL1},{'ANAL',_KANAL1},{'REFL',_KREFL2},; {'KOD',_KANAL2}}))*AMNT If Result > 1073741824/2 Result:=0 Endif else arr:=PriceOnDate({'SELF_PRICE'}, DATDOC, KANAL2, .f.) result:=round(round(arr[1] * R11Wght(KANAL2) / 1000, 2) * AMNT, 2) endif || RAWSUM || || || | ||||
UNIT_NAME | UnitName( KANAL2, KREFL2 ) |
PAC9 Заказ
DSHIFT - дата и смена ггггммддс
DREFL1 - R10
DANAL1 - код производства
DREFL2 - R11
DANAL2 - код изделия
AMNT - заказ, штук
KG - заказ, кг
_LINE_NUM - имя;печи
_TIMEFIRST - Дата и время ввода
_TIMELAST - Время последнего;изменения
AMNT - Количество (шт)
CATTR1 - Номер рецептуры. От номера рецептуры зависит выход NATTR8
CATTR10 - Мастер
CATTR2 - Признак отпечатанности
CATTR3 - N линии
CATTR4 - Время
D2NAME - Наименование изделия
D3NAME - IsKondEastNAK Ссылка на KSHIFT заказа, из которого автоматически пришла фаза-п/ф
DANAL1 - Код производства PAC1
DANAL2 - Код изделия
DATDOC - Дата отчета PAC1
DREFL1 - Спр-к аналитик PAC1
DREFL2 - Спр-к изделий
DREFL3 - IsKondEastNAK Изделие/полуфабрикат
DSHIFT - Дата / смена PAC1
EXTSUM - Время;изготовления
K1NAME - Хранилище извращений по фруктовым ассорти: 26661код;N3лин;N4кг кодR08;колво кодR08;колво кодR08;колво кодR08;колво
KANAL1 - Код производства PAC1
KG - Выработано (кг)
KREFL1 - Спр-к аналитик PAC1
KSHIFT - Дата / смена PAC1
LAST_USER - Автор последнего;изменения
MOL - Оператор
NATTR1 - Средневзвешенная влажность
NATTR10 - Вес 1 шт.
NATTR2 - Смена
NATTR3 - N печи/группа кондитеров
NATTR4 - Выработано (кг)
NATTR5 - Выполнение заказа
NATTR6 - Дежи
NATTR7 - реальный выход:с учетом округления муки
NATTR8 - Выход при 14.5
NATTR9 - Выход при влажности
ORD_TYPE - Тип заказа
PAIN_AMNT - Мука
SHIFT - Номер смены PAC1
PACA Расход сырья на заказ
KREFL2 - R08
KANAL2 - Код сырья
NATTR8 - расход с учетом влажности
PACD Движение муки в бункерах
DATDOC - дата отчета
DREFL1 - R317
DANAL1 - код бункера
D1NAME - наименование бункера
KREFL2 - R08
KANAL2 - код муки
K2NAME - наименование муки
NATTR1 - входящий остаток
NATTR2 - приход муки
NATTR3 - расход муки
NATTR4 - выходящий остаток
NATTR5 - передача на склад
NATTR6 - зачистка, излишки
NATTR7 - зачистка, недостачи
NATTR8 - передача в другое производство