====== ПРРО ======
^ n/n ^ Послідовність встановлення для локальної конфігурації ^
| 1 | На робочому місці (компьютері) провести підготовку для роботи з ключами: \\ -Скопіювати **servertest\d\Vovan\RRO\*.* -> ..\SF\RRO\*.* **; \\ -Зайти в TotalCommander з правами **адміністратора**; \\ -Скопіювати **servertest\d\Vovan\DIBD\EUInstall.exe** та **servertest\d\Vovan\DIBD\windowsdesktop-runtime-6.0.20-win-x86.exe** на локальний компютер; \\ -Запустити **EUInstall.exe** (без []Крістал-1, остальні параметри по замовчанню); \\ -Запустити **windowsdesktop-runtime-6.0.20-win-x86.exe**; \\ -Запустити **..\SF\RRO\Reg.bat**; \\ |
| 2 | В приложенії "Центр сертифікації ключів" **ІІТ Користувач ЦСК** (EU.exe - на робочому столі після запуску EUInstall.exe ) підтягуемо сертифікати для ключів користувачів ПРРО (дивись **RRO\paramEU.txt**). |
| 3 | В довіднику **ПРРО** - регіструємо ПРРО шляхом підтягування ключа в полі **Фіскальний номер**. |
| 4 | Впевнетисть в наявності в базовій конфігурації (наразі налаштовано в **LIGHT08** та **LIGHT21**; за відсутності імпортувати з конфігурації **LIGHT08**) :\\ - модуля **_PRRO - ПРРО** ;\\ - меню **_PRRO - ПРРО** ;\\ - довідників **_PRRO - ПРРО** та **_PRROTax - ПРРО Податки** ;\\ - документу **_PRROChk - ПРРО Чек** ;\\ - константи **_PRRO - Торг: Фіскальний № ПРРО** (посилання на довідник ПРРО) та **_TorgPrnCheck - Торг: Найменування принтера чеків** (як в Win);\\ - коду в процедурі **Application.OnAfterStart()** : *---Підтримка ПРРО
If !Empty(Const._PRRO.Value)
Local lcMenuPrroGUI
lcMenuPrroGUI = Sys.MD.GetGuiByFPName('_PRRO', 'M', 'MENUPAD')
If GetGrant(lcMenuPrroGUI,'Z')
BProc.Mod._PRRO.InitRRO(InOut(Const._PRRO.Value,'_FN'))
If Vartype(Sys.aPRRO[1,3])='O'
MW.DoMenu(lcMenuPrroGUI)
EndIf
EndIf
EndIf
|
| 5 | В документі (в нашому прикладі **Realiz**), який потребує фіскалізації повинно бути поле **FCheck N(1)** додаємо метод **MenuFiscalize()** :If MessageBox('Фіскалізувати накладну?',32+4,'Фіскальний чек')#6
Return
EndIf
Local loDoc
loDoc = CreateObject('tDoc','Realiz')
loDoc.Scatter(The.MD.HF.ID)
loDoc.GetTP()
LProc.Doc.Realiz.Fiscalize(loDoc)
Doc.Open.Realiz.Post(The.MD.HF.ID,1)
та підключаємо створений метод до меню **UsePopup** як п/м **"Фіскальний чек"** - за допомогою якого буде проводитись фіскалізація та друк чеку.SkipWhen => VarType(Sys.aPRRO[1,3])#'O' Or Sys.aPRRO[1,3].ShiftDaySost#1 Or The.MD.HF.FCheck=1 Or Sys.aPRRO[1,3].ShiftDay#The.MD.HF.Date
|
| 6 | В документі, який потребує фіскалізації (в нашому прикладі **Realiz**) додаємо метод **Fiscalize** з оріентовним кодом :Lparameters toDoc
Local llErr, loPRRO, loTmc
llErr = .F.
loPRRO= Sys.aPRRO[1,3]
If !BProc.Mod._PRRO.OpenCheck(loPRRO,toDoc.Header.ID.Value)
llErr = .T.
EndIf
If llErr
MessageBox('Помилка фіскалізації!',32,'Фіскальний чек')
Return
EndIf
Select D.Tmc, T.Kod As Kod, T.Descr As Descr, D.Kol, D.Cena, D.Suma, D.SumaZ From (toDoc.CrsTP) D, _Tmc T Where T.ID=D.Tmc Into Cursor crsTP
Scan
lnStavka = 1
BProc.Mod._PRRO.RegSale(loPRRO,Tmc,Kod, Descr, lnStavka,Cena,Kol,Suma,,SumaZ,)
EndScan
If !llErr
If Empty(BProc.Mod._PRRO.CloseCheck(loPRRO,Iif(toDoc.Header.TypeOpl.Value=1,1,0)))
llErr = .T.
EndIf
EndIf
If Seek(toDoc.Header.ID.Value,'_TRelate','IDP') And Seek(_TRelate._IDC,'_PRROChk','ID')
WriteAttrSpr(toDoc.Header.ID.Value,'FCheck',1)
If MessageBox('Друкувати фіскальний чек?',32+4)=6
BProc.Doc._PRROChk.Print(_PRROChk.ID)
EndIf
EndIf
CloseIn('CrsTP')
|